%define with_bootstrap 1 %define src_date 20031218 Name: relaxngcc Version: 1.12 Release: 2%{?dist} Summary: RELAX NG Compiler Compiler Group: Development/Libraries License: ASL 1.1 Url: http://relaxngcc.sourceforge.net/en/index.htm Source0: http://prdownloads.sourceforge.net/relaxngcc/relaxngcc-%{src_date}.zip Source1: relaxngcc-build.xml BuildRequires: java-devel >= 1:1.6.0 BuildRequires: jpackage-utils BuildRequires: dos2unix BuildRequires: ant BuildRequires: graphviz BuildRequires: javacc BuildRequires: msv-msv BuildRequires: msv-xsdlib BuildRequires: relaxngDatatype BuildRequires: xerces-j2 BuildRequires: xml-commons-apis %if !%with_bootstrap BuildRequires: %{name} = %{version} %endif Requires: ant Requires: msv-msv Requires: msv-xsdlib Requires: relaxngDatatype Requires: xerces-j2 Requires: xml-commons-apis Requires: java >= 1:1.6.0 Requires: jpackage-utils BuildArch: noarch %description RelaxNGCC is a tool for generating Java source code from a given RELAX NG grammar. By embedding code fragments in the grammar like yacc or JavaCC, you can take appropriate actions while parsing valid XML documents against the grammar. %package javadoc Group: Documentation Summary: Javadoc for %{name} Requires: %{name} = %{version}-%{release} Requires: jpackage-utils %description javadoc RELAX NG Compiler Compiler. This package contains javadoc for %{name}. %package manual Group: Documentation Summary: Documents for %{name} %description manual RELAX NG Compiler Compiler. This package contains documents for %{name}. %prep %setup -q -n %{name}-%{src_date} cp %{SOURCE1} build.xml find -name '*.class' -exec rm -f '{}' \; mkdir lib %if %with_bootstrap find -name '*.jar' ! -iname "%{name}.jar" -exec rm -f '{}' \; mv %{name}.jar lib/bootstrap-%{name}.jar %else find -name '*.jar' -exec rm -f '{}' \; ln -sf $(build-classpath relaxngcc) bootstrap-relaxngcc.jar %endif # javacc regenerated source code rm -rf src/relaxngcc/javabody/ParseException.java rm -rf src/relaxngcc/javabody/SimpleCharStream.java rm -rf src/relaxngcc/javabody/Token.java rm -rf src/relaxngcc/javabody/TokenMgrError.java rm -rf src/relaxngcc/javabody/JavaBodyParser.java # require common-jelly in classpath rm -rf src/relaxngcc/maven/ChildAntProjectTag.java # fix the correct end of line encoding find . -type f -exec dos2unix {} \; # fix the source files contain characters outside of the ASCII set ( cd src/relaxngcc/builder native2ascii -encoding UTF8 SwitchBlockInfo.java SwitchBlockInfo.java ) # remove the sources that will be generated with relaxngcc itself rm -rf src/relaxngcc/parser/automata/*.gif rm -rf src/relaxngcc/parser/state/*.java %build # bootstrap ant -Dant.build.javac.source=1.5 -Dant.build.javac.target=1.5 clean jar rm -rf bin/relaxngcc lib/bootstrap-%{name}.jar mv %{name}.jar lib/bootstrap-%{name}.jar # relaxngcc rebuild itself ant -Dant.build.javac.source=1.5 -Dant.build.javac.target=1.5 clean jar javadoc %install mkdir -p %{buildroot}%{_javadir} install -pm 644 %{name}.jar %{buildroot}%{_javadir}/%{name}.jar mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -pr javadoc/* %{buildroot}%{_javadocdir}/%{name} %files %{_javadir}/%{name}.jar %doc src/HOWTO-readAutomata.txt LICENSE.txt readme.txt %pre javadoc [ $1 -gt 1 ] && [ -L %{_javadocdir}/%{name} ] && \ rm -rf $(readlink -f %{_javadocdir}/%{name}) %{_javadocdir}/%{name} || : %files javadoc %{_javadocdir}/%{name} %doc LICENSE.txt %files manual %doc doc/* LICENSE.txt %changelog * Wed Feb 22 2012 gil cattaneo 1.12-2 - fix wrong file end of line encoding - fix license field * Mon Jul 27 2009 gil cattaneo 1.12-1 - initial rpm