summaryrefslogtreecommitdiff
path: root/debian/rules
blob: cdf6cc995d28bd28468ee538fa8c1fc916aa356a (plain)
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
#!/usr/bin/make -f
# This file is in the public domain.
# You may freely use, modify, distribute, and relicense it.

PACKAGE = golang

DESTDIR := $(CURDIR)/debian/tmp
libexecdir := /usr/lib/golang
bindir := /usr/bin

build clean install binary-arch binary-indep binary:
	+dh --parallel $(opt_no_act) $@

override_dh_auto_clean:
	rm -f debian/*+
	rm -f debian/build.stamp
	: NEEDSWORK: update src/pkg/Makefile.
	#cd src/pkg && $(GOBIN)/gomake exp/ogle.clean
	rm -f src/pkg/Make.deps
	rm -f test/pass.out test/run.out test/times.out

override_dh_auto_build: debian/build.stamp

override_dh_auto_test:
	:
#	$(no_check) || { cd src && bash ./run.bash --no-rebuild; }

#override_dh_compress:
#	dh_compress -Xusr/share/doc/golang-doc/html

override_dh_auto_install:
	mkdir -p $(DESTDIR)$(bindir)
	install -m755 $(CURDIR)$(bindir)/* $(DESTDIR)$(bindir)
	mkdir -p $(DESTDIR)$(libexecdir)
	: library
	cp -a pkg $(DESTDIR)$(libexecdir)/
	: runtime
	mkdir -p $(DESTDIR)$(libexecdir)/src/pkg/runtime
	install -m644 src/pkg/runtime/cgocall.h $(DESTDIR)$(libexecdir)/src/pkg/runtime/
	install -m644 src/pkg/runtime/runtime.h $(DESTDIR)$(libexecdir)/src/pkg/runtime/
	: web apps
	mkdir -p $(DESTDIR)$(libexecdir)/lib
	cp -a lib/codereview $(DESTDIR)$(libexecdir)/lib/
	cp -a lib/godoc $(DESTDIR)$(libexecdir)/lib/
	install -m644 favicon.ico $(DESTDIR)$(libexecdir)/
	# remove hgpatch and quietgcc from installation
	rm $(DESTDIR)$(bindir)/hgpatch $(DESTDIR)$(bindir)/quietgcc
	# remove codereview - some mercurial stuff in python
	rm -rf $(DESTDIR)/usr/lib/golang/lib/codereview
	for cmd in a c g l; do ln -s $(GOPREFIX)$$cmd $(DESTDIR)$(bindir)/golang-$$cmd; done
	for cmd in nm cov prof; do ln -s 6$$cmd $(DESTDIR)$(bindir)/golang-$$cmd; done

override_dh_install:
	dh_install --fail-missing

override_dh_strip:
	dh_strip -X".a" -Xgoinstall -Xgodoc -Xgoyacc -Xbin/cgo -Xebnflint -Xgofmt -Xgovet

debian/build.stamp:
	rm -f debian/build.stamp
	mkdir -p $(GOBIN)
	cd src && bash ./make.bash
	>debian/build.stamp

opt_no_act =
no_check = ! :

ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
    $(warning no support for disabling optimization)
endif

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

ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
    no_check = :
endif

GOROOT := $(CURDIR)
GOROOT_FINAL := $(libexecdir)
GOBIN := $(CURDIR)$(bindir)
GOARM :=

DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)
DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null)

ifeq ($(DEB_HOST_ARCH_OS), kfreebsd)
    GOOS := freebsd
else
    ifeq (,$(findstring $(DEB_HOST_ARCH_OS), linux freebsd darwin))
        $(warning unrecognized kernel $(DEB_HOST_ARCH_OS)! continuing.)
    endif
    GOOS := $(DEB_HOST_ARCH_OS)
endif

ifeq ($(DEB_HOST_ARCH_CPU), i386)
    GOARCH := 386
    GOHOSTARCH := 386
    GOPREFIX := 8
else ifeq ($(DEB_HOST_ARCH_CPU), amd64)
    GOARCH := amd64
    GOHOSTARCH := amd64
    GOPREFIX := 6
else ifeq (,$(findstring $(DEB_HOST_ARCH_CPU), arm armeb armel))
    GOARCH := arm
    GOARM := 5
    GOPREFIX := 5
else
    $(warning unrecognized instruction set $(DEB_HOST_ARCH_CPU)! continuing.)
    GOARCH := $(DEB_HOST_ARCH_CPU)
endif

export GOROOT GOOS GOARCH GOARM GOBIN GOHOSTARCH GOHOSTOS

REPO = https://go.googlecode.com/hg/
REV = release
get-orig-source:
	mkdir debian-orig-source
	-set -e; cd debian-orig-source; \
	hg clone -U -r"$(REV)" "$(REPO)" go; \
	( \
		cd go; \
		hg pull; \
		VERSION=$$( \
			hg identify -t -r"$(REV)" | \
			perl -e '<> =~ /release\.(\d+)-(\d+)-(\d+)/; print "$$1.$$2.$$3"' \
		); \
		hg archive -ttgz -p"google-go-$$VERSION/" -r"$(REV)" -X'.hg*' \
			../../google-go_$$VERSION.orig.tar.gz; \
	)
	rm -fr debian-orig-source