File: rules

package info (click to toggle)
sdcc 3.5.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 59,964 kB
  • ctags: 66,696
  • sloc: ansic: 422,129; cpp: 49,032; makefile: 46,849; sh: 28,496; perl: 12,125; asm: 11,748; yacc: 6,698; lisp: 1,630; lex: 747; python: 660; awk: 495; sed: 89
file content (171 lines) | stat: -rwxr-xr-x 5,436 bytes parent folder | download
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#!/usr/bin/make -f

export DH_VERBOSE=1

export DEB_BUILD_MAINT_OPTIONS := hardening=+pie,+bindnow
export CPPFLAGS=$(shell dpkg-buildflags --get CPPFLAGS)
export CFLAGS=$(shell dpkg-buildflags --get CFLAGS)
export CXXFLAGS=$(shell dpkg-buildflags --get CXXFLAGS)
export LDFLAGS=$(shell dpkg-buildflags --get LDFLAGS)

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
	NJOBS := -j $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
endif

export HOME=$(CURDIR)/build

ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -g -O0
	export STRIP=true
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

clean:
	dh_testdir
	dh_testroot
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -rf $(CURDIR)/build
	rm -f support/sdbinutils/binutils/arlex.c
	rm -f support/sdbinutils/binutils/arparse.c
	rm -f support/sdbinutils/binutils/arparse.h
	rm -f sim/ucsim/config.sub sim/ucsim/config.guess
	rm -f config.log sim/ucsim/config.log
	rm -f confdefs.h
	rm -f install-arch install-indep
	dh_autotools-dev_restoreconfig
	dh_clean

configure: configure-stamp
configure-stamp:
	dh_testdir
	mkdir -p $(CURDIR)/build
	touch sim/ucsim/config.guess sim/ucsim/config.sub
	dh_autotools-dev_updateconfig
	CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" \
	./configure \
		--host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--disable-non-free \
		--disable-pic14-port \
		--disable-pic16-port \
		--prefix=/usr
	touch $@

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

build-indep: build-indep-stamp
build-indep-stamp: configure-stamp
	dh_testdir
	cd doc && lyx -e ps sdccman.lyx
	touch $@

install: install-arch install-indep
install-indep: build
	dh_testdir
	dh_testroot
	dh_installdirs 
	dh_prep
	$(MAKE) install prefix=$(CURDIR)/debian/tmp/usr
	mkdir -p debian/tmp/usr/share/doc/sdcc-doc
	install -o root -g root -m 644 doc/sdccman.ps debian/tmp/usr/share/doc/sdcc-doc
	mv debian/tmp/usr/share/doc/sdcc/* debian/tmp/usr/share/doc/sdcc-doc/
	rm -f debian/tmp/usr/share/doc/sdcc-doc/z80/combined_i186_z80_design.tex
	rm -f debian/tmp/usr/share/doc/sdcc-doc/z80/Makefile
	#Remove extra license file
	rm -f $(CURDIR)/debian/tmp/usr/share/sdcc/lib/src/pic16/COPYING
	# Remove empty dirs:
	find $(CURDIR)/debian/tmp -type d -empty -delete

	#Clean up unnecessary directories
	rm -rf `find $(CURDIR)/debian/tmp -type d -name .deps`

	dh_install -i --sourcedir=debian/tmp --list-missing

	# Install examples
	cp -a device/examples $(CURDIR)/debian/sdcc-doc/usr/share/doc/sdcc-doc
	rm -f $(CURDIR)/debian/sdcc-doc/usr/share/doc/sdcc-doc/examples/mcs51/simple*/go*
	rm -f debian/sdcc-libraries/usr/share/sdcc/lib/src/pic14/GPL
	rm -f debian/sdcc-libraries/usr/share/sdcc/lib/src/pic14/LGPL

	touch $@

install-arch: build-arch
	dh_testdir
	dh_testroot
	dh_installdirs 
	dh_prep
	$(MAKE) install prefix=$(CURDIR)/debian/tmp/usr
	rm -f $(CURDIR)/debian/tmp/usr/bin/sdld6808
	cd $(CURDIR)/debian/tmp/usr/bin/ && ln -s sdld sdld6808
	rm -f $(CURDIR)/debian/tmp/usr/bin/sdldz80
	cd $(CURDIR)/debian/tmp/usr/bin/ && ln -s sdld sdldz80
	rm -f $(CURDIR)/debian/tmp/usr/bin/sdldgb
	cd $(CURDIR)/debian/tmp/usr/bin/ && ln -s sdld sdldgb

	# Remove empty dirs:
	find $(CURDIR)/debian/tmp -type d -empty -delete

	#Clean up unnecessary directories
	rm -rf `find $(CURDIR)/debian/tmp -type d -name .deps`
	# Add some scripts
	mkdir -p debian/tmp/usr/share/sdcc/scripts
	install -o root -g root -m 755  support/scripts/*.pl debian/tmp/usr/share/sdcc/scripts
	install -o root -g root -m 755  support/scripts/*.py debian/tmp/usr/share/sdcc/scripts
	# Remove an unnecessary script 
	rm -f debian/tmp/usr/share/sdcc/scripts/gen_known_bugs.pl
	dh_install -a --sourcedir=debian/tmp --list-missing

	touch $@

# Must not depend on anything. This is to be called by binary-arch/binary-indep
# in another 'make' thread.
binary-common:
	dh_testdir
	dh_testroot
	dh_installchangelogs ChangeLog
	dh_installdocs
	dh_installman
	#dh_installexamples -psdcc-doc device/examples/* -X\.bat  
	dh_installemacsen
	dh_link
	dh_lintian
	dh_strip -Xusr/share/sdcc/lib/
	dh_compress --exclude=.c --exclude=.h --exclude=.cpp
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

# Build architecture-independent files here.
binary-indep: install-indep
	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common

# Build architecture-dependent files here.
binary-arch: install-arch
	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common

get-orig-source:
	VER=$(shell dpkg-parsechangelog | sed -rne 's,^Version: ([^-+~]+).*,\1,p'); \
	uscan --force-download --rename --download-version=$$VER --destdir=. && (\
	tar -xj --exclude device/non-free --exclude sim/ucsim/libltdl -f sdcc_$$VER.orig.tar.bz2 ; \
	mv sdcc-$$VER sdcc-$$VER+dfsg;\
	tar -czf sdcc_$$VER+dfsg.orig.tar.gz sdcc-$$VER+dfsg; \
	rm -rf sdcc-$$VER+dfsg ;\
	rm -f sdcc_$$VER.orig.tar.bz2);

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