%bcond_without doxygen %bcond_with python %global debug_package %{nil} # since we have only a static library Summary: ANother Tool for Language Recognition Name: antlr Version: 2.7.7 Release: 61%{?dist} Epoch: 0 License: ANTLR-PD URL: http://www.antlr2.org/ # ./generate-tarball.sh Source0: antlr-%{version}.tar.gz Source1: %{name}-build.xml Source2: %{name}-script Source3: http://repo2.maven.org/maven2/antlr/antlr/%{version}/%{name}-%{version}.pom # Repack the tarball without prebuilt binaries of unknown origin Source4: generate-tarball.sh Patch1: %{name}-%{version}-newgcc.patch # see BZ#848662 Patch2: antlr-examples-license.patch %ifarch %{mono_arches} %if ! 0%{?rhel} >= 6 BuildRequires: mono-core BuildRequires: mono-winforms %endif %endif BuildRequires: gcc-c++ BuildRequires: make BuildRequires: ant BuildRequires: java-devel >= 1:1.7.0 BuildRequires: java-javadoc BuildRequires: javapackages-local %if %{with doxygen} BuildRequires: doxygen graphviz %endif %if %{with python} # Do not support Python3 BuildRequires: python2-devel BuildRequires: python2-setuptools %endif %description 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 C++ or Java actions [You can use PCCTS 1.xx to generate C-based parsers]. %package tool Summary: ANother Tool for Language Recognition Provides: %{name} = %{version}-%{release} # Explicit requires for javapackages-tools since antlr-script # uses /usr/share/java-utils/java-functions Requires: javapackages-tools BuildArch: noarch %description tool 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 C++ or Java actions [You can use PCCTS 1.xx to generate C-based parsers]. %package manual Summary: Manual for %{name} BuildArch: noarch %description manual Documentation for %{name}. %package javadoc Summary: Javadoc for %{name} BuildArch: noarch %description javadoc Javadoc for %{name}. %package C++ Summary: C++ bindings for antlr2 generated parsers Provides: antlr-static = %{version}-%{release} %description C++ This package provides a static C++ library for parsers generated by ANTLR2. %if %{with doxygen} %package C++-doc Summary: Documentation for C++ bindings for antlr2 generated parsers BuildArch: noarch %description C++-doc This package contains the documentation for the C++ bindings for parsers generated by ANTLR2. %endif %if %{with python} %package -n python2-%{name} Summary: Python 2 runtime support for ANTLR-generated parsers %{?python_provide:%python_provide python2-%{name}} # This can be removed in Fedora 30 Provides: %{name}-python = %{version}-%{release} Obsoletes: %{name}-python < 2.7.7-48 BuildArch: noarch %description -n python2-%{name} Python runtime support for ANTLR-generated parsers %endif %prep %setup -q # remove all binary libs find . -name "*.jar" -exec rm -f {} \; cp -p %{SOURCE1} build.xml %patch1 %patch2 -p1 # CRLF->LF sed -i 's/\r//' LICENSE.txt # set jar location %mvn_file %{name}:%{name} %{name} %build ant -Dj2se.apidoc=%{_javadocdir}/java # make expects to find it here cp work/lib/antlr.jar . export CLASSPATH=. %configure --without-examples make CXXFLAGS="${CXXFLAGS} -fPIC" DEBUG=1 verbose=1 # no longer needed rm antlr.jar # fix doc permissions and remove Makefiles rm doc/{Makefile,Makefile.in} chmod 0644 doc/* %if %{with doxygen} # generate doxygen docs for C++ bindings pushd lib/cpp doxygen doxygen.cfg find gen_doc -type f -exec chmod 0644 {} \; popd %endif %if %{with python} # build python cd lib/python %py2_build cd ../../ %endif %install # jars, POM and depmap %mvn_artifact %{SOURCE3} work/lib/%{name}.jar %mvn_alias %{name}:%{name} %{name}:%{name}all %mvn_install -J work/api mkdir -p $RPM_BUILD_ROOT{%{_includedir}/%{name},%{_libdir},%{_bindir}} # script install -p -m 755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/antlr # C++ lib and headers, antlr-config install -p -m 644 lib/cpp/antlr/*.hpp $RPM_BUILD_ROOT%{_includedir}/%{name} install -p -m 644 lib/cpp/src/libantlr.a $RPM_BUILD_ROOT%{_libdir} install -p -m 755 scripts/antlr-config $RPM_BUILD_ROOT%{_bindir} %if %{with python} # python cd lib/python %py2_install cd ../.. %endif %files tool -f .mfiles %license LICENSE.txt %{_bindir}/antlr # this is actually a development package for the C++ target # as we ship only a static library, it doesn't make sense # to have a separate -devel package for the headers %files C++ %license LICENSE.txt %{_includedir}/%{name} %{_libdir}/libantlr.a %{_bindir}/antlr-config %if %{with doxygen} %files C++-doc %license LICENSE.txt %doc lib/cpp/gen_doc/html/ %endif %files manual %license LICENSE.txt %doc doc/* %files javadoc -f .mfiles-javadoc %license LICENSE.txt %if %{with python} %files -n python2-%{name} %license LICENSE.txt %{python2_sitelib}/antlr/* %{python2_sitelib}/antlr-* %endif %changelog * Fri Jul 10 2020 Jiri Vanek - 0:2.7.7-61 - Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 * Tue Jan 28 2020 Fedora Release Engineering - 0:2.7.7-60 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Wed Jul 24 2019 Fedora Release Engineering - 0:2.7.7-59 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Wed Mar 27 2019 Miro Hrončok - 0:2.7.7-58 - Subpackage python2-antlr was removed https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal * Thu Jan 31 2019 Fedora Release Engineering - 0:2.7.7-57 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Mon Jul 30 2018 Severin Gehwolf - 0:2.7.7-56 - Add explicit requirement of javapackages-tools. * Tue Jul 24 2018 Michael Simacek - 0:2.7.7-55 - Repack the tarball without binaries * Thu Jul 12 2018 Fedora Release Engineering - 0:2.7.7-54 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Wed Feb 07 2018 Fedora Release Engineering - 0:2.7.7-53 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Tue Nov 7 2017 Mikolaj Izdebski - 0:2.7.7-52 - Switch to new license tag: ANTLR-PD * Sat Sep 23 2017 Mikolaj Izdebski - 0:2.7.7-51 - Conditionally allow building without C++ docs * Wed Aug 02 2017 Fedora Release Engineering - 0:2.7.7-50 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 0:2.7.7-49 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Wed Jul 12 2017 Miro Hrončok - 0:2.7.7-48 - Proper python2 subpackage name * Thu Feb 16 2017 Michael Simacek - 0:2.7.7-47 - Add conditional for python * Wed Feb 15 2017 Mikolaj Izdebski - 0:2.7.7-46 - Generalize requires on python2 packages * Fri Feb 10 2017 Fedora Release Engineering - 0:2.7.7-45 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Tue Jan 31 2017 Mikolaj Izdebski - 0:2.7.7-44 - Add missing build-requires on GCC * Tue Jul 19 2016 Fedora Release Engineering - 0:2.7.7-43 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages * Tue Mar 01 2016 gil cattaneo 0:2.7.7-42 - fix URL field (rhbz#1313275) * Mon Feb 29 2016 gil cattaneo 0:2.7.7-41 - use python macros * Wed Feb 03 2016 Fedora Release Engineering - 0:2.7.7-40 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Fri Oct 02 2015 gil cattaneo 0:2.7.7-39 - adapt to current guideline - remove some rpmlint problems - disable javadoc doclint - introduce license macro * Fri Aug 21 2015 Marcin Juszkiewicz - 0:2.7.7-38 - use %%{mono_archs} instead of hardcoding list (rhbz#1255726) * Tue Jun 16 2015 Fedora Release Engineering - 0:2.7.7-37 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Fri Apr 24 2015 Orion Poplawski - 0:2.7.7-36 - Rebuild for gcc 5 C++11 ABI again * Sun Feb 22 2015 Orion Poplawski - 0:2.7.7-35 - Rebuild for gcc 5 C++11 ABI * Fri Aug 15 2014 Fedora Release Engineering - 0:2.7.7-34 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Mon Jun 30 2014 Toshio Kuratomi - 2.7.7-33 - Change python-setuptools-devel BR into python-setuptools. * Sat Jun 07 2014 Fedora Release Engineering - 0:2.7.7-32 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Wed May 21 2014 Mikolaj Izdebski - 0:2.7.7-31 - Use .mfiles generated during build * Tue Mar 04 2014 Stanislav Ochotnicky - 0:2.7.7-30 - Use Requires: java-headless rebuild (#1067528) * Mon Nov 11 2013 Stanislav Ochotnicky - 0:2.7.7-29 - Do not install versioned jar (#1022080) - Install LICENSE files in each independent subpackage - Minor spec cleanups * Fri Nov 08 2013 Marek Goldmann - 0:2.7.7-28 - Rebuild * Sat Aug 03 2013 Fedora Release Engineering - 0:2.7.7-27 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Wed Feb 13 2013 Fedora Release Engineering - 0:2.7.7-26 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Sun Nov 25 2012 Mikolaj Izdebski - 0:2.7.7-25 - Move maven files from C++ to tool subpackage, resolves: rhbz#879885 * Thu Nov 1 2012 Mikolaj Izdebski - 0:2.7.7-24 - Add maven POM * Sat Aug 18 2012 Miloš Jakubíček - 0:2.7.7-23 - Add patch updating license on ShowString.java and StreamConverter.java examples (thanks to Tom Callaway, see BZ#848662) * Wed Jul 18 2012 Fedora Release Engineering - 0:2.7.7-22 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Wed Feb 01 2012 Jaroslav Reznik 0:2.7.7-21 - wrong version for jpackage-utils * Wed Feb 01 2012 Jaroslav Reznik 0:2.7.7-20 - Versioned Java (build)/requires for -tool too * Mon Jan 30 2012 Jaroslav Reznik 0:2.7.7-19 - Versioned Java (build)/requires * Fri Jan 27 2012 Alexander Kurtakov 0:2.7.7-18 - Disable c# part for rhel builds. * Thu Jan 12 2012 Fedora Release Engineering - 0:2.7.7-17 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Fri Mar 25 2011 Miloš Jakubíček - 0:2.7.7-16 - Fixed wrong Obsoletes: antlr on antlr-tool (fix #689703) * Mon Feb 07 2011 Fedora Release Engineering - 0:2.7.7-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Mon Feb 07 2011 Miloš Jakubíček - 0:2.7.7-14 - Remove INSTALL.txt (fix BZ#661626) - add python subpackage (fix BZ#505312) * Mon Feb 07 2011 Miloš Jakubíček - 0:2.7.7-13 - Added missing Obsoletes: antlr on antlr-tool (fix BZ#603466) * Mon Dec 13 2010 Dan Horák - 0:2.7.7-12 - sync the architecture list in BR with the mono package * Tue Nov 23 2010 Rex Dieter - 0:2.7.7-11 - -tool: +Requires: java jpackage-utils (#595504) * Thu Apr 29 2010 Miloš Jakubíček - 0:2.7.7-10 - Use original upstream tarball, prebuilt jars are anyway removed in %%prep - Don't overuse macros - Added explanation about headers in the C++ subpackage - Remove unnecessary Makefile and Makefile.in from %%docs, permissions fixed - Added doxygen docs for C++ as a -C++-doc subpackage - antlr-config moved into the C++ subpackage - Removed %%post and %%postun javadoc relicts from JPackage * Tue Apr 27 2010 Miloš Jakubíček - 0:2.7.7-9 - Drop native build, alternatives, jedit, gcj bits and other jpackage crap - Disable debuginfo since we have only a static library. - Use %%global everywhere - Split the C++ bindings into a separate -C++ subpackage - Use -tool subpackage with Provide: antlr to make it possible to be noarch - Use sed instead of perl => drop BR: perl * Tue Apr 20 2010 Orion Poplawski 0:2.7.7-8 - Cannot be noarch * Wed Apr 7 2010 Alexander Kurtakov 0:2.7.7-7 - Disable gcj. - Use %%global. * Fri Jul 24 2009 Fedora Release Engineering - 0:2.7.7-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Fri Mar 20 2009 Deepak Bhole - 0:2.7.7-5 - Include cstdio in CharScanner.hpp (needed to build with GCC 4.4) - Merge changes from includestrings patch into the above one * Mon Feb 23 2009 Fedora Release Engineering - 0:2.7.7-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Fri Jan 09 2009 Dennis Gilmore 2.7.7-3 - exlcude using mono on sparc64 * Wed Jul 9 2008 Tom "spot" Callaway 2.7.7-2 - drop repotag * Wed Feb 27 2008 Deepak Bhole - 0:2.7.7-1jpp.7 - Add strings inclusion (for GCC 4.3) * Mon Sep 24 2007 Deepak Bhole - 0:2.7.7-1jpp.6 - Resolve bz# 242305: Remove libantlr-pic.a, and compile libantlr.a with fPIC * Wed Aug 29 2007 Fedora Release Engineering - 2.7.7-1jpp.5 - Rebuild for selinux ppc32 issue. * Tue Jun 12 2007 Deepak Bhole 2.7.7-1jpp.4.fc8 - Added a PIC compiled archive (bz# 242305) * Thu Jun 07 2007 Deepak Bhole 2.7.7-1jpp.3 - Applied patch to fix conditionals (from skasal at redhat dot com) * Mon Mar 26 2007 Deepak Bhole 2.7.7-1jpp.2 - Added unowned dir to files list * Fri Jan 19 2007 Deepak Bhole 0:2.7.7-1jpp.1 - Upgrade to 2.7.7 - Resolve 172456 with patches from Vadim Nasardinov and Radu Greab * Thu Aug 03 2006 Deepak Bhole = 0:2.7.6-4jpp.2 - Add missing postun for javadoc. * Thu Aug 03 2006 Deepak Bhole = 0:2.7.6-4jpp.1 - Add missing requirements. * Sat Jul 22 2006 Thomas Fitzsimmons - 0:2.7.6-3jpp_5fc - Unstub docs. * Sat Jul 22 2006 Jakub Jelinek - 0:2.7.6-3jpp_4fc - Remove hack-libgcj requirement. * Fri Jul 21 2006 Thomas Fitzsimmons - 0:2.7.6-3jpp_3fc - Stub docs. (dist-fc6-java) - Require hack-libgcj for build. (dist-fc6-java) - Bump release number. * Wed Jul 19 2006 Deepak Bhole = 0:2.7.6-3jpp_2fc - From gbenson@redhat: - Omit the jedit subpackage to fix dependencies. * Wed Jul 19 2006 Deepak Bhole = 0:2.7.6-3jpp_1fc - Added conditional native compilation. * Fri Jan 13 2006 Fernando Nasser - 0:2.7.6-2jpp - First JPP 1.7 build * Fri Jan 13 2006 Fernando Nasser - 0:2.7.6-1jpp - Update to 2.7.6. * Fri Aug 20 2004 Ralph Apel - 0:2.7.4-2jpp - Build with ant-1.6.2. - Made native scripts conditional * Tue May 18 2004 Ville Skyttä - 0:2.7.4-1jpp - Update to 2.7.4. * Fri Apr 2 2004 Ville Skyttä - 0:2.7.3-2jpp - Create alternatives also on upgrades. * Wed Mar 31 2004 Ville Skyttä - 0:2.7.3-1jpp - Update to 2.7.3. - Include gcj build option and a native subpackage, build using "--with native" to get that. - Add %%{_bindir}/antlr alternative. * Mon Dec 15 2003 Ville Skyttä - 0:2.7.2-3jpp - Add non-versioned javadoc dir symlink. - Crosslink with local J2SE javadocs. - Spec cleanups, change to UTF-8. * Sun Mar 30 2003 Ville Skyttä - 0:2.7.2-2jpp - Rebuild for JPackage 1.5. * Sat Mar 1 2003 Ville Skyttä - 2.7.2-1jpp - Update to 2.7.2. - Include antlr script and jEdit mode (see antlr-jedit RPM description). - Use sed instead of bash 2 extension when symlinking jars during build. * Tue May 07 2002 Guillaume Rousse 2.7.1-8jpp - really section macro - hardcoded distribution and vendor tag - group tag again * Thu May 2 2002 Guillaume Rousse 2.7.1-7jpp - distribution tag - group tag - section macro * Fri Jan 18 2002 Guillaume Rousse 2.7.1-6jpp - versioned dir for javadoc - no dependencies for manual and javadoc packages - additional sources in individual archives * Sat Dec 1 2001 Guillaume Rousse 2.7.1-5jpp - javadoc in javadoc package * Wed Nov 21 2001 Christian Zoffoli 2.7.1-4jpp - removed packager tag - new jpp extension * Sat Oct 6 2001 Guillaume Rousse 2.7.1-3jpp - used a build file instead of makefile - build classes instead of blindly jared them ! - used original tarball - corrected license spelling * Sun Sep 30 2001 Guillaume Rousse 2.7.1-2jpp - first unified release - s/jPackage/JPackage * Tue Aug 28 2001 Guillaume Rousse 2.7.1-1mdk - first Mandrake release