#!/usr/bin/make -f export JAVA_HOME=/usr/lib/jvm/default-java PYVERS := $(shell pyversions -vr) DEB_UPSTREAM_VERSION=$(shell dpkg-parsechangelog | sed -rne 's,^Version: ([^+]+).*,\1,p') DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) DEB_CHANGELOG_DATETIME = $(shell dpkg-parsechangelog --show-field Date) ANT_ARGS = -Dversion=$(DEB_UPSTREAM_VERSION) \ -DlastRevision=-1 \ -Divy.url=file:/usr/share/maven-repo/org/apache/ivy/ivy/ \ -Divy.version=debian \ -Dapache-directory-api.version=debian \ -Divysettings.xml=/usr/share/ivy-debian-helper/ivysettings.xml \ -Dant.build.javac.source=1.8 \ -Dant.build.javac.target=1.8 %: dh $@ --buildsystem=ivy --with javahelper --with python2 override_dh_auto_build: # TODO exclude the fatjar contrib from upstream tarball and include the rest contrib mkdir -p build/test/classes javacc -OUTPUT_DIRECTORY=src/java/main/org/apache/jute/compiler/generated src/java/main/org/apache/jute/compiler/generated/rcc.jj dh_auto_build -- $(ANT_ARGS) '-Dbuild.time=$(DEB_CHANGELOG_DATETIME)' -Dfinal.name=zookeeper javadoc javadoc-dev jar # Compile C library cd src/c && autoreconf -i cd src/c && ./configure --prefix=/usr --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) $(MAKE) -C src/c # Compile contribs - zooinspector dh_auto_build -- -f src/contrib/build.xml $(ANT_ARGS) -Dcontribfilesetincludes="zooinspector/build.xml" # rename JAR file to comply with Debian Java policy mv -fv build/contrib/ZooInspector/zookeeper-ZooInspector.jar build/contrib/ZooInspector/zookeeper-zooinspector.jar # Build Python Bindings cd src/contrib/zkpython && \ for pv in $(PYVERS); do \ python$$pv src/python/setup.py build --build-base=$(CURDIR)/build ;\ done # Compile zktreeutil and generate man page cd src/contrib/zktreeutil && autoreconf -if && ./configure --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) && make LD_LIBRARY_PATH=src/c/.libs help2man -N --version-string=0.0 src/contrib/zktreeutil/src/zktreeutil >zktreeutil.man override_dh_install: $(MAKE) -C src/c install DESTDIR=$(CURDIR)/debian/tmp cd src/contrib/zkpython && \ for pv in $(PYVERS); do \ python$$pv src/python/setup.py build --build-base=$(CURDIR)/build \ install --root=$(CURDIR)/debian/tmp --install-layout=deb ;\ done # Generate install files for Multiarch capability for install in libzookeeper-mt2 libzookeeper-st2 \ libzookeeper-st-dev libzookeeper-mt-dev; do \ sed -e 's/__ARCH__/$(DEB_HOST_MULTIARCH)/g' debian/$$install.install.in \ > debian/$$install.install; \ done # Install the Maven artifacts mh_installpom -plibzookeeper-java debian/pom.xml mh_installjar -plibzookeeper-java --java-lib --has-package-version debian/pom.xml build/zookeeper.jar dh_install ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) # Limit architectures which execute tests as some # non x86 archs can be a bit racey. TEST_ARCH=i386 amd64 ifneq (,$(findstring $(DEB_BUILD_ARCH), $(TEST_ARCH))) TEST_JARS=jline log4j-1.2 xercesImpl xmlParserAPIs netty slf4j-api slf4j-log4j12 override_dh_auto_test-arch: # C testing starts/stops zookeeper # this ensures that all the right classes are found for jar in $(TEST_JARS); do \ ln -sf /usr/share/java/$$jar.jar build/lib/$$jar.jar; \ done; # Execute multi-threaded test suite # Disable on Ubuntu and Debian due to glibc 2.17 incompatibility # https://issues.apache.org/jira/browse/ZOOKEEPER-1646 if ! dpkg-vendor --derives-from debian; then \ $(MAKE) -C src/c zktest-mt; \ cd src/c && ./zktest-mt; \ fi; endif # Only run core Java unit tests on i386 architecture as this is the arch # that they are built and published on - works around -indep not working # in Ubuntu. ifeq (i386, $(DEB_BUILD_ARCH)) override_dh_auto_test-indep: # Run core Java test suite against zookeeper #dh_auto_build -- $(ANT_ARGS) test-core-java endif endif override_dh_clean: mh_clean dh_clean --exclude=src/java \ --exclude=src/docs \ --exclude=src/c \ --exclude=src/reciped jh_clean # Clean generated install files for install in libzookeeper-mt2 libzookeeper-st2 \ libzookeeper-st-dev libzookeeper-mt-dev; do \ [ ! -f debian/$$install.install ] || rm debian/$$install.install; \ done rm -rf debian/*debhelper.log # the original build.xml deletes too much override_dh_auto_clean: dh_auto_clean rm -rf .revision rm -rf build rm -rf src/c/generated rm -rf src/java/generated rm -rf src/java/lib/*.jar rm -rf src/java/main/org/apache/jute/compiler/generated/*.java rm -f zookeeper*.jar [ ! -f src/c/Makefile ] || $(MAKE) -C src/c distclean rm -f src/c/config.log src/c/config.status [ ! -f src/contrib/zktreeutil/Makefile ] || $(MAKE) -C src/contrib/zktreeutil distclean rm -rf src/contrib/zktreeutil/autom4te.cache rm -rf src/contrib/zktreeutil/Makefile.in rm -rf src/contrib/zktreeutil/aclocal.m4 rm -rf src/contrib/zktreeutil/config.h.in rm -rf src/contrib/zktreeutil/configure rm -rf src/contrib/zktreeutil/depcomp rm -rf src/contrib/zktreeutil/install-sh rm -rf src/contrib/zktreeutil/missing rm -rf src/contrib/zktreeutil/src/Makefile.in rm -rf zktreeutil.man rm -rf src/c/Makefile.in rm -rf src/c/aclocal.m4 rm -rf src/c/autom4te.cache rm -rf src/c/compile rm -rf src/c/config.guess rm -rf src/c/config.sub rm -rf src/c/configure rm -rf src/c/ltmain.sh rm -rf src/c/TEST-* override_dh_installinit: dh_installinit --name=zookeeper