Sophie

Sophie

distrib > Mageia > 3 > i586 > by-pkgid > cf8175317e651ab9ab01ee3cc5da2c94 > files > 14

gluegen2-2.0-5.mga3.src.rpm

%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