File: rules

package info (click to toggle)
bazel-bootstrap 4.2.3%2Bds-13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 85,724 kB
  • sloc: java: 721,717; sh: 55,859; cpp: 35,361; python: 12,139; xml: 295; objc: 269; makefile: 114; ansic: 106; ruby: 3
file content (130 lines) | stat: -rwxr-xr-x 5,331 bytes parent folder | download | duplicates (5)
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
#!/usr/bin/make -f
export DH_VERBOSE = 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
#DPKG_EXPORT_BUILDFLAGS = 1
#include /usr/share/dpkg/buildflags.mk

export VERBOSE = yes
export BAZDIR = ${CURDIR}/debian/bazel-bootstrap
export BAZDATADIR = ${CURDIR}/debian/bazel-bootstrap-data
export BAZSRCDIR = ${CURDIR}/debian/bazel-bootstrap-source

# Bypass ccache
export CCACHE_DISABLE = 1
export CCACHE_TEMPDIR = ${CURDIR}/debian/ccachetmp

# Set locale for reproducible builds
export LC_ALL = C

# Ensure packages build with no Internet access
export http_proxy=127.0.0.1:9
export https_proxy=127.0.0.1:9

# BAZEL_CXXOPTS and BAZEL_LINKOPTS take a list of flags seperated by colon
export space = $() $()
export BAZEL_CXXOPTS = $(subst $(space),:,-std=c++17 ${CPPFLAGS} ${CXXFLAGS})
export BAZEL_LINKOPTS = $(subst $(space),:,-lstdc++ -lm ${LDFLAGS})

# Use the local JDK
export EXTRA_BAZEL_ARGS = \
	--host_javabase=@local_jdk//:jdk \
	--define=distribution=debian \
	--noremote_accept_cached \
	--verbose_failures \
	--subcommands \
	--compilation_mode dbg \
	--action_env=CCACHE_DISABLE \
	--action_env=CCACHE_TEMPDIR \
	--action_env=LC_ALL \
	--host_action_env=CCACHE_DISABLE \
	--host_action_env=CCACHE_TEMPDIR \
	--host_action_env=LC_ALL \
	--sandbox_debug \
	--sandbox_writable_path=${CCACHE_TEMPDIR} \
	--override_repository=com_google_protobuf=${CURDIR}/tools/distributions/debian/protobuf \
	--override_repository=remote_java_tools_linux=${CURDIR}/mock_repos/remote_java_tools_linux \
	--override_repository=bazel_skylib=${CURDIR}/mock_repos/bazel_skylib \
	--override_repository=io_bazel_skydoc=${CURDIR}/mock_repos/bazel_skydoc \
	--override_repository=rules_pkg=${CURDIR}/mock_repos/rules_pkg \
	--override_repository=rules_cc=${CURDIR}/mock_repos/rules_cc \
	--override_repository=rules_java=${CURDIR}/mock_repos/rules_java \
	--override_repository=rules_proto=${CURDIR}/mock_repos/rules_proto \
	--override_repository=platforms=${CURDIR}/mock_repos/platforms \
	--distinct_host_configuration=false

export PROTOC = /usr/bin/protoc
export GRPC_JAVA_PLUGIN = /usr/bin/grpc_java_plugin
export JAVA_VERSION = 17

# Prevent Out-of-Memory failures on some architectures, enable annotation processing
export BAZEL_JAVAC_OPTS = -J-Xmx4096m --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -proc:full
# Strip Ubuntu-specific metadata, bazel tries to parse it as json and fails.
LDFLAGS:=$(shell echo $(LDFLAGS) | sed 's/-Wl,--package-metadata=[^ ]*//g')

%:
	dh $@ --with python3

override_dh_auto_build:
	mkdir -p ${CCACHE_TEMPDIR}
	./compile.sh

override_dh_auto_clean:
	dh_auto_clean
	rm -rf derived
	rm -rf output
	rm -rf bazel-*

override_dh_install:
	mkdir -p debian/tmp/usr/src/bazel-bootstrap
	ls | sed -r '/(debian|derived|examples|output|site|bazel-)/d' | \
		xargs cp -r -t debian/tmp/usr/src/bazel-bootstrap
	rm -f debian/tmp/usr/src/bazel-bootstrap/scripts/packages/chocolatey/.gitignore
	rm -rf mock_repos
	rm -f output/usr/share/bazel/xcode-locator
	rm -rf output/usr/share/bazel/embedded_tools/tools/jdk/nosystemjdk
	mv output/etc debian/tmp
	mv output/usr/bin debian/tmp/usr
	mv output/usr/share debian/tmp/usr
# Fail build (and show culprits) if Bazel components are not properly installed
	mv output debian/tmp/leftovers
	ls -laR debian/tmp/leftovers
	dh_install
	rm -rf ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/zip/zipper

override_dh_installdocs-arch:
	dh_installdocs --package=bazel-bootstrap -XREADME.Debian

override_dh_installdocs-indep:
	dh_installdocs --package=bazel-bootstrap-data \
		--doc-main-package=bazel-bootstrap
	dh_installdocs --package=bazel-bootstrap-source \
		--doc-main-package=bazel-bootstrap -XREADME.Debian

override_dh_link-indep:
	jdupes -rl ${BAZDATADIR}/usr
	find ${BAZDATADIR}/usr/share/bazel/embedded_tools -type f -name \
		'*.h' -printf '%h\n' | sort -u | sed 's@/build.*embedded_tools/@@' | \
		xargs -I% mkdir -p ${BAZDATADIR}/usr/include/bazel/%
	find ${BAZDATADIR}/usr/share/bazel/embedded_tools -name '*.h' | \
		sed 's@/build.*/embedded_tools/@@g' | xargs -I% ln -rs \
		${BAZDATADIR}/usr/share/bazel/embedded_tools/% \
		${BAZDATADIR}/usr/include/bazel/%
	dh_link

override_dh_fixperms-indep:
	find ${BAZDATADIR}/usr/share -type f -print0 2>/dev/null | xargs -0r chmod a-x
	find ${BAZSRCDIR}/usr/src -type f -not -name '*.sh' -print0 2>/dev/null | \
		xargs -0r chmod a-x
	find ${BAZDATADIR}/usr/share/doc/bazel/examples -type f \
		-not -name '*.sh' -print0 2>/dev/null | xargs -0r chmod a-x
	find ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools \
		-type f -name '*.sh*' -print0 2>/dev/null | xargs -0r chmod a+x
	chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/buildstamp/get_workspace_status
	chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/cpp/build_interface_so
	chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/cpp/linux_cc_wrapper.sh.tpl
	chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/cpp/osx_cc_wrapper.sh.tpl
	chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/objc/gcov_stub
	chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/objc/mcov_stub
	chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/objc/protobuf_support
	chmod a+x ${BAZDATADIR}/usr/share/bazel/embedded_tools/tools/python/pywrapper_template.txt
	dh_fixperms