File: rules

package info (click to toggle)
zookeeper 3.4.5%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 16,744 kB
  • sloc: java: 50,871; xml: 24,450; cpp: 11,899; ansic: 9,284; sh: 2,450; python: 2,224; makefile: 232; perl: 114
file content (131 lines) | stat: -rwxr-xr-x 4,800 bytes parent folder | download
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