File: rules

package info (click to toggle)
golang-1.7 1.7.4-2%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 67,996 kB
  • sloc: asm: 43,658; ansic: 7,818; sh: 1,492; perl: 1,131; xml: 623; python: 286; javascript: 231; yacc: 155; makefile: 109; cpp: 22; f90: 8; awk: 7
file content (108 lines) | stat: -rwxr-xr-x 3,349 bytes parent folder | download | duplicates (8)
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
#!/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)

DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH 2>/dev/null)
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 --parallel $(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

override_dh_auto_clean: gencontrol
	# remove autogenerated files
	rm -f \
		src/cmd/cgo/zdefaultcc.go \
		src/cmd/go/zdefaultcc.go \
		src/cmd/internal/obj/zbootstrap.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"; \
		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

override_dh_compress-indep:
	dh_compress -Xusr/share/doc/golang-doc/html -Xusr/share/doc/golang-doc/godoc

override_dh_install-indep:
	dh_install --fail-missing

override_dh_install-arch:
	dh_install --fail-missing
	# 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 {} \;

override_dh_strip:
	dh_strip -Xtestdata

override_dh_shlibdeps:
	dh_shlibdeps -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