diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..c96efb8 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + bootstrap + runtime + diff --git a/antlr3-bootstrap-rpmlintrc b/antlr3-bootstrap-rpmlintrc deleted file mode 100644 index be4ee7e..0000000 --- a/antlr3-bootstrap-rpmlintrc +++ /dev/null @@ -1 +0,0 @@ -addFilter("shlib-policy-name-error") diff --git a/antlr3-bootstrap.spec b/antlr3-bootstrap.spec deleted file mode 100644 index 2037484..0000000 --- a/antlr3-bootstrap.spec +++ /dev/null @@ -1,311 +0,0 @@ -# -# spec file for package antlr3-bootstrap -# -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via https://bugs.opensuse.org/ -# - - -%global antlr_version 3.5.2 -%global c_runtime_version 3.4 -%global javascript_runtime_version 3.1 -%bcond_without bootstrap -Version: %{antlr_version} -Release: 0 -Summary: ANother Tool for Language Recognition -License: BSD-3-Clause -Group: Development/Libraries/Java -URL: https://www.antlr3.org/ -Source0: https://github.com/antlr/antlr3/archive/%{antlr_version}.tar.gz -Source1: http://www.antlr3.org/download/antlr-javascript-runtime-%{javascript_runtime_version}.zip -Patch0: 0001-java8-fix.patch -# Generate OSGi metadata -Patch1: osgi-manifest.patch -BuildRequires: maven-local -BuildRequires: mvn(antlr:antlr) -BuildRequires: mvn(org.antlr:ST4) -BuildRequires: mvn(org.antlr:antlr-runtime) -BuildRequires: mvn(org.antlr:stringtemplate) -BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) -BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) -BuildRequires: mvn(org.apache.maven:maven-plugin-api) -BuildRequires: mvn(org.apache.maven:maven-project) -BuildRequires: mvn(org.codehaus.plexus:plexus-compiler-api) -BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:) -BuildRequires: mvn(xerces:dom3-xml-apis) -BuildRequires: unzip -%if %{with bootstrap} -Name: antlr3-bootstrap -Source100: %{name}-rpmlintrc -Patch100: antlr3-generated_sources.patch -BuildRequires: xz -#!BuildRequires: stringtemplate4-bootstrap -%else -Name: antlr3 -BuildRequires: ant -BuildRequires: antlr -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: fdupes -BuildRequires: libtool -BuildRequires: mvn(org.antlr:antlr) -BuildRequires: mvn(org.antlr:antlr3-maven-plugin) -#!BuildRequires: stringtemplate4 -#!BuildRequires: antlr3-bootstrap-tool -%endif - -%description -ANother Tool for Language Recognition, is a language tool -that provides a framework for constructing recognizers, -interpreters, compilers, and translators from grammatical -descriptions containing actions in a variety of target languages. - -%package tool -Summary: ANother Tool for Language Recognition -Group: Development/Libraries/Java -Requires: mvn(org.antlr:antlr-runtime) = %{antlr_version} -# Explicit requires for javapackages-tools since antlr3-script -# uses /usr/share/java-utils/java-functions -BuildArch: noarch - -%description tool -ANother Tool for Language Recognition, is a language tool -that provides a framework for constructing recognizers, -interpreters, compilers, and translators from grammatical -descriptions containing actions in a variety of target languages. - -%package javadoc -Summary: API documentation for %{name} -Group: Documentation/HTML -BuildArch: noarch - -%description javadoc -%{summary}. - -%package javascript -Version: %{javascript_runtime_version} -Release: 0 -Summary: Javascript run-time support for ANTLR-generated parsers -Group: Development/Libraries/Java -BuildArch: noarch - -%description javascript -Javascript run-time support for ANTLR-generated parsers - -%if %{with bootstrap} -%package -n libantlr3c-bootstrap -%else -%package -n libantlr3c -%endif -Version: %{c_runtime_version} -Release: 0 -Summary: C run-time support for ANTLR-generated parsers -Group: Development/Libraries/Java -Provides: %{name}-C = %{version}-%{release} - -%if %{with bootstrap} -%description -n libantlr3c-bootstrap -%else -%description -n libantlr3c -%endif -C run-time support for ANTLR-generated parsers - -%package C-devel -Version: %{c_runtime_version} -Release: 0 -Summary: Header files for the C bindings for ANTLR-generated parsers -Group: Development/Libraries/Java -Requires: libantlr3c = %{c_runtime_version}-%{release} - -%description C-devel -Header files for the C bindings for ANTLR-generated parsers - -%package C-docs -Version: %{c_runtime_version} -Release: 0 -Summary: API documentation for the C run-time support for ANTLR-generated parsers -Group: Development/Libraries/Java -BuildRequires: doxygen -BuildRequires: graphviz -Requires: libantlr3c = %{c_runtime_version}-%{release} -BuildArch: noarch - -%description C-docs -This package contains doxygen documentation with instruction -on how to use the C target in ANTLR and complete API description of the -C run-time support for ANTLR-generated parsers. - -%package C++-devel -Summary: C++ runtime support for ANTLR-generated parsers -Group: Development/Libraries/Java - -%description C++-devel -C++ runtime support for ANTLR-generated parsers. - -%prep -%setup -q -n antlr3-%{antlr_version} -a 1 -%if %{with bootstrap} -%patch100 -%pom_remove_plugin :antlr3-maven-plugin tool -%endif - -sed -i "s,\${buildNumber},`cat %{_sysconfdir}/fedora-release` `date`," tool/src/main/resources/org/antlr/antlr.properties -%patch0 -p1 -%patch1 - -%if %{without bootstrap} -# remove pre-built artifacts -find -type f -a -name *.jar -delete -find -type f -a -name *.class -delete -%endif - -%pom_disable_module antlr3-maven-archetype -%pom_disable_module gunit -%pom_disable_module gunit-maven-plugin -%pom_disable_module antlr-complete -%pom_disable_module runtime/Java - -%pom_remove_plugin :maven-source-plugin -%pom_remove_plugin :maven-javadoc-plugin - -# compile for target 1.6, see BZ#842572 -sed -i 's/jsr14/1.6/' antlr3-maven-archetype/src/main/resources/archetype-resources/pom.xml \ - antlr3-maven-plugin/pom.xml \ - gunit/pom.xml \ - gunit-maven-plugin/pom.xml \ - pom.xml \ - runtime/Java/pom.xml \ - tool/pom.xml - -# workarounds bug in filtering (Mark invalid) -%pom_xpath_remove pom:resource/pom:filtering - -%{mvn_package} : tool - -%{mvn_file} :antlr antlr3 -%{mvn_file} :antlr-maven-plugin antlr3-maven-plugin - -%build -%if %{with bootstrap} -%{mvn_build} -f -j -%else -%{mvn_build} -f - -# Build the C runtime -pushd runtime/C -autoreconf -i -%configure --disable-abiflags --enable-debuginfo \ -%if 0%{?__isa_bits} == 64 - --enable-64bit -%else - %{nil} -%endif - -sed -i "s#CFLAGS = .*#CFLAGS = %{optflags}#" Makefile -make %{?_smp_mflags} -doxygen -u # update doxygen configuration file -doxygen # build doxygen documentation -popd - -# build ant task -pushd antlr-ant/main/antlr3-task/ -export CLASSPATH=$(build-classpath ant) -javac -encoding ISO-8859-1 antlr3-src/org/apache/tools/ant/antlr/ANTLR3.java -jar cvf ant-antlr3.jar \ - -C antlr3-src org/apache/tools/ant/antlr/antlib.xml \ - -C antlr3-src org/apache/tools/ant/antlr/ANTLR3.class -popd - -%endif - -%install -mkdir -p %{buildroot}/%{_mandir} -mkdir -p %{buildroot}/%{_datadir}/antlr - -%mvn_install -%if %{without bootstrap} -%fdupes -s %{buildroot}%{_javadocdir} - -# install ant task -install -m 644 antlr-ant/main/antlr3-task/ant-antlr3.jar -D %{buildroot}%{_javadir}/ant/ant-antlr3.jar -mkdir -p %{buildroot}%{_sysconfdir}/ant.d -cat > %{buildroot}%{_sysconfdir}/ant.d/ant-antlr3 << EOF -ant/ant-antlr3 antlr3 -EOF - -# install C runtime -pushd runtime/C -%make_install -rm %{buildroot}%{_libdir}/libantlr3c.{a,la} -pushd api/man/man3 -for file in `ls -1 * | grep -vi "^antlr3"`; do - mv $file antlr3-$file -done -sed -i -e 's,^\.so man3/pANTLR3,.so man3/antlr3-pANTLR3,' `grep -rl 'man3/pANTLR3' .` -gzip * -popd -mv api/man/man3 %{buildroot}%{_mandir}/ -rmdir api/man -popd - -# install javascript runtime -pushd antlr-javascript-runtime-%{javascript_runtime_version} -install -pm 644 *.js %{buildroot}%{_datadir}/antlr/ -popd - -# install C++ runtime (header only) -mkdir -p %{buildroot}/%{_includedir}/%{name} -install -pm 644 runtime/Cpp/include/* %{buildroot}/%{_includedir}/ - -%fdupes -s runtime/C/api -%fdupes -s %{buildroot}%{_mandir} - -%endif - -# install wrapper script -%jpackage_script org.antlr.Tool '' '' 'stringtemplate4/ST4.jar:antlr3.jar:antlr3-runtime.jar' antlr3 true - -%files tool -f .mfiles-tool -%license tool/{LICENSE.txt,CHANGES.txt} -%doc README.txt -%{_bindir}/antlr3 -%if %{without bootstrap} -%{_javadir}/ant/ant-antlr3.jar -%config(noreplace) %{_sysconfdir}/ant.d/ant-antlr3 - -%files -n libantlr3c -%license tool/LICENSE.txt -%{_libdir}/libantlr3c.so - -%files C-devel -%{_mandir}/man3/* -%{_includedir}/*.h - -%files C-docs -%doc runtime/C/api - -%files C++-devel -%license tool/LICENSE.txt -%{_includedir}/*.hpp -%{_includedir}/*.inl - -%files javascript -%license tool/LICENSE.txt -%{_datadir}/antlr/ - -%files javadoc -f .mfiles-javadoc -%license tool/LICENSE.txt - -%endif - -%changelog diff --git a/antlr3-java.spec b/antlr3-java.spec deleted file mode 100644 index 351e955..0000000 --- a/antlr3-java.spec +++ /dev/null @@ -1,103 +0,0 @@ -# -# spec file for package antlr3-java -# -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via https://bugs.opensuse.org/ -# - - -%global antlr_version 3.5.2 -Name: antlr3-java -Version: %{antlr_version} -Release: 0 -Summary: Java run-time support for ANTLR-generated parsers -License: BSD-3-Clause -Group: Development/Libraries/Java -URL: https://www.antlr3.org/ -Source0: https://github.com/antlr/antlr3/archive/%{antlr_version}.tar.gz -Patch0: 0001-java8-fix.patch -# Generate OSGi metadata -Patch1: osgi-manifest.patch -BuildRequires: fdupes -BuildRequires: maven-local -BuildRequires: mvn(antlr:antlr) -BuildRequires: mvn(org.antlr:stringtemplate) -BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) -BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:) -BuildRequires: unzip -BuildArch: noarch - -%description -Java run-time support for ANTLR-generated parsers - -%package javadoc -Summary: API documentation for %{name} -Group: Documentation/HTML -BuildArch: noarch - -%description javadoc -%{summary}. - -%prep -%setup -q -n antlr3-%{antlr_version} - -sed -i "s,\${buildNumber},`cat %{_sysconfdir}/fedora-release` `date`," tool/src/main/resources/org/antlr/antlr.properties -%patch0 -p1 -%patch1 - -%if %{without bootstrap} -# remove pre-built artifacts -find -type f -a -name *.jar -delete -find -type f -a -name *.class -delete -%endif - -%pom_disable_module antlr3-maven-archetype -%pom_disable_module gunit -%pom_disable_module gunit-maven-plugin -%pom_disable_module antlr-complete -%pom_disable_module runtime/Java - -%pom_remove_plugin :maven-source-plugin -%pom_remove_plugin :maven-javadoc-plugin - -# compile for target 1.6, see BZ#842572 -sed -i 's/jsr14/1.6/' antlr3-maven-archetype/src/main/resources/archetype-resources/pom.xml \ - antlr3-maven-plugin/pom.xml \ - gunit/pom.xml \ - gunit-maven-plugin/pom.xml \ - pom.xml \ - runtime/Java/pom.xml \ - tool/pom.xml - -# workarounds bug in filtering (Mark invalid) -%pom_xpath_remove pom:resource/pom:filtering - -%build -pushd runtime/Java -%{mvn_file} :antlr-runtime antlr3-runtime -%{mvn_build} -f -popd - -%install -pushd runtime/Java -%mvn_install -%fdupes -s %{buildroot}%{_javadocdir} -popd - -%files -f runtime/Java/.mfiles -%license tool/LICENSE.txt - -%files javadoc -f runtime/Java/.mfiles-javadoc -%license tool/LICENSE.txt - -%changelog diff --git a/antlr3.spec b/antlr3.spec index d4e2763..153bd15 100644 --- a/antlr3.spec +++ b/antlr3.spec @@ -19,7 +19,16 @@ %global antlr_version 3.5.2 %global c_runtime_version 3.4 %global javascript_runtime_version 3.1 +%if "%{flavor}" == "bootstrap" +%bcond_without bootstrap +%else %bcond_with bootstrap +%endif +%if "%{flavor}" == "runtime" +%bcond_without runtime +%else +%bcond_with runtime +%endif Version: %{antlr_version} Release: 0 Summary: ANother Tool for Language Recognition @@ -31,22 +40,33 @@ Source1: http://www.antlr3.org/download/antlr-javascript-runtime-%{javasc Patch0: 0001-java8-fix.patch # Generate OSGi metadata Patch1: osgi-manifest.patch +BuildRequires: fdupes BuildRequires: maven-local BuildRequires: mvn(antlr:antlr) -BuildRequires: mvn(org.antlr:ST4) -BuildRequires: mvn(org.antlr:antlr-runtime) BuildRequires: mvn(org.antlr:stringtemplate) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:) +BuildRequires: unzip +%if %{with runtime} +Name: antlr3-java +BuildArch: noarch + +%description +Java run-time support for ANTLR-generated parsers + +%else + +BuildRequires: mvn(org.antlr:ST4) +BuildRequires: mvn(org.antlr:antlr-runtime) BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) BuildRequires: mvn(org.apache.maven:maven-plugin-api) BuildRequires: mvn(org.apache.maven:maven-project) BuildRequires: mvn(org.codehaus.plexus:plexus-compiler-api) -BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:) BuildRequires: mvn(xerces:dom3-xml-apis) BuildRequires: unzip + %if %{with bootstrap} Name: antlr3-bootstrap -Source100: %{name}-rpmlintrc Patch100: antlr3-generated_sources.patch BuildRequires: xz #!BuildRequires: stringtemplate4-bootstrap @@ -56,7 +76,6 @@ BuildRequires: ant BuildRequires: antlr BuildRequires: autoconf BuildRequires: automake -BuildRequires: fdupes BuildRequires: libtool BuildRequires: mvn(org.antlr:antlr) BuildRequires: mvn(org.antlr:antlr3-maven-plugin) @@ -84,14 +103,7 @@ that provides a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages. -%package javadoc -Summary: API documentation for %{name} -Group: Documentation/HTML -BuildArch: noarch - -%description javadoc -%{summary}. - +%if %{without bootstrap} %package javascript Version: %{javascript_runtime_version} Release: 0 @@ -102,22 +114,14 @@ BuildArch: noarch %description javascript Javascript run-time support for ANTLR-generated parsers -%if %{with bootstrap} -%package -n libantlr3c-bootstrap -%else %package -n libantlr3c -%endif Version: %{c_runtime_version} Release: 0 Summary: C run-time support for ANTLR-generated parsers Group: Development/Libraries/Java Provides: %{name}-C = %{version}-%{release} -%if %{with bootstrap} -%description -n libantlr3c-bootstrap -%else %description -n libantlr3c -%endif C run-time support for ANTLR-generated parsers %package C-devel @@ -152,6 +156,21 @@ Group: Development/Libraries/Java %description C++-devel C++ runtime support for ANTLR-generated parsers. +%endif + +%endif + +%if %{without boostrap} +%package javadoc +Summary: API documentation for %{name} +Group: Documentation/HTML +BuildArch: noarch + +%description javadoc +%{summary}. + +%endif + %prep %setup -q -n antlr3-%{antlr_version} -a 1 %if %{with bootstrap} @@ -163,17 +182,21 @@ sed -i "s,\${buildNumber},`cat %{_sysconfdir}/fedora-release` `date`," tool/src/ %patch0 -p1 %patch1 -%if %{without bootstrap} # remove pre-built artifacts find -type f -a -name *.jar -delete find -type f -a -name *.class -delete -%endif %pom_disable_module antlr3-maven-archetype %pom_disable_module gunit %pom_disable_module gunit-maven-plugin %pom_disable_module antlr-complete + +%if %{with runtime} +%pom_disable_module tool +%pom_disable_module antlr3-maven-plugin +%else %pom_disable_module runtime/Java +%endif %pom_remove_plugin :maven-source-plugin %pom_remove_plugin :maven-javadoc-plugin @@ -190,9 +213,13 @@ sed -i 's/jsr14/1.6/' antlr3-maven-archetype/src/main/resources/archetype-resour # workarounds bug in filtering (Mark invalid) %pom_xpath_remove pom:resource/pom:filtering +%{mvn_package} :antlr-master __noinstall +%if %{without runtime} %{mvn_package} : tool +%endif %{mvn_file} :antlr antlr3 +%{mvn_file} :antlr-runtime antlr3-runtime %{mvn_file} :antlr-maven-plugin antlr3-maven-plugin %build @@ -200,6 +227,9 @@ sed -i 's/jsr14/1.6/' antlr3-maven-archetype/src/main/resources/archetype-resour %{mvn_build} -f -j %else %{mvn_build} -f +%endif + +%if %{without runtime} && %{without bootstrap} # Build the C runtime pushd runtime/C @@ -229,12 +259,17 @@ popd %endif %install -mkdir -p %{buildroot}/%{_mandir} -mkdir -p %{buildroot}/%{_datadir}/antlr - %mvn_install %if %{without bootstrap} %fdupes -s %{buildroot}%{_javadocdir} +%endif + +%if %{without runtime} + +mkdir -p %{buildroot}/%{_mandir} +mkdir -p %{buildroot}/%{_datadir}/antlr + +%if %{without bootstrap} # install ant task install -m 644 antlr-ant/main/antlr3-task/ant-antlr3.jar -D %{buildroot}%{_javadir}/ant/ant-antlr3.jar @@ -303,6 +338,17 @@ install -pm 644 runtime/Cpp/include/* %{buildroot}/%{_includedir}/ %license tool/LICENSE.txt %{_datadir}/antlr/ +%endif + +%else + +%files -f .mfiles +%license tool/LICENSE.txt + +%endif + +%if %{without bootstrap} + %files javadoc -f .mfiles-javadoc %license tool/LICENSE.txt