File: rules

package info (click to toggle)
zookeeper 3.4.13-6%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 17,744 kB
  • sloc: java: 60,531; xml: 18,356; cpp: 11,970; ansic: 9,192; sh: 3,112; python: 2,382; makefile: 261; perl: 114; javascript: 29
file content (146 lines) | stat: -rwxr-xr-x 5,497 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
138
139
140
141
142
143
144
145
146
#!/usr/bin/make -f

export JAVA_HOME=/usr/lib/jvm/default-java

PYVERS := $(shell py3versions -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 \
           -Djavac.source=8 \
           -Djavac.target=8

%:
	dh $@ --buildsystem=ivy --with javahelper --with python3

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