File: rules

package info (click to toggle)
golang-1.15 1.15.9-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, experimental, sid
  • size: 119,600 kB
  • sloc: asm: 104,747; ansic: 6,357; sh: 1,677; perl: 1,095; javascript: 714; xml: 623; python: 361; makefile: 111; cpp: 39; f90: 8; awk: 7; objc: 4
file content (136 lines) | stat: -rwxr-xr-x 4,496 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
131
132
133
134
135
136
#!/usr/bin/make -f
# This file is in the public domain.
# You may freely use, modify, distribute, and relicense it.

export GOVER := $(shell perl -w -mDpkg::Version -e 'Dpkg::Version->new(`dpkg-parsechangelog -SVersion`)->version() =~ /^([0-9]+\.[0-9]+)/ && print("$$1\n")')

export GOROOT := $(CURDIR)
export GOROOT_FINAL := /usr/lib/go-$(GOVER)

# Go 1.12 needs a build cache, otherwise the build fails.
export GOCACHE := $(CURDIR)/pkg/obj/go-build

# We need DEB_HOST_ARCH, so include the needed makefile snippet
include /usr/share/dpkg/architecture.mk

RUN_TESTS := true
# armel: ???
# ppc64: ???
ifneq (,$(filter armel ppc64,$(DEB_HOST_ARCH)))
	RUN_TESTS := false
endif
ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
	RUN_TESTS := false
endif

%:
	+dh $@ $(opt_no_act)

gencontrol:
	for file in control gbp.conf source/lintian-overrides watch; do \
		{ \
			echo '#'; \
			echo '# WARNING: "debian/'$$file'" is generated via "debian/rules gencontrol" (sourced from "debian/'$$file'.in")'; \
			echo '#'; \
			echo; \
			sed -e 's/X.Y/$(GOVER)/g' debian/$$file.in; \
		} > debian/$$file; \
	done

# The signing key for the source tarballs is rotated yearly.
update_upstream_signing_key:
	wget -O debian/upstream/signing-key.asc https://dl.google.com/dl/linux/linux_signing_key.pub

override_dh_auto_clean: gencontrol
	# remove autogenerated files
	rm -f \
		src/cmd/cgo/zdefaultcc.go \
		src/cmd/go/internal/cfg/zdefaultcc.go \
		src/cmd/go/internal/cfg/zosarch.go \
		src/cmd/internal/objabi/zbootstrap.go \
		src/go/build/zcgo.go \
		src/runtime/internal/sys/zversion.go
	# remove built objects
	rm -rf bin pkg
	@set -e; cd debian; for x in golang-X.Y-*; do \
		rm -f -v golang-$(GOVER)-$${x##golang-X.Y-}; \
	done

override_dh_prep:
	dh_prep
	@set -e; cd debian; for x in golang-X.Y-*; do \
		sed -e 's/X.Y/$(GOVER)/g' $$x > golang-$(GOVER)-$${x##golang-X.Y-}; \
	done


override_dh_auto_test-arch:
ifeq (true, $(RUN_TESTS))
	set -ex; \
		cd src; \
		export PATH="$(GOROOT)/bin:$$PATH"; \
		export GO_TEST_TIMEOUT_SCALE=10; \
		eval "$$(go tool dist env)"; \
		bash run.bash -k -no-rebuild;
	# -k           keep going even when error occurred
	# -no-rebuild  don't rebuild std and cmd packages

	# On linux/amd64 run.bash installs some race enabled standard library
	# packages. Delete them again to avoid accidentally including them in
	# the package.
	set -ex; \
		export PATH="$(GOROOT)/bin:$$PATH"; \
		eval "$$(go tool dist env)"; \
		rm -rf "$(GOROOT)/pkg/$${GOOS}_$${GOARCH}_race/"
else
	# skip the tests on platforms where they fail
endif
	# Remove GOCACHE files
	rm -rf pkg/obj

override_dh_compress-indep:
	dh_compress -Xusr/share/doc/golang-$(GOVER)-doc/html -Xusr/share/doc/golang-$(GOVER)-doc/favicon.ico

override_dh_install-arch:
	dh_install
	# Remove Plan9 rc(1) scripts
	find debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src -type f -name '*.rc' -delete
	# Remove empty /usr/share/go-$(GOVER)/src from golang-$(GOVER)-go, it is provided by golang-$(GOVER)-src
	find debian/golang-$(GOVER)-go/usr/share/go-$(GOVER)/src -type d -delete
	# Touch built and installed files and directories to have same timestamp
	touch debian/golang-$(GOVER)-go/usr/lib/go-$(GOVER)/pkg
	find debian/golang-$(GOVER)-go/usr/lib/go-$(GOVER)/pkg -exec touch -r $(CURDIR)/debian/golang-$(GOVER)-go/usr/lib/go-$(GOVER)/pkg {} \;
	# Make scripts executable which have been missed by upstream
	chmod a+x debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src/cmp.bash
	chmod a+x debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src/cmd/vendor/golang.org/x/sys/unix/mkall.sh
	chmod a+x debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src/cmd/vendor/golang.org/x/sys/unix/mkerrors.sh
	chmod a+x debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src/cmd/vendor/golang.org/x/sys/windows/mkerrors.bash

override_dh_missing:
	dh_missing --fail-missing

override_dh_strip:
	dh_strip -Xtestdata

# Do not run dh_dwz, as there is no debug information currently.
override_dh_dwz:

override_dh_strip_nondeterminism:
	dh_strip_nondeterminism -Xtestdata

override_dh_shlibdeps:
	dh_shlibdeps -Xtestdata -Xtest

override_dh_makeshlibs:
	dh_makeshlibs -Xtestdata -Xtest

override_dh_auto_build-arch:
	[ -f VERSION ] || echo "debian snapshot +$$(dpkg-parsechangelog -SVersion)" > VERSION
	export GOROOT_BOOTSTRAP=$$(env -i go env GOROOT) \
		&& cd src \
		&& $(CURDIR)/debian/helpers/goenv.sh \
			bash ./make.bash --no-banner

opt_no_act :=
ifneq (,$(findstring n,$(MAKEFLAGS)))
	opt_no_act := --no-act
endif