File: rules

package info (click to toggle)
sdcc 3.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 34,196 kB
  • sloc: ansic: 260,392; cpp: 38,109; sh: 13,121; asm: 5,978; makefile: 5,891; yacc: 2,980; lisp: 1,524; perl: 929; python: 646; awk: 495; lex: 455
file content (178 lines) | stat: -rwxr-xr-x 5,337 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
172
173
174
175
176
177
178
#!/usr/bin/make -f

export DH_VERBOSE=1

# 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)

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
	# Clean up files that Makefile should have cleaned
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -f device/lib/pic14/config.h
	rm -f device/lib/pic14/config.log
	rm -f device/lib/pic14/stamp-h1
	rm -f device/lib/r2k/*.asm
	rm -f device/lib/z180/*.asm
	rm -f sim/ucsim/cmd.src/cmdlex.cc
	rm -f sim/ucsim/cmd.src/cmdpars.cc
	rm -f src/pic14/Makefile.dep
	rm -f src/pic14/peeph.rul
	rm -rf $(CURDIR)/build
	rm -f custom.h
	rm -f sim/ucsim/custom.h
	rm -f support/regression/ports/host/spec.mk
	rm -f support/cpp/configargs.h,.log
	rm -f support/cpp/config.log
	rm -f support/cpp/config.status
	rm -f sim/ucsim/config.guess
	rm -f sim/ucsim/config.sub
	rm -f sim/ucsim/config.log
	rm -f config.log
	rm -f device/lib/small-stack-auto/Makefile
	rm -f as/link/asxxxx_config.h
	rm -f support/cpp/configargs.h
	rm -f ports.all ports.build
	rm -f confdefs.h
	find -type f -name '*.o' -exec rm -f {} \;
	find -type f -name '.stamp' -exec rm -f {} \;
	find . -name '*.rel' -exec rm -f {} \;
	find . -name '*.sym' -exec rm -f {} \;
	find . -name '*.lst' -exec rm -f {} \;
	find . -name '*.a' -exec rm -f {} \;
	find . -name config.status -exec rm -f {} \;
	find . -name Makefile -exec rm -f {} \;
	rm -f sim/ucsim/cmd.src/cmdpars.hh
	# Clean up the Debian specific files
	rm -f config.status doc/sdccman.ps
	rm -f *-stamp
	rm -f install-indep install-arch
	dh_clean

configure: configure-stamp
configure-stamp:
	dh_testdir
	mkdir -p $(CURDIR)/build
	cp /usr/share/misc/config.sub sim/ucsim/config.sub
	cp /usr/share/misc/config.guess sim/ucsim/config.guess
	./configure \
		--host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--prefix=/usr
	touch $@

build: build-arch build-indep
build-arch: build-arch-stamp
build-arch-stamp: configure-stamp 
	dh_testdir
	$(MAKE)
	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

	# 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*
	touch $@

install-arch: build-arch
	dh_testdir
	dh_testroot
	dh_installdirs 
	dh_prep
	$(MAKE) install prefix=$(CURDIR)/debian/tmp/usr
	# Add some scripts
	mkdir -p debian/tmp/usr/share/sdcc/scripts
	install -o root -g root -m 755  support/scripts/inc2h-pic16.pl debian/tmp/usr/share/sdcc/scripts
	install -o root -g root -m 755  support/scripts/inc2h.pl       debian/tmp/usr/share/sdcc/scripts
	install -o root -g root -m 755  support/scripts/keil2sdcc.pl   debian/tmp/usr/share/sdcc/scripts

	# 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 -a --sourcedir=debian/tmp

	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 
	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 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