%global namedreltag -rc3 %global namedversion %{version}%{?namedreltag} %define with_android 0 # https://nexus.projectsforge.org/nexus/content/groups/public/org/projectsforge/bundles/gluegen/ Name: gluegen2 Version: 2.0 Release: %mkrel 5 Summary: Tool to automatically generate the Java and JNI code Group: Development/Java License: BSD Url: http://jogamp.org/ # mkdir -p gluegen2-2.0-rc3 # git clone git://jogamp.org/srv/scm/gluegen.git # git archive v2.0-rc3 | tar -x -C ../gluegen2-2.0-rc4 # cd .. # tar czf gluegen2-2.0-rc3-src-git.tar.gz gluegen2-2.0-rc3 Source0: gluegen2-%{namedversion}-src-git.tar.gz # Debian patches Patch0: gluegen2-renamedLibrary.patch Patch1: gluegen2-linker.patch Patch2: gluegen2-jarPath.patch Patch3: gluegen2-hideException.patch Patch4: gluegen2-fix_issues.patch Patch5: gluegen2-disable_git_call.patch Patch6: gluegen2-disableArchive7z.patch Patch7: gluegen2-disable-test-zip-archive.patch Patch8: gluegen2-disable_android.patch Patch9: gluegen2-other-archs.patch Patch10: gluegen2-structLayoutLinux.patch Patch11: gluegen2-TARGET_JAVA_LIBS_disabled.patch BuildRequires: java-devel BuildRequires: java-javadoc BuildRequires: jpackage-utils %if %with_android BuildRequires: android %endif BuildRequires: ant BuildRequires: ant-antlr BuildRequires: ant-contrib >= 1.0-0.12.b3.1 BuildRequires: ant-junit BuildRequires: antlr BuildRequires: cpptasks #BuildRequires: cpptasks-parallel BuildRequires: junit4 BuildRequires: ant-antlr BuildRequires: git Requires: ant-contrib >= 1.0-0.12.b3.1 Requires: antlr Requires: java Requires: jpackage-utils Requires(post): jpackage-utils Requires(postun): jpackage-utils %description GlueGen is a tool which automatically generates the Java⢠and JNI code necessary to call C libraries. It reads as input ANSI C header files and separate configuration files which provide control over many aspects of the glue code generation. GlueGen uses a complete ANSI C parser and an internal representation (IR) capable of representing all C types to represent the APIs for which it generates interfaces. %package javadoc Group: Development/Java Summary: Javadoc for %{name} Requires: jpackage-utils BuildArch: noarch %description javadoc This package contains javadoc for %{name}. %package source Group: Development/Java Summary: Tool to automatically generate the Java and JNI code Requires: %{name} = %version-%release BuildArch: noarch %description source This package contains some Java sources necessary to build gluegen-based packages. %package manual Summary: GlueGen's user manual Group: Development/Java BuildArch: noarch %description manual This package contains GlueGen's user manual %prep %setup -q -n gluegen2-%{namedversion} %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %if !%with_android %patch8 -p1 %endif #%patch9 -p1 #%patch10 -p1 #%patch11 -p1 rm -rf .git .gitignore .htaccess find -name "*.jar" -type f -exec rm {} \; sed -i 's|classpath="${gluegen.root}/make/lib/cpptasks.jar|classpath="%{_javadir}/cpptasks.jar|' make/gluegen-cpptasks.xml sed -i 's|value="${gluegen.root}/make/lib/antlr.jar|value="%{_javadir}/antlr.jar|' make/gluegen-properties.xml sed -i 's|value="${gluegen.root}/make/lib/junit.jar|value="%{_javadir}/junit4.jar|' make/gluegen-properties.xml sed -i 's|value="${ant.home}/lib/ant.jar|value="%{_javadir}/ant.jar|' make/gluegen-properties.xml sed -i 's|value="${ant.home}/lib/ant-junit.jar|value="%{_javadir}/ant/ant-junit.jar|' make/gluegen-properties.xml rm -rf ../%{name}-source cp -rdf ../%{name}-%{namedversion} ../%{name}-source rm -rf ../%{name}-source/{doc,www,LICENSE.txt,gluegen} #sed -i 's|Class-Path: antlr.jar||' make/Manifest %build export CLASSPATH="" CLASSPATH=$CLASSPATH:$(build-classpath ant/ant-contrib ant-launcher ant/ant-antlr) CLASSPATH=$CLASSPATH:$(build-classpath ant/ant-junit junit4 cpptasks) ant -f make/build.xml \ -Dantlr.jar=$(build-classpath antlr) \ %if %with_android -Dandroid.jar=$(build-classpath android) \ %endif all junit.run ant -f make/build.xml -Djavadoc.link=%{_javadocdir}/java javadoc BASEOPTS="-f make/maven-common.xml -Dbuild=$PWD/build -Dmaven.artifacts.version=%{namedversion}" ant $BASEOPTS -DartifactId=gluegen -Ddescription="GlueGen - JNI Glue Code Generator" maven.prepare.pom ant $BASEOPTS -DartifactId=gluegen-rt -Ddescription="Gluegen Run-Time" maven.prepare.pom ant $BASEOPTS -DartifactId=gluegen-rt-natives \ -Ddescription="GlueGen runtime native libraries for %_host_vendor-%_host_cpu" \ -Dos.and.arch=%_host_os-%_host_cpu \ maven.prepare.native.pom %install [ %{buildroot} != / ] && rm -rf %{buildroot} mkdir -p %{buildroot}%{_javadir} install -m 644 build/gluegen.jar %{buildroot}%{_javadir}/%{name}.jar install -m 644 build/gluegen-rt.jar %{buildroot}%{_javadir}/%{name}-rt.jar # TODO proper place? install -m 644 build/gluegen-rt-natives-*.jar %{buildroot}%{_javadir}/%{name}-rt-natives.jar mkdir -p %{buildroot}%{_libdir} install -m 755 build/obj/libgluegen-rt.so %{buildroot}%{_libdir}/lib%{name}-rt.so # pom mkdir -p %{buildroot}%{_mavenpomdir} install -m 644 build/pom-gluegen.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom install -m 644 build/pom-gluegen-rt.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}-rt.pom install -m 644 build/pom-gluegen-rt-natives-%_host_os-%_host_cpu.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}-rt-natives.pom #depmap %add_maven_depmap JPP-%{name}.pom %{name}.jar %add_maven_depmap JPP-%{name}-rt.pom %{name}-rt.jar %add_maven_depmap JPP-%{name}-rt-natives.pom %{name}-rt-natives.jar # sources mkdir -p %{buildroot}%{_datadir}/%{name}-source cp -rdf ../%{name}-source/{jnlp-files,make,src,test} %{buildroot}%{_datadir}/%{name}-source #cp -rdf ../%{name}-source/* %{buildroot}%{_datadir}/%{name}-source cp -pr build/artifact.properties %{buildroot}%{_datadir}/%{name}-source find %{buildroot}%{_datadir}/%{name}-source/ -type f -exec chmod a-x {} \; chmod +x %{buildroot}%{_datadir}/%{name}-source/make/scripts/*.sh rm %{buildroot}%{_datadir}/%{name}-source/src/java/com/jogamp/gluegen/cgram/license.txt # javadoc mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -pr build/javadoc/gluegen/javadoc/* %{buildroot}%{_javadocdir}/%{name} # manual mkdir -p %{buildroot}%{_docdir}/%{name} cp -rdf doc/manual/* %{buildroot}%{_docdir}/%{name} %post %update_maven_depmap %postun %update_maven_depmap %files %{_javadir}/%{name}.jar %{_javadir}/%{name}-rt.jar %{_javadir}/%{name}-rt-natives.jar %{_libdir}/lib%{name}-rt.so %{_mavenpomdir}/* %{_mavendepmapfragdir}/* %doc LICENSE.txt %files javadoc %{_javadocdir}/%{name} %files source %{_datadir}/%{name}-source %doc LICENSE.txt %files manual %{_docdir}/%{name}/* %changelog * Sat Jan 12 2013 umeabot <umeabot> 2.0-5.mga3 + Revision: 351845 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Wed Jan 18 2012 dmorgan <dmorgan> 2.0-4.mga2 + Revision: 197680 - Remove ant-optionnal from buildrequires * Sat Dec 17 2011 gil <gil> 2.0-3.mga2 + Revision: 182902 - build fix rebuilt with ant-contrib 1.0-0.12.b3.1 support * Tue Dec 06 2011 gil <gil> 2.0-2.mga2 + Revision: 177428 - added ant-junit as BR - fixed classpath - disable android support used cpptasks instead of cpptasks-parallel - imported package gluegen2