File lejos_nxj.spec of Package lejos_nxj

Name:              lejos_nxj
Summary:           Lejos nxj library for java
Version:           0.9.1beta
%define            nameU leJOS
%define            libversion 0.9
%define            sub 3
Release:           1
License:           GPL
Group:             Development/Languages/Java
Source:            %{nameU}_NXJ_%{version}-%{sub}_source.tar.gz
Source1:           lejos_nxt_rom.bin
Source3:           %{name}.sh
Source4:           %{name}.csh
Patch:             %{name}-uname.patch
Patch1:            %{name}-library-path.patch
Patch2:            %{name}-udev-rules.patch
Patch3:            %{name}-build.patch
Patch4:            %{name}-ant-prefixValues.patch
Patch5:            %{name}-build-java9.patch
Patch6:            %{name}-source-1-6.patch
Prefix:            /usr
Url:               http://lejos.sourceforge.net
Requires:          bluez
BuildRequires:     libusb-devel ant >= 1.8.2 zip unzip dos2unix
%if ! 0%{?suse_version}
%define            java_home /usr/lib/jvm/java
%endif
%if 0%{?centos_version} || 0%{?fedora}
BuildRequires:     java-devel >= 1.6.0 bluez-libs-devel
%else
BuildRequires:     java-devel bluez-devel
%endif
%if 0%{?centos_version} || 0%{?sles_version}
BuildRoot:         %{_tmppath}/%{name}-%{version}-%{release}
%endif
%define            NXJ_HOME /usr/share/%{name}

%description
Lejos nxj java library to work with the mindstorms NXT brick.

%package devel
Summary:	Lejos nxj header files
Group:		Development/Sources
Requires:	lejos_nxj = %{version}

%description devel
Lejos nxj header files provides the include and source files for lejos_nxj.

%package -n libjlibnxt-%{libversion}
Summary:	Lejos nxj native library
Group:		Development/Libraries/C and C++
%if 0%{?centos_version} || 0%{?fedora}
BuildRequires:	bluez-libs-devel
%else
BuildRequires:	bluez-devel
%endif
BuildRequires:	libusb-devel

%description -n libjlibnxt-%{libversion}
Lejos nxj native library to interface the mindstorms NXT brick.

%package -n libjlibnxt-devel-%{libversion}
Summary:	Lejos nxj native library include
Group:		Development/Sources

%description -n libjlibnxt-devel-%{libversion}
Lejos nxj native library include file.

%prep
%setup -n %{nameU}_NXJ_%{version}-%{sub}_source
%patch -p1
%patch1 -p1
pushd libnxt
dos2unix udev-rules.txt
popd
%patch2 -p1
%if %{?pkg_vcmp:%pkg_vcmp java-devel >= 10}%{!?pkg_vcmp:0}
%patch5 -p1
%else
%patch3 -p1
%endif
%patch4 -p1
%patch6 -p1

install -D %{SOURCE1} snapshot/bin/lejos_nxt_rom.bin

%build
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \
%if ! 0%{?suse_version}
JAVA_HOME=%{java_home}
%endif
#build with ant
pushd libnxt
ant
popd
pushd release
ant
pushd build/bin_unix/docs
pushd nxt
zip -r ../lejos_nxj-nxt-docs.zip .
popd
pushd pc
zip -r ../lejos_nxj-pc-docs.zip .
popd
popd
popd

%install
mkdir -p %{buildroot}%{prefix}
pushd libnxt
# native lib
%ifarch x86_64
install -D libjlibnxt.so %{buildroot}%{prefix}/%{_lib}/libjlibnxt.so.%{libversion}
%else
install -D libjlibnxt.so %{buildroot}%{prefix}/%{_lib}/libjlibnxt.so.%{libversion}
%endif
(cd %{buildroot}%{prefix}/%{_lib}; ln -sf libjlibnxt.so.%{libversion} libjlibnxt.so)
# includes
install -D jlibnxt.h %{buildroot}%{prefix}/include/%{name}-%{libversion}/jlibnxt.h
# udev rules
install -D  udev-rules.txt %{buildroot}/etc/udev/rules.d/90-lejos_nxj.rules
popd

pushd release/build/bin_unix
# bin
pushd bin
for f in `ls`; do
    install -D ${f} %{buildroot}%{NXJ_HOME}/bin/${f}
done
popd

# java libs
install -D lib/nxt/classes.jar %{buildroot}%{NXJ_HOME}/lib/nxt/classes.jar
install -D docs/%{name}-nxt-docs.zip %{buildroot}%{NXJ_HOME}/lib/nxt/%{name}-nxt-docs.zip
install -D docs/%{name}-pc-docs.zip %{buildroot}%{NXJ_HOME}/lib/nxt/%{name}-pc-docs.zip
install -D lib/nxt/classes-src.zip %{buildroot}%{NXJ_HOME}/lib/nxt/classes-src.zip
pushd lib/pc
for f in `ls *.jar *.zip`; do
    install -D ${f} %{buildroot}%{NXJ_HOME}/lib/pc/${f}
done
pushd 3rdparty
for f in `ls *.jar *.zip`; do
    install -D ${f} %{buildroot}%{NXJ_HOME}/lib/pc/3rdparty/${f}
done
popd
popd
popd

# Source3,4
mkdir -p %{buildroot}/etc/profile.d
cp %{SOURCE3} %{buildroot}/etc/profile.d
cp %{SOURCE4} %{buildroot}/etc/profile.d

%preun
if [ $1 > 0 ]; then
    exit 0;
fi
pushd /usr/share/lejos_nxj/bin
for f in `ls nxj*`; do
    rm -f /usr/bin/${f}
done
popd

%post
pushd /usr/share/lejos_nxj/bin
for f in `ls nxj*`; do
    ln -sf /usr/share/lejos_nxj/bin/${f} /usr/bin/${f}
done
popd

%post -n libjlibnxt-%{libversion} -p /sbin/ldconfig

%postun -n libjlibnxt-%{libversion} -p /sbin/ldconfig

%files
%defattr(644,root,root,0755)
%doc release/build/bin_unix/*.txt release/build/bin_unix/*.html
/etc/profile.d/%{name}.sh
/etc/profile.d/%{name}.csh
%dir /etc/udev
%dir /etc/udev/rules.d
/etc/udev/rules.d/90-%{name}.rules
%dir %{NXJ_HOME}
%dir %{NXJ_HOME}/bin
%{NXJ_HOME}/bin/*.bin
%{NXJ_HOME}/bin/*.nxd
%{NXJ_HOME}/bin/*.nxj
%dir %{NXJ_HOME}/lib
%dir %{NXJ_HOME}/lib/pc
%dir %{NXJ_HOME}/lib/pc/3rdparty
%dir %{NXJ_HOME}/lib/nxt
%{NXJ_HOME}/lib/pc/3rdparty/*.jar
%{NXJ_HOME}/lib/pc/*.jar
%{NXJ_HOME}/lib/nxt/*.jar
%defattr(755,root,root,0755)
%{NXJ_HOME}/bin/nxj*

%files devel
%defattr(644,root,root,0755)
%{NXJ_HOME}/lib/pc/3rdparty/*.zip
%{NXJ_HOME}/lib/pc/*.zip
%{NXJ_HOME}/lib/nxt/*.zip

%files -n libjlibnxt-%{libversion}
%defattr(755,root,root,0755)
%{prefix}/%{_lib}/libjlibnxt.so.%{libversion}
%{prefix}/%{_lib}/libjlibnxt.so

%files -n libjlibnxt-devel-%{libversion}
%defattr(644,root,root,0755)
%{prefix}/include/%{name}-%{libversion}

%changelog
openSUSE Build Service is sponsored by