%define bootstrap 0 %define javahome /usr/lib/jvm/jdk-gcj Name: javacc Version: 5.0 Release: 4mamba Summary: JavaCC is a parser/scanner generator for java Group: Development/Tools Vendor: openmamba Distribution: openmamba Packager: gil URL: https://javacc.dev.java.net/ Source0: https://javacc.dev.java.net/files/documents/17/142527/javacc-%{version}src.tar.gz # files bin # http://www.jpackage.org/cgi-bin/viewvc.cgi/rpms/free/javacc3/ Source1: javacc.sh Source2: jjdoc Source3: jjtree Source5: javacc-%{version}.jar Patch0: javacc-5.0-parser-build_xml.patch License: BSD BuildRequires: apache-ant BuildRequires: java-gcj-compat BuildRequires: java-junit381 BuildRequires: jpackage-utils Requires: jpackage-utils BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Java Compiler Compiler (JavaCC) is the most popular parser generator for use with Java applications. A parser generator is a tool that reads a grammar specification and converts it to a Java program that can recognize matches to the grammar. In addition to the parser generator itself, JavaCC provides other standard capabilities related to parser generation such as tree building (via a tool called JJTree included with JavaCC), actions, debugging, etc. %package demo Group: Documentation Summary: Examples for %{name} %description demo JavaCC is a parser/scanner generator for java. This package contains examples for %{name} %package manual Group: Documentation Summary: Manual for %{name} %description manual JavaCC is a parser/scanner generator for java. This package contains manual for %{name}. %prep %setup -q -n %{name} cp %{SOURCE1} bin/javacc cp %{SOURCE2} bin/jjdoc cp %{SOURCE3} bin/jjtree for j in $(find . -name "*.jar"); do mv $j ${j}.no done %patch0 %if %bootstrap mv bootstrap/javacc.jar.no bootstrap/javacc.jar %else # ln -sf $(build-classpath javacc) bootstrap/javacc.jar cp -p %{SOURCE5} bootstrap/javacc.jar %endif for j in $(find . -name "*.class"); do rm -rf $j done ln -sf %{_javadir}/junit381.jar lib/junit3.8.1/junit.jar %build export JAVA_HOME=%javahome # use %{SOURCE5} to generate some required source java files. # after these source files are generated we remove the # bootstrap jar and build the binary from source. ant -f src/org/javacc/parser/build.xml parser-files ant -f src/org/javacc/jjtree/build.xml tree-files for j in $(find . -name "*.jar"); do rm -rf $j done export CLASSPATH=$(build-classpath junit381) ant jar %if %bootstrap cp bin/lib/javacc.jar %{_sourcedir}/javacc-%{version}.jar %endif %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" mkdir -p %{buildroot}%{_javadir} install -pm 644 bin/lib/javacc.jar %{buildroot}%{_javadir}/javacc-%{version}.jar ln -s javacc-%{version}.jar %{buildroot}%{_javadir}/javacc.jar mkdir -p %{buildroot}%{_mavenpomdir} sed -i "s|4.2|%{version}|" pom.xml sed -i "s|5.0.0|4.0.0|" pom.xml install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-javacc.pom %add_to_maven_depmap net.java.dev.javacc javacc %{version} JPP javacc mkdir -p %{buildroot}%{_bindir} install -m 755 bin/{javacc,jjdoc,jjtree} %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_datadir}/javacc cp -pr examples %{buildroot}%{_datadir}/javacc #%{_bindir}/aot-compile-rpm %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %post %update_maven_depmap %postun %update_maven_depmap %files %defattr(-,root,root) %attr(0755,root,root) %{_bindir}/javacc %attr(0755,root,root) %{_bindir}/jjdoc %attr(0755,root,root) %{_bindir}/jjtree %{_javadir}/javacc-%{version}.jar %{_javadir}/javacc.jar %{_mavenpomdir}/* %{_mavendepmapfragdir}/* %doc LICENSE README %files demo %defattr(-,root,root) %{_datadir}/javacc %files manual %defattr(-,root,root) %doc www/* %changelog * Fri Mar 25 2011 gil 5.0-4mamba - rebuilt with java-gcj-compat support * Sun Nov 07 2010 gil 5.0-3mamba - rebuilt devel * Sat Apr 17 2010 gil 5.0-2mamba - rebuilt with system javacc.jar * Sat Apr 17 2010 gil 5.0-1mamba - update to 5.0 - added maven pom - bootstrap * Thu Feb 26 2009 gil 4.2-1mamba - package created by autospec