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
|
#!/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 - zooinspector
cd src/contrib && \
ant -Dversion=$(DEB_UPSTREAM_VERSION) \
-propertyfile ../../debian/ant.properties \
-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)))
# 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
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
# 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-*
override_dh_installinit:
dh_installinit -d
|