From 145495339155ac97c4dfb4e3401fdca635980311 Mon Sep 17 00:00:00 2001 From: hallgren Date: Tue, 12 Apr 2016 15:01:11 +0000 Subject: [PATCH] Changes to include the Java binding in binary distribution packages This means that you now need to have a Java SDK installed to build a Debian package. The bin/build-binary-dist.sh (which builds bintar packages and OS X installer packages) now skips the Python binding if python is not installed. Likewise it skips the Java binding if a Java SDK is not installed. --- bin/build-binary-dist.sh | 27 +++++++++++++++++++-------- debian/control | 2 +- debian/rules | 10 +++++++--- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/bin/build-binary-dist.sh b/bin/build-binary-dist.sh index 04bc52000..19c30b1ec 100644 --- a/bin/build-binary-dist.sh +++ b/bin/build-binary-dist.sh @@ -32,18 +32,29 @@ bash setup.sh install prefix="$destdir$prefix" popd ## Build the python binding to the C run-time system -pushd src/runtime/python -EXTRA_INCLUDE_DIRS="$extrainclude" EXTRA_LIB_DIRS="$extralib" python setup.py build -python setup.py install --prefix="$destdir$prefix" -popd +if which >/dev/null python; then + pushd src/runtime/python + EXTRA_INCLUDE_DIRS="$extrainclude" EXTRA_LIB_DIRS="$extralib" python setup.py build + python setup.py install --prefix="$destdir$prefix" + popd +else + echo "Python is not installed, so the Python binding will not be included" +fi ## Build the Java binding to the C run-time system -pushd src/runtime/java -# not implemented yet -popd +if which >/dev/null javac && which >/dev/null jar ; then + pushd src/runtime/java + rm -f libjpgf.la # In case it contains the wrong INSTALL_PATH + make INSTALL_PATH="$prefix/lib" + make INSTALL_PATH="$destdir$prefix/lib" install + cp jpgf.jar "$destdir$prefix/lib" # missing from make install... + popd +else + echo "Java SDK is not installed, so the Java binding will not be included" +fi ## Build GF, with C run-time support enabled -cabal install --only-dependencies +cabal install --only-dependencies -fserver -fc-runtime $extra cabal configure --prefix="$prefix" -fserver -fc-runtime $extra DYLD_LIBRARY_PATH="$extralib" LD_LIBRARY_PATH="$extralib" cabal build cabal copy --destdir="$destdir" diff --git a/debian/control b/debian/control index dd688bc3f..fa7b7a1b1 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: devel Priority: optional Maintainer: Thomas Hallgren Standards-Version: 3.9.2 -Build-Depends: debhelper (>= 5), haskell-platform (>= 2011.2.0.1), libghc-haskeline-dev, libghc-mtl-dev, libghc-json-dev, python-dev, autoconf, libtool +Build-Depends: debhelper (>= 5), haskell-platform (>= 2011.2.0.1), libghc-haskeline-dev, libghc-mtl-dev, libghc-json-dev, autoconf, automake, libtool, python-dev, java-sdk Homepage: http://www.grammaticalframework.org/ Package: gf diff --git a/debian/rules b/debian/rules index 0079f32ca..bf2d65372 100644 --- a/debian/rules +++ b/debian/rules @@ -15,25 +15,29 @@ override_dh_shlibdeps: override_dh_auto_build: cd src/runtime/python && EXTRA_INCLUDE_DIRS=$(CURDIR)/src/runtime/c EXTRA_LIB_DIRS=$(CURDIR)/src/runtime/c/.libs python setup.py build + cd src/runtime/java && make INSTALL_PATH=/usr/lib echo LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(CURDIR)/src/runtime/c/.libs LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(CURDIR)/src/runtime/c/.libs cabal build override_dh_auto_clean: rm -fr dist/build -cd src/runtime/python && rm -fr build + -cd src/runtime/java && make clean -cd src/runtime/c && make clean override_dh_auto_configure: - cd src/runtime/c && ./setup.sh configure --prefix=/usr - cd src/runtime/c && ./setup.sh build + cd src/runtime/c && bash setup.sh configure --prefix=/usr + cd src/runtime/c && bash setup.sh build cabal update cabal install --only-dependencies cabal configure --prefix=/usr -fserver -fc-runtime --extra-lib-dirs=$(CURDIR)/src/runtime/c/.libs --extra-include-dirs=$(CURDIR)/src/runtime/c override_dh_auto_install: LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(CURDIR)/src/runtime/c/.libs cabal copy --destdir=$(CURDIR)/debian/gf - cd src/runtime/c && ./setup.sh copy prefix=$(CURDIR)/debian/gf/usr + cd src/runtime/c && bash setup.sh copy prefix=$(CURDIR)/debian/gf/usr cd src/runtime/python && python setup.py install --prefix=$(CURDIR)/debian/gf/usr + cd src/runtime/java && make INSTALL_PATH=$(CURDIR)/debian/gf/usr/lib install + cp src/runtime/java/jpgf.jar $(CURDIR)/debian/gf/usr/lib D="`find debian/gf -name site-packages`" && [ -n "$$D" ] && cd $$D && cd .. && mv site-packages dist-packages override_dh_auto_test: