File: rules

package info (click to toggle)
zookeeper 3.3.5%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 14,296 kB
  • sloc: java: 44,210; xml: 15,296; cpp: 11,371; ansic: 8,124; sh: 2,255; python: 765; makefile: 234; perl: 114
file content (137 lines) | stat: -rwxr-xr-x 5,308 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
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