diff --git a/README.md b/README.md index 75f307f..fa16327 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # antlr +ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing Java, C#, C++, or Python actions. ANTLR provides excellent support for tree construction, tree walking, and translation. + diff --git a/antlr-2.7.5-gcc4.patch b/antlr-2.7.5-gcc4.patch new file mode 100644 index 0000000..cdc98af --- /dev/null +++ b/antlr-2.7.5-gcc4.patch @@ -0,0 +1,18 @@ +diff -Nru antlr-2.7.5.orig/antlr/Makefile.in antlr-2.7.5/antlr/Makefile.in +--- antlr-2.7.5.orig/antlr/Makefile.in 2005-08-17 15:29:32.000000000 +0200 ++++ antlr-2.7.5/antlr/Makefile.in 2005-08-17 15:30:18.000000000 +0200 +@@ -269,13 +269,7 @@ + @abs_top_srcdir@/antlr/debug/misc/JTreeASTPanel.java \ + $(eol) + +- +-## damned ugly hack .. +-ifeq (gcj,@javac@) +- antlr_java_FILES = $(antlr_java1_FILES) +-else +- antlr_java_FILES = $(antlr_java1_FILES) $(antlr_swing_FILES) +-endif ++antlr_java_FILES = $(antlr_java1_FILES) $(antlr_swing_FILES) + + ## rule how to compile java files + @ANTLR_JAR@ :: $(antlr_java_FILES) diff --git a/antlr-2.7.7-build.xml b/antlr-2.7.7-build.xml new file mode 100644 index 0000000..eadf11b --- /dev/null +++ b/antlr-2.7.7-build.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/antlr-2.7.7-includestrings.patch b/antlr-2.7.7-includestrings.patch new file mode 100644 index 0000000..2640c07 --- /dev/null +++ b/antlr-2.7.7-includestrings.patch @@ -0,0 +1,10 @@ +--- antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp 2006-11-01 22:37:17.000000000 +0100 ++++ antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp-gil 2009-02-21 00:03:22.000000000 +0100 +@@ -9,6 +9,7 @@ + */ + + #include ++#include + + #include + diff --git a/antlr-2.7.7-jedit.patch b/antlr-2.7.7-jedit.patch new file mode 100644 index 0000000..2b20f29 --- /dev/null +++ b/antlr-2.7.7-jedit.patch @@ -0,0 +1,33 @@ +--- antlr-2.7.7/extras/antlr-jedit.xml 2006-11-01 22:37:17.000000000 +0100 ++++ antlr-2.7.7/extras/antlr-jedit.xml-gil 2009-02-21 00:08:41.000000000 +0100 +@@ -16,9 +16,6 @@ + + + +- +- +- + + + +@@ -97,9 +94,7 @@ + + + +- +- +- ++ + + /**/ + +@@ -149,9 +144,6 @@ + + + +- +- +- + + { + diff --git a/antlr-2.7.7-newgcc.patch b/antlr-2.7.7-newgcc.patch new file mode 100644 index 0000000..ff58b9e --- /dev/null +++ b/antlr-2.7.7-newgcc.patch @@ -0,0 +1,11 @@ +--- antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp 2006-11-01 22:37:17.000000000 +0100 ++++ antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp-gil 2009-05-30 17:56:29.000000000 +0200 +@@ -11,6 +11,8 @@ + #include + + #include ++#include ++#include + + #ifdef HAS_NOT_CCTYPE_H + #include diff --git a/antlr-2.7.7.pom b/antlr-2.7.7.pom new file mode 100644 index 0000000..354e82d --- /dev/null +++ b/antlr-2.7.7.pom @@ -0,0 +1,22 @@ + + 4.0.0 + antlr + antlr + jar + 2.7.7 + AntLR Parser Generator + + A framework for constructing recognizers, compilers, + and translators from grammatical descriptions containing + Java, C#, C++, or Python actions. + + http://www.antlr.org/ + + + BSD License + http://www.antlr.org/license.html + repo + + + + diff --git a/antlr.spec b/antlr.spec new file mode 100644 index 0000000..0ad60a2 --- /dev/null +++ b/antlr.spec @@ -0,0 +1,349 @@ +%define repodir %{_javadir}/repository.jboss.com/antlr/2.7.6-brew +%define repodirlib %{repodir}/lib +%define repodirsrc %{repodir}/src +Name: antlr +Version: 2.7.7 +Release: 9mamba +Summary: ANother Tool for Language Recognition +Group: Development/Tools +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://antlr.org/ +Source0: http://www.antlr2.org/download/antlr-%{version}.tar.gz +Source1: antlr-2.7.7-build.xml +#http://www.antlr.org/share/1069557132934/makefile.gcj +#Source2: makefile.gcj +Source3: http://www.ibiblio.org/maven/antlr/poms/antlr-%{version}.pom +Source4: java-component-info3.xml +Patch0: antlr-2.7.5-gcc4.patch +Patch1: antlr-2.7.7-includestrings.patch +# requires jedit +Patch2: antlr-2.7.7-jedit.patch +Patch3: antlr-2.7.7-newgcc.patch +License: Public Domain +## AUTOBUILDREQ-BEGIN +## AUTOBUILDREQ-END +BuildRequires: apache-ant +BuildRequires: doxygen +BuildRequires: graphviz +BuildRequires: jpackage-utils +BuildRequires: libpython-devel +BuildRequires: mono-core +BuildRequires: mono-winforms +#BuildRequires: java-gcj-compat +#BuildRequires: gcc-java +#BuildRequires: java-gcj-compat +#BuildRequires: libgcj4-devel +#BuildRequires: /usr/bin/javadoc +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing Java, C#, C++, or Python actions. ANTLR provides excellent support for tree construction, tree walking, and translation. + +%package manual +Group: Development/Tools +Summary: Manual for %{name} + +%description manual +ANother Tool for Language Recognition. +This package contains documentation for %{name}. + +%package javadoc +Group: Documentation +Summary: Javadoc for %{name} + +%description javadoc +ANother Tool for Language Recognition. +This package contains javadoc for %{name}. + +%package C++ +Group: Development/Libraries +Summary: C++ run-time support for ANTLR-generated parsers + +%description C++ +ANother Tool for Language Recognition. +This package contains C++ run-time support for ANTLR-generated parsers + +%package C++-doc +Group: Documentation +Summary: Development documentation for the C++ bindings for ANTLR-generated parsers + +%description C++-doc +ANother Tool for Language Recognition. +This package contains development documentation for the C++ bindings for ANTLR-generated parsers + +%package -n python-antlr +Group: Development/Libraries/Python +Summary: Python run-time support for ANTLR-generated parsers + +%description -n python-antlr +ANother Tool for Language Recognition. +This package contains Python run-time support for ANTLR-generated parsers + +%package repolib +Group: Development/Libraries/Java +Summary: Artifacts to be uploaded to a repository library + +%description repolib +ANother Tool for Language Recognition. +This package contains artifacts to be uploaded to a repository library. +This package is not meant to be installed but so its contents can be extracted through rpm2cpio. + +%package sharp +Group: Development/Libraries +Summary: C# run-time support for ANTLR-generated parsers + +%description sharp +ANother Tool for Language Recognition. +This package contains C# run-time support for ANTLR-generated parsers + +%package gcj +Summary: GCJ %{name} support +Group: System/Libraries/Java +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: java-gcj-compat +Requires: jpackage-utils + +%description gcj +%{name} - ANother Tool for Language Recognition. +This package contains GCJ %{name} support. + +%prep +%setup -q +#-D -T +#:<< ____EOF +#%patch0 -p1 +#%patch1 -p1 +#%patch2 -p1 +%patch3 -p1 + +find . -type f -name "*.class" -exec rm -f {} \; + +for j in $(find -name "*.jar"); do + mv $j $j.no +done + +cp -p %{S:1} build.xml +sed -i 's/\r//' LICENSE.txt +%{__perl} -pi -e 's|"doc/|"%{_docdir}/%{name}-manual-%{version}/|g' install.html + +for p in $(find . -name "*.py"); do + sed -i 's|#!/usr/bin/python|#!%{__python}|' $p + sed -i 's|#!/usr/bin/env python|#!%{__python}|' $p + sed -i 's|#!python|#!%{__python}|' $p + sed -i 's|#!/usr/local/bin/python2.1|#!%{__python}|' $p + sed -i 's|#!/usr/local/bin/python|#!%{__python}|' $p +done + +sed -i 's|#!/usr/bin/env python|#!%{__python}|' scripts/pyinst.sh.in + + +%patch2 -p1 + +%build +export JAVA_HOME=%{java_home} +ant -Dj2se.apidoc=%{_javadocdir}/java +cp work/lib/antlr.jar . +export CLASSPATH=. + %configure \ + --disable-examples \ + --with-bootclasspath=$JAVA_HOME/jre/lib/rt.jar \ + --with-java=$JAVA_HOME/bin/java \ + --with-javac=$JAVA_HOME/bin/javac \ + --with-jar=$JAVA_HOME/bin/jar \ + --with-python=%{__python} + +rm antlr.jar +make CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" + +%ifnarch arm +pushd lib/cpp + doxygen doxygen.cfg + find gen_doc -type f -exec chmod 0644 {} \; +popd +%endif + +#cd lib/python +# %{__python} setup.py build +#cd ../../ + +%install +[ "%{buildroot}" != / ] && rm -rf %{buildroot} +%makeoldinstall + +mkdir -p %{buildroot}%{_javadir} +mkdir -p %{buildroot}%{_datadir}/maven2/poms + +install -pm 644 work/lib/antlr.jar \ + %{buildroot}%{_javadir}/antlr-%{version}.jar + + +#cd lib/python +# %{__python} setup.py install -O1 --skip-build --root %{buildroot} +#cd ../.. + +rm -rf %{buildroot}%{_libdir}/antlr.jar +ln -sf ../share/java/antlr-%{version}.jar %{buildroot}%{_libdir}/antlr.jar + +%{_bindir}/aot-compile-rpm + +( + cd %{buildroot}%{_javadir}/ + for jar in *-%{version}.jar; do + ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"` + done +) + +install -m 644 %{SOURCE3} %{buildroot}%{_datadir}/maven2/poms/JPP-antlr.pom +%add_to_maven_depmap antlr antlr %{version} JPP antlr + +mkdir -p %{buildroot}%{_javadocdir}/antlr-%{version} +cp -pr work/api/* %{buildroot}%{_javadocdir}/antlr-%{version} +ln -s antlr-%{version} %{buildroot}%{_javadocdir}/antlr + +rm -rf %{buildroot}%{_docdir}/ + +rm doc/{Makefile,Makefile.in} +chmod 0644 doc/* + +mkdir -p %{buildroot}%{_datadir}/jedit/modes +cp -p extras/antlr-jedit.xml %{buildroot}%{_datadir}/jedit/modes/antlr.xml + +mkdir -p %{buildroot}%{repodir} +mkdir -p %{buildroot}%{repodirlib} +install -p -m 644 %{SOURCE4} %{buildroot}%{repodir}/component-info.xml +tag=`echo %{name}-%{version}-%{release} | sed 's|\.|_|g'` +sed -i "s/@TAG@/$tag/g" %{buildroot}%{repodir}/component-info.xml +sed -i "s/@NAME@/antlr-component-info/g" %{buildroot}%{repodir}/component-info.xml +sed -i "s/@ID@/antlr/g" %{buildroot}%{repodir}/component-info.xml +sed -i "s/@VERSION@/%{version}%{rel}-brew/g" %{buildroot}%{repodir}/component-info.xml +sed -i "s/@LICENSE@/antlr/g" %{buildroot}%{repodir}/component-info.xml +sed -i "s|@PROJECTHOME@|%{url}|g" %{buildroot}%{repodir}/component-info.xml +sed -i "s/@DESCRIPTION@/ANother Tool for Language Recognition/g" %{buildroot}%{repodir}/component-info.xml +sed -i "s/@ARTIFACTID@/antlr.jar/g" %{buildroot}%{repodir}/component-info.xml +sed -i "s/@INCLUDEINPUT@/antlr.jar/g" %{buildroot}%{repodir}/component-info.xml +mkdir -p %{buildroot}%{repodirsrc} +install -pm 644 %{PATCH0} %{buildroot}%{repodirsrc} +install -pm 644 %{PATCH1} %{buildroot}%{repodirsrc} +install -pm 644 %{PATCH2} %{buildroot}%{repodirsrc} +install -pm 644 %{PATCH3} %{buildroot}%{repodirsrc} +cp %{SOURCE0} %{buildroot}%{repodirsrc} +cp %{SOURCE1} %{buildroot}%{repodirsrc} +cp -p %{buildroot}%{_javadir}/antlr-%{version}.jar %{buildroot}%{repodirlib}/antlr.jar + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%post +%update_maven_depmap + +%postun +%update_maven_depmap + +%files +%defattr(-,root,root) +%{_bindir}/antlr +%{_javadir}/antlr-%{version}.jar +%{_javadir}/antlr.jar +%{_libdir}/antlr.jar +%dir %{_datadir}/antlr-%{version}/ +%{_datadir}/antlr-%{version}/antlr-mode.el +%{_datadir}/antlr-%{version}/antlr.jar +%{_datadir}/antlr-%{version}/antlr-jedit.xml +%{_datadir}/jedit/modes/antlr.xml +%{_datadir}/maven2/poms +%{_mavendepmapfragdir} +%doc LICENSE.txt README.txt + +%post gcj +/sbin/ldconfig +if [ -x %{_bindir}/rebuild-gcj-db ]; then + %{_bindir}/rebuild-gcj-db +fi + +%postun gcj +/sbin/ldconfig +if [ -x %{_bindir}/rebuild-gcj-db ]; then + %{_bindir}/rebuild-gcj-db +fi + +%files gcj +%defattr(-,root,root) +%{_libdir}/gcj/antlr/antlr*.jar.db +%{_libdir}/gcj/antlr/antlr*.jar.so + +%files manual +%defattr(-,root,root) +%doc doc + +%files C++ +%defattr(-,root,root) +%{_bindir}/antlr-config +%dir %{_includedir}/antlr +%{_includedir}/antlr/*.hpp +%{_libdir}/libantlr.a + +%if "%{stage1}" != "1" +%files C++-doc +%defattr(-,root,root) +%doc lib/cpp/gen_doc/html/ +%endif + +%files -n python-antlr +%defattr(-,root,root) +%{_libdir}/antlr.py +%{_sbindir}/pyantlr.sh +%{_datadir}/antlr-%{version}/*.py +#%dir %{python_sitearch}/antlr +#%{python_sitearch}/antlr/*.py* +#%{python_sitearch}/antlr-*-py%{python_version}.egg-info + +%files sharp +%defattr(-,root,root) +%{_libdir}/antlr.astframe.dll +%{_libdir}/antlr.runtime.dll +%{_datadir}/antlr-%{version}/antlr.*.dll + +%files javadoc +%defattr(-,root,root) +%{_javadocdir}/antlr-%{version} +%{_javadocdir}/antlr + +%files repolib +%defattr(-,root,root) +%{repodir} + +%changelog +* Fri Feb 25 2011 gil 2.7.7-9mamba +- rebuilt with java-gcj-compat 1.0.80-20mamba support + +* Thu Nov 25 2010 gil 2.7.7-8mamba +- rebuilt devel + +* Sun Aug 29 2010 gil 2.7.7-7mamba +- added new sub package: C++ C++-doc python-antlr sharp + +* Thu Nov 12 2009 gil 2.7.7-6mamba +- new sub package antlr-repolib + +* Sat Sep 05 2009 gil 2.7.7-5mamba +- rebuilt + +* Sat May 30 2009 gil 2.7.7-4mamba +- add maven2 pom + +* Sat May 30 2009 gil 2.7.7-3mamba +- linked jar files in %{_libdir} + +* Wed Mar 11 2009 gil 2.7.7-2mamba +- moved the jar files in %{_javadir} + +* Fri Feb 20 2009 gil 2.7.7-1mamba +- update to 2.7.7 +- added packages: manual, javadoc +- added mono support +- added http://www.jedit.org/ support + +* Wed Aug 17 2005 Silvan Calarco 2.7.5-1qilnx +- package created by autospec diff --git a/java-component-info3.xml b/java-component-info3.xml new file mode 100644 index 0000000..0115b98 --- /dev/null +++ b/java-component-info3.xml @@ -0,0 +1,16 @@ + + + + + + + + + +