4 %bcond_with bootstrap # bootstrap build
6 Summary: A parser/scanner generator for Java
7 Summary(pl.UTF-8): Generator analizatorów/skanerów dla Javy
12 Group: Development/Languages/Java
13 Source0: http://java.net/projects/javacc/downloads/download/%{name}-%{version}src.tar.gz
14 # Source0-md5: 871d78a2a5859c2eebc712c1f8135be5
18 Patch0: build.xml.patch
19 URL: https://javacc.dev.java.net/
20 BuildRequires: /bin/bash
22 BuildRequires: glibc-localedb-all
23 BuildRequires: java-junit >= 3.8.1
24 %{!?with_bootstrap:BuildRequires: javacc}
25 BuildRequires: jpackage-utils
26 BuildRequires: rpmbuild(macros) >= 1.300
27 Requires: jpackage-utils >= 1.5
29 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
32 Java Compiler Compiler (JavaCC) is the most popular parser generator
33 for use with Java applications. A parser generator is a tool that
34 reads a grammar specification and converts it to a Java program that
35 can recognize matches to the grammar. In addition to the parser
36 generator itself, JavaCC provides other standard capabilities related
37 to parser generation such as tree building (via a tool called JJTree
38 included with JavaCC), actions, debugging, etc.
40 %description -l pl.UTF-8
41 Java Compiler Compiler (JavaCC) to najbardziej popularny generator
42 analizatorów do używania w aplikacjach Javy. Generator analizatorów to
43 narzędzie czytające specyfikację gramatyki i przekształcające ją na
44 program w Javie rozpoznający dopasowania do gramatyki. Oprócz samego
45 generatora analizatorów JavaCC udostępnia inne standardowe możliwości
46 związane z generowaniem analizatorów, takie jak budowanie drzewa
47 (poprzez narzędzie o nazwie JJTree dołączone do JavaCC), akcje,
51 Summary: Manual for JavaCC
52 Summary(pl.UTF-8): Podręcznik do JavaCC
58 %description manual -l pl.UTF-8
62 Summary: Examples for JavaCC
63 Summary(pl.UTF-8): Przykłady do JavaCC
69 %description demo -l pl.UTF-8
74 mv %{name}/* .; rmdir %{name}
77 cp -p %{SOURCE1} javacc
78 cp -p %{SOURCE2} jjdoc
79 cp -p %{SOURCE3} jjtree
81 # Remove binary information in the source tar
82 rm lib/junit3.8.1/junit.jar
83 %if %{without bootstrap}
84 rm bootstrap/javacc.jar
87 find examples -type f | xargs %undos
89 sed -i -e 's/source="1.4"/source="1.5"/g' src/org/javacc/{parser,jjdoc,jjtree}/build.xml
94 %if %{without bootstrap}
95 # Use the bootstrap javacc.jar to generate some required
96 # source java files. After these source files are generated we
97 # remove the bootstrap jar and build the binary from source.
98 jar=$(find-jar javacc)
99 ln -sf $jar bootstrap/javacc.jar
102 %ant -f src/org/javacc/parser/build.xml parser-files
103 %ant -f src/org/javacc/jjtree/build.xml tree-files
105 required_jars="junit"
106 export CLASSPATH=$(build-classpath $required_jars)
112 rm -rf $RPM_BUILD_ROOT
113 install -d $RPM_BUILD_ROOT%{_javadir}
114 cp -p bin/lib/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
115 ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
117 install -d $RPM_BUILD_ROOT%{_bindir}
118 install -p javacc jjdoc jjtree $RPM_BUILD_ROOT%{_bindir}
120 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
121 cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
124 rm -rf $RPM_BUILD_ROOT
127 %defattr(644,root,root,755)
129 %attr(755,root,root) %{_bindir}/javacc
130 %attr(755,root,root) %{_bindir}/jjdoc
131 %attr(755,root,root) %{_bindir}/jjtree
132 %{_javadir}/javacc-%{version}.jar
133 %{_javadir}/javacc.jar
136 %defattr(644,root,root,755)
140 %defattr(644,root,root,755)
141 %{_examplesdir}/%{name}-%{version}