File: rules

package info (click to toggle)
mono 1.2.2.1-1etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 142,720 kB
  • ctags: 256,408
  • sloc: cs: 1,495,736; ansic: 249,442; sh: 18,327; xml: 12,463; makefile: 5,046; perl: 1,248; asm: 635; yacc: 285; sql: 7
file content (268 lines) | stat: -rwxr-xr-x 13,089 bytes parent folder | download | duplicates (2)
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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
#!/usr/bin/make -f

#export DH_VERBOSE=1
export MONO_SHARED_DIR=$(CURDIR)

MONO_API = 1.2.2

VERSION = $(shell dpkg-parsechangelog | grep ^Vers | cut -d\  -f2)
UPVERSION = $(shell echo $(VERSION) | sed 's,-.*,,')
NEXT_UPVERSION = $(shell perl -e '$$_=pop; s/(\d+)$$/$$1+1/e; print' $(UPVERSION))

RUN_MONO = LD_LIBRARY_PATH=debian/tmp/usr/lib MONO_PATH=debian/tmp/usr/lib/mono/1.0:debian/tmp/usr/lib/mono/2.0 debian/tmp/usr/bin/mono

DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE  := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)

ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
	confflags += --build $(DEB_HOST_GNU_TYPE)
else
	confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif

ifeq ($(DEB_BUILD_ARCH), amd64)
	confflags += --with-tls=__thread
else
	confflags += --with-tls=pthread
endif

ifeq ($(DEB_BUILD_ARCH_OS), kfreebsd)
	confflags += --enable-minimal=aot
endif

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
endif

# Include dpatch stuff.
include /usr/share/dpatch/dpatch.make

cli-wrapper: debian/cli-wrapper.c
	$(CC) -o cli-wrapper debian/cli-wrapper.c `pkg-config glib-2.0 --cflags --libs`

build: patch build-stamp
build-stamp: cli-wrapper
	dh_testdir
	CFLAGS=$(CFLAGS) ./configure $(confflags) --prefix=/usr \
	  --mandir=\$${prefix}/share/man \
	  --infodir=\$${prefix}/share/info --sysconfdir=/etc \
	  --with-sigaltstack=no $(GC) \
	  --with-jit=yes --with-ikvm-native=no --with-preview=yes \
	  --with-libgdiplus=installed --with-x=yes
	LC_ALL=C $(MAKE) EXTERNAL_MCS=false EXTERNAL_MONO=false
	chmod +x debian/dh_makeclilibs debian/dh_clideps
	touch build-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	rm -f build-stamp
	rm -f install-stamp
	-$(MAKE) distclean
	# distclean misses stuff
	find -name "*.mdb" | xargs rm -f
	-cd debian/detector && $(MAKE) clean
	rm -f cli-wrapper debian/MonoGetAssemblyName.exe
	rm -rf $(MONO_SHARED_DIR)/.wapi
	dh_clean

install: build install-stamp
install-stamp:
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs
	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
	# Build the late-GAC tool
	$(RUN_MONO) mcs/class/lib/default/mcs.exe /t:exe \
	  /out:debian/MonoGetAssemblyName.exe \
	  debian/MonoGetAssemblyName.cs
	# we do not want nunit, it's a forked version
	rm -f debian/tmp/usr/lib/pkgconfig/mono-nunit.pc
	rm -f debian/tmp/usr/lib/mono/1.0/nunit*
	rm -f debian/tmp/usr/lib/mono/2.0/nunit*
	rm -rf  debian/tmp/usr/lib/mono/gac/nunit*
	rm -f debian/tmp/usr/bin/nunit*
	# neither prj2make
	rm -f debian/tmp/usr/bin/prj2make
	rm -f debian/usr/share/man/man1/prj2make.1
	rm -f debian/tmp/usr/lib/mono/1.0/prj2make.exe*
	# upstream forgot to remove this one
	rm -f debian/tmp/usr/bin/mbas
	install -D -m 755 cli-wrapper debian/mono-common/usr/bin/cli-wrapper
	cd debian/detector && \
	  $(MAKE) && \
	  install -D -m 755 binfmt-detector-cli $(CURDIR)/debian/mono-common/usr/lib/cli/binfmt-detector-cli
	install -o root -g root -m 644 debian/cli.binfmt \
	  debian/mono-common/usr/share/binfmts/cli
	# CLI Policy
	cd debian && find -type f -name "*.dll" -or -name "*.mdb" -or -name "*.cs" | xargs chmod -x
	cd debian && find -type f -name "*.exe" | xargs chmod +x
	# Late GAC
	install -D -m 755 debian/mono.runtime-script debian/tmp/usr/share/cli-common/runtimes.d/mono
	touch install-stamp

binary-indep: build install
	dh_testdir -i
	dh_testroot -i
	# that exclude list are programs for arch-dep packages
	dh_install -i -Xbin/monodiet -Xbin/monodis -Xbin/monograph -Xbin/mono-find-provides -Xbin/mono-find-requires -Xbin/pedump -Xbin/jay
	# delete bin/mono from mono-mcs, no way to exclude it with dh_install,
        # without exluding other things too which I do not want
	rm -f debian/mono-mcs/usr/bin/mono
	install -m 644 debian/Mono.Cairo.dll.config debian/libmono-cairo1.0-cil/usr/lib/mono/gac/Mono.Cairo/1.0.*/
	install -m 644 debian/Mono.Cairo.dll.config debian/libmono-cairo2.0-cil/usr/lib/mono/gac/Mono.Cairo/2.0.*/
	install -m 644 debian/Mono.Data.SqliteClient.dll.config debian/libmono-sqlite1.0-cil/usr/lib/mono/gac/Mono.Data.SqliteClient/1.0.*/
	install -m 644 debian/Mono.Data.SqliteClient.dll.config debian/libmono-sqlite2.0-cil/usr/lib/mono/gac/Mono.Data.SqliteClient/2.0.*/
	install -m 644 debian/System.Windows.Forms.dll.config debian/libmono-winforms1.0-cil/usr/lib/mono/gac/System.Windows.Forms/1.0.*/
	install -m 644 debian/System.Windows.Forms.dll.config debian/libmono-winforms2.0-cil/usr/lib/mono/gac/System.Windows.Forms/2.0.*/
	install -m 644 debian/FirebirdSql.Data.Firebird.dll.config debian/libmono-firebirdsql1.7-cil/usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/
	# delete gacutil from mono-mcs (this is already in mono-gac)
	rm debian/mono-mcs/usr/bin/gacutil
	rm debian/mono-mcs/usr/lib/mono/1.0/gacutil.exe*
	# delete mjs from mono-mcs (this is already in mono-mjs)
	rm debian/mono-mcs/usr/bin/mjs
	rm debian/mono-mcs/usr/lib/mono/1.0/mjs.exe*
	# delete wsdl2 from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/wsdl2
	# delete gmcs from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/gmcs
	# delete monop2 from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/monop2
	# delete ilasm2 from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/ilasm2
	# delete resgen2 from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/resgen2
	# delete mono-service2 from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/mono-service2
	# delete xbuild from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/xbuild
	# delete mkbundle2 from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/mkbundle2
	# delete sgen from mono-mcs (this is already in mono-gmcs)
	rm debian/mono-mcs/usr/bin/sgen
	# delete Mono.Data.Tds from libmono1.0/2.0-cil (those are already in libmono-data-tds*-cil)
	rm -r debian/libmono1.0-cil/usr/lib/mono/gac/Mono.Data.Tds/
	rm -r debian/libmono2.0-cil/usr/lib/mono/gac/Mono.Data.Tds/
	rm debian/libmono1.0-cil/usr/lib/mono/1.0/Mono.Data.Tds.dll
	rm debian/libmono2.0-cil/usr/lib/mono/2.0/Mono.Data.Tds.dll
	# delete Mono.Data.SqliteClient from libmono1.0/2.0-cil (those are already in libmono-sqlite*-cil)
	rm -r debian/libmono1.0-cil/usr/lib/mono/gac/Mono.Data.SqliteClient/
	rm -r debian/libmono2.0-cil/usr/lib/mono/gac/Mono.Data.SqliteClient/
	rm debian/libmono1.0-cil/usr/lib/mono/1.0/Mono.Data.SqliteClient.dll
	rm debian/libmono2.0-cil/usr/lib/mono/2.0/Mono.Data.SqliteClient.dll
	# delete Mono.Cairo from libmono1.0/2.0-cil (those are already in libmono-cairo*-cil)
	rm -r debian/libmono1.0-cil/usr/lib/mono/gac/Mono.Cairo/
	rm -r debian/libmono2.0-cil/usr/lib/mono/gac/Mono.Cairo/
	rm debian/libmono1.0-cil/usr/lib/mono/1.0/Mono.Cairo.dll
	rm debian/libmono2.0-cil/usr/lib/mono/2.0/Mono.Cairo.dll
	# delete Mono.Security from libmono1.0/2.0-cil (those are already in libmono-security*-cil)
	rm -r debian/libmono1.0-cil/usr/lib/mono/gac/Mono.Security/
	rm -r debian/libmono2.0-cil/usr/lib/mono/gac/Mono.Security/
	rm debian/libmono1.0-cil/usr/lib/mono/1.0/Mono.Security.dll
	rm debian/libmono2.0-cil/usr/lib/mono/2.0/Mono.Security.dll
	# delete Mono.C5 from libmono1.0/-cil (those are already in libmono-c5-1.0--cil)
	rm -r debian/libmono1.0-cil/usr/lib/mono/gac/Mono.C5/
	rm debian/libmono2.0-cil/usr/lib/mono/2.0/Mono.C5.dll
	# delete System.Windows.Forms from libmono-system1.0/2.0-cil (those are already in libmono-winforms*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Windows.Forms/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Windows.Forms/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Windows.Forms.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Windows.Forms.dll
	# delete System.Drawing.Design from libmono-system1.0/2.0-cil (those are already in libmono-winforms*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Drawing.Design/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Drawing.Design/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Drawing.Design.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Drawing.Design.dll
	# delete System.Design from libmono-system1.0/2.0-cil (those are already in libmono-winforms*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Design/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Design/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Design.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Design.dll
	# delete System.Data.OracleClient from libmono-system1.0/2.0-cil (those are already in libmono-oracle*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Data.OracleClient/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Data.OracleClient/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Data.OracleClient.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Data.OracleClient.dll
	# delete System.DirectoryServices from libmono-system1.0/2.0-cil (those are already in libmono-system-ldap*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.DirectoryServices/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.DirectoryServices/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.DirectoryServices.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.DirectoryServices.dll
	# delete System.Data from libmono-system1.0/2.0-cil (those are already in libmono-system-data*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Data/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Data/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Data.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Data.dll
	# delete System.Web from libmono-system1.0/2.0-cil (those are already in libmono-system-web*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Web/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Web/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Web.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Web.dll
	# delete System.Web.Services from libmono-system1.0/2.0-cil (those are already in libmono-system-web*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Web.Services/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Web.Services/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Web.Services.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Web.Services.dll
	# delete System.Runtime from libmono-system1.0/2.0-cil (those are already in libmono-system-runtime*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Runtime.*/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Runtime.*/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Runtime.*.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Runtime.*.dll
	# delete System.Messaging from libmono-system1.0/2.0-cil (those are already in libmono-system-messaging*-cil)
	rm -r debian/libmono-system1.0-cil/usr/lib/mono/gac/System.Messaging/
	rm -r debian/libmono-system2.0-cil/usr/lib/mono/gac/System.Messaging/
	rm debian/libmono-system1.0-cil/usr/lib/mono/1.0/System.Messaging.dll
	rm debian/libmono-system2.0-cil/usr/lib/mono/2.0/System.Messaging.dll
	dh_link -i
	dh_installchangelogs -i
	dh_installdocs -i
	dh_installman -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	#DH_VERBOSE=1 DH_AUTOSCRIPTDIR=$(CURDIR)/debian debian/dh_monoaot -i
	debian/dh_makeclilibs -i -m 1.0 internal-mono
	# APIs that grow need tighter deps
	debian/dh_makeclilibs \
	  -plibmono-corlib2.0-cil \
	  -plibmono-system2.0-cil \
	  -plibmono-microsoft8.0-cil \
	  -plibmono-winforms1.0-cil \
	  -plibmono-winforms2.0-cil \
	  -plibmono1.0-cil \
	  -plibmono2.0-cil \
	  -m $(MONO_API) internal-mono
	debian/dh_clideps -i internal-mono -l debian/tmp
	#DH_VERBOSE=1 debian/dh_clideps -i internal-mono -l debian/tmp
	# mono-gac needs special runtime dep, to prevent circular dep (mono-runtime <-> mono-gac)
	debian/dh_clideps -pmono-gac -r internal-mono
	dh_gencontrol -i -- -Vmono:upversion=$(UPVERSION) -Vmono:next-upversion=$(NEXT_UPVERSION)
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build install
	dh_testdir -s
	dh_testroot -s
	dh_install -s
	dh_link -s
	dh_installchangelogs -s
	dh_installchangelogs -pmono-jay $(CURDIR)/mcs/jay/ChangeLog
	dh_installdocs -s
	dh_installman -s
	dh_installexamples -s
	dh_installexamples -pmono-jay $(CURDIR)/mcs/jay/skeleton.cs
	dh_strip -s
	dh_compress -s -Xskeleton.cs
	dh_fixperms -s
	dh_makeshlibs -plibmono0 -V 'libmono0 (>= $(MONO_API))'
	dh_installdeb -s
	dh_shlibdeps -s -Xlibmono-profiler-cov -ldebian/libmono0/usr/lib
	dh_gencontrol -s -- -Vmono:upversion=$(UPVERSION) -Vmono:next-upversion=$(NEXT_UPVERSION)
	dh_md5sums -s
	dh_builddeb -s

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