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