File: rules

package info (click to toggle)
build-essential 12.9
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye
  • size: 404 kB
  • sloc: sh: 557; makefile: 123; python: 78
file content (133 lines) | stat: -rwxr-xr-x 3,499 bytes parent folder | download | duplicates (3)
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
#!/usr/bin/make -f
# debian/rules for the Debian build-essential package.
# Copyright © 2003, 2004 Scott James Remnant <scott@netsplit.com>

# Uncomment this to turn on verbose mode. 
#export DH_VERBOSE=1

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
src_name := $(shell dpkg-parsechangelog -S Source)

ifeq ($(src_name),build-essential)
  cross_archs := $(shell grep -v '^\#' debian/cross-targets)
else ifeq ($(src_name),build-essential-mipsen)
  cross_archs := $(shell grep -v '^\#' debian/cross-targets-mipsen)
else
  $(error Unknown src_name)
endif

build: build-arch build-indep
build-arch: build-arch-stamp
build-indep: build-indep-stamp

debian/control: debian/control.in debian/control.cross debian/cross-targets
	sed -e "s/@src_name@/$(src_name)/" debian/control.in > $@
ifeq ($(src_name),build-essential)
	cat debian/control.native.in >> $@
endif
	for a in $(cross_archs); do \
	  sed -e "s/@DEB_TARGET_ARCH@/$$a/g" debian/control.cross >> $@; \
	done

configure-stamp:
	dh_testdir
	./configure --prefix=/usr
	touch configure-stamp

build-arch-stamp: configure-stamp
	dh_testdir
	$(MAKE)
	touch build-arch-stamp

build-indep-stamp: configure-stamp
	dh_testdir
	for a in $(cross_archs); do \
	  t=$$(dpkg-architecture -f -a$$a -qDEB_HOST_GNU_TYPE 2>/dev/null | sed 's/_/-/'); \
	  echo $$a $$t; \
	  sed "s/@DEB_TARGET_ARCH@/$$a/g;s/@DEB_TARGET_GNU_TYPE@/$$t/g" \
	    list.cross > list.$$a; \
	done
	touch build-indep-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f *-stamp
	rm -f config.cache config.log config.status
	rm -rf autom4te.cache
	for f in list.*; do \
	  case $$f in list|list.cross) continue; esac; \
	  rm -f $$f; \
	done
	rm -f essential-packages-list
	dh_clean

# Make it as clean as svn can make it.
svnclean: clean
	rm -rf `svn propget svn:ignore`

install-arch: build-arch
ifeq ($(src_name),build-essential)
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	$(MAKE) prefix=$(CURDIR)/debian/build-essential/usr install

	printf > debian/build-essential.substvars "build-essential=%s\n" \
		"`./list2depends $(DEB_HOST_ARCH) < list`"

	mkdir -p debian/build-essential/usr/share/doc/build-essential
	ln -sf	../../build-essential/list \
		../../build-essential/essential-packages-list \
		debian/build-essential/usr/share/doc/build-essential
endif

install-indep: build-indep
	set -e; \
	for a in $(cross_archs); do \
	  p=crossbuild-essential-$$a; \
	  $(MAKE) prefix=$(CURDIR)/debian/$$p/usr install; \
	  rm -f debian/$$p/usr/share/build-essential/essential-packages-list; \
	  rm -rf debian/$$p/usr/share/$$p; \
	  mv debian/$$p/usr/share/build-essential \
		debian/$$p/usr/share/$$p; \
	  printf > debian/$$p.substvars "cross-essential=%s\n" \
		"`./list2depends $$a < list.$$a`"; \
	  cp list.$$a debian/$$p/usr/share/$$p/list; \
	  mkdir -p debian/$$p/usr/share/doc/$$p; \
	  ln -sf ../../$$p/list debian/$$p/usr/share/doc/$$p; \
	done

binary-arch: build-arch install-arch
	dh_testdir
	dh_testroot
	dh_installdocs -a
	dh_installchangelogs -a
	dh_link -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary-indep: build-indep install-indep
	dh_testdir
	dh_testroot
ifneq (,$(cross_archs))
	dh_installdocs -i
	dh_installchangelogs -i
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i
endif

binary: binary-indep binary-arch
.PHONY: build-arch build-indep clean svnclean \
    binary-indep binary-arch binary install-arch install-indep