sdljava/sdljava.spec
2007-09-21 17:44:24 +00:00

220 lines
6.4 KiB
RPMSpec

# Copyright (c) 2007 oc2pus <toni@links2linux.de>
# Copyright (c) 2007 Hans de Goede <j.w.r.degoede@hhs.nl>
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments to us at the above email addresses
Name: sdljava
Version: 0.9.1
Release: 5%{?dist}
Summary: Java binding to the SDL API
Group: System Environment/Libraries
License: LGPLv2+
Url: http://sdljava.sourceforge.net/
# this is http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
# with the included Microsoft Copyrighted Arial fonts removed
Source0: %{name}-%{version}.tar.gz
Source1: %{name}-runtest.sh
Patch0: sdljava-0.9.1-regen.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: ftgl-devel glew-devel SDL-devel SDL_gfx-devel SDL_image-devel
BuildRequires: SDL_mixer-devel SDL_ttf-devel java-devel java-gcj-compat-devel
BuildRequires: ant xml-commons-apis swig bsh jdom
# Build fails on fedora 8 test 2 when not using icedtea :( Note it runs fine
# with gcj (bug 297961).
BuildRequires: java-1.7.0-icedtea-devel
# icedtea is i386 and x86_64
ExclusiveArch: %{ix86} x86_64
Requires: bsh jdom
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%description
sdljava is a Java binding to the SDL API being developed by Ivan Ganza.
sdljava provides the ability to write games and other applications
from the java programming language. sdljava is designed to be fast,
efficient and easy to use.
%package javadoc
Summary: Javadoc for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description javadoc
Javadoc for %{name}.
%package demo
Summary: Some examples for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: /usr/share/fonts/dejavu/DejaVuSans.ttf
Requires: jpackage-utils
%description demo
Demonstrations and samples for %{name}.
%prep
%setup -q
%patch0 -p1 -z .regen
iconv -f ISO_8859-2 -t UTF8 docs/CHANGES_0_9_1 > docs/CHANGES_0_9_1.tmp
mv docs/CHANGES_0_9_1.tmp docs/CHANGES_0_9_1
# patch in gcc include path so that swig can find it
GCC_PATH=`gcc -print-search-dirs | grep install | cut -f 2 -d " "`
sed -i "s#@GCC_INCLUDE_PATH@#$GCC_PATH/include#g" \
etc/build/linux/Makefile \
etc/build/gljava/linux/Makefile \
etc/build/gljava/linux/ftgl/Makefile
# adjust testdata path in demos
find ./testsrc -name '*.java' | xargs sed -i \
-e 's|testdata|%{_datadir}/%{name}/testdata|g'
# use system versions of bsh & jdom
pushd lib
rm *.jar
ln -s /usr/share/java/jdom.jar .
ln -s /usr/share/java/bsh.jar .
popd
# copy the Linux Makefiles into place
cp etc/build/linux/Makefile src/sdljava/native
cp etc/build/gljava/linux/Makefile src/org/gljava/opengl/native
cp etc/build/gljava/linux/ftgl/Makefile src/org/gljava/opengl/native/ftgl
# and remove the swig generated code so that it gets regenerated
rm src/sdljava/native/SDL*_wrap.c src/sdljava/native/SDL_types.h
rm src/org/gljava/opengl/native/glew_wrap.c
%build
pushd src/sdljava/native
make CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
make libsdljava_gfx.so CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
popd
pushd src/org/gljava/opengl/native
make CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
popd
pushd src/org/gljava/opengl/native/ftgl
make CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
popd
ant jar javadoc
%install
rm -rf $RPM_BUILD_ROOT
# dirs
mkdir -p $RPM_BUILD_ROOT%{_bindir}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}
mkdir -p $RPM_BUILD_ROOT%{_javadir}
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
# jars
install -m 644 lib/%{name}.jar \
$RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
# native libraries
install -m 755 lib/*.so $RPM_BUILD_ROOT%{_libdir}/%{name}
# javadoc
cp -pr docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}
# demo scripts
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
pushd bin
rm runtest.sh
for i in `ls -1 *.sh`; do
sed -i -e 's|./runtest.sh|%{_bindir}/%{name}-runtest.sh|g' $i
FN=`echo $i | awk 'BEGIN { FS="." }{ print $1 }'`
install -m 755 $i $RPM_BUILD_ROOT%{_bindir}/%{name}-$FN.sh
done
popd
#test data
cp -a testdata $RPM_BUILD_ROOT%{_datadir}/%{name}
ln -s ../../fonts/dejavu/DejaVuSans.ttf \
$RPM_BUILD_ROOT%{_datadir}/%{name}/testdata/arial.ttf
ln -s ../../fonts/dejavu/DejaVuSans-Bold.ttf \
$RPM_BUILD_ROOT%{_datadir}/%{name}/testdata/arialbd.ttf
ln -s ../../fonts/dejavu/DejaVuSans-Oblique.ttf \
$RPM_BUILD_ROOT%{_datadir}/%{name}/testdata/ariali.ttf
ln -s ../../fonts/dejavu/DejaVuSans-BoldOblique.ttf \
$RPM_BUILD_ROOT%{_datadir}/%{name}/testdata/arialbi.ttf
%{_bindir}/aot-compile-rpm
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/ldconfig
if [ -x %{_bindir}/rebuild-gcj-db ]; then
%{_bindir}/rebuild-gcj-db
fi
%postun
/sbin/ldconfig
if [ -x %{_bindir}/rebuild-gcj-db ]; then
%{_bindir}/rebuild-gcj-db
fi
%post javadoc
rm -f %{_javadocdir}/%{name}
ln -s %{name}-%{version} %{_javadocdir}/%{name}
%files
%defattr(-,root,root,-)
%doc README TODO docs/CHANGES_0_9_1
%{_javadir}/%{name}*.jar
%{_libdir}/%{name}
%{_libdir}/gcj/%{name}
%files javadoc
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{name}-%{version}
%ghost %doc %{_javadocdir}/%{name}
%files demo
%defattr(-,root,root,-)
%{_bindir}/%{name}-*.sh
%{_datadir}/%{name}/testdata
%changelog
* Thu Sep 20 2007 Hans de Goede <j.w.r.degoede@hhs.nl> 0.9.1-5
- BuildRequire icedtea as building with gcj fails (bug 297961)
* Wed Sep 19 2007 Hans de Goede <j.w.r.degoede@hhs.nl> 0.9.1-4
- Make all doc files UTF-8
* Mon Sep 17 2007 Hans de Goede <j.w.r.degoede@hhs.nl> 0.9.1-3
- Fix determination of gcc include path
* Tue Sep 11 2007 Hans de Goede <j.w.r.degoede@hhs.nl> 0.9.1-2
- Dynamically determine gcc include path instead of hardcoding it, so that
sdljava will build on other setups then devel-x86_64 too (oops).
* Sat Sep 8 2007 Hans de Goede <j.w.r.degoede@hhs.nl> 0.9.1-1
- Adapted Packman spec file for Fedora
* Mon Jun 18 2007 Toni Graffy <toni@links2linux.de> - 0.9.1-0.pm.2
- rebuild with glew-1.3.6
* Sat Jun 16 2007 Toni Graffy <toni@links2linux.de> - 0.9.1-0.pm.1
- initial build 0.9.1
- repacked as tar.bz2