1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
#!/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)
%:
dh $@ --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
# the upstream build file includes .java files in the jars. Let's create the jars ourselves.
# see: https://issues.apache.org/jira/browse/ZOOKEEPER-537
ant -Dversion=$(DEB_UPSTREAM_VERSION) -DlastRevision=-1 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 - bookkeeper
cd src/contrib && ant -Dversion=$(DEB_UPSTREAM_VERSION) -DlastRevision=-1 -Ddest.dir=../../build/zookeeper -Divy.jar.exists=true -Divy.initialized=true -Dcontribfilesetincludes="bookkeeper/build.xml"
# Compile contribs - zooinspector
cd src/contrib && ant -Dversion=$(DEB_UPSTREAM_VERSION) -DlastRevision=-1 -Ddest.dir=../../build/zookeeper -Divy.jar.exists=true -Divy.initialized=true -Dcontribfilesetincludes="zooinspector/build.xml"
# 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
dh_install
ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
override_dh_auto_test-arch:
# C testing starts/stops zookeeper
# this ensures that all the right classes are found
for jar in jline log4j-1.2 xercesImpl xmlParserAPIs; do \
ln -sf /usr/share/java/$$jar.jar build/lib/$$jar.jar; \
done;
# Execute multi-threaded test suite
$(MAKE) -C src/c zktest-mt
cd src/c && ./zktest-mt
# 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
ant -Dversion=$(DEB_UPSTREAM_VERSION) -DlastRevision=-1 test-core-java
endif
endif
override_dh_clean:
dh_clean --exclude=src/java \
--exclude=src/docs \
--exclude=src/c \
--exclude=src/reciped
jh_clean
rm -rf debian/*.upstart
# 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
# the original build.xml deletes too much
override_dh_auto_clean:
dh_testdir
rm -rf .revision
rm -rf build
rm -rf src/c/generated
rm -rf src/java/generated
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-*
ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
override_dh_installdocs:
dh_installdocs --link-doc=libzookeeper-java \
-plibzookeeper-java -pzookeeper -pzookeeperd -plibzookeeper-java-doc
dh_installdocs --link-doc=libzookeeper-mt2 \
-plibzookeeper-mt2 -plibzookeeper-mt-dev -pzookeeper-bin \
-ppython-zookeeper -plibzookeeper2
dh_installdocs --link-doc=libzookeeper-st2 \
-plibzookeeper-st2 -plibzookeeper-st-dev
endif
# Install init script for Debian and upstart for Ubuntu
override_dh_installinit:
if dpkg-vendor --derives-from ubuntu ; then \
cp debian/zookeeperd.upstart.in debian/zookeeperd.upstart ; \
fi
dh_installinit -d
|