3 # This file was originally written by Vollstrecker
5 # Uncomment this to turn on verbose mode.
7 export DEB_BUILD_OPTIONS_PARALLEL
=3
9 # These are used for cross-compiling and for saving the configure script
10 # from having to guess our platform (since we know it already)
11 DEB_HOST_GNU_TYPE ?
= $(shell dpkg-architecture
-qDEB_HOST_GNU_TYPE
)
13 #Here are the packages that can't be compiled separate now
14 general_pkgs
= "amule-common"\
17 "amule-skin-mac-gray"\
18 "amule-skin-priscilla"\
22 # First, get the targets from commandline
23 flags
= ${MAKECMDGOALS}
25 #First we have to find out, if we are called from dpkg-buildpackage
27 ifeq ("binary", "$(findstring binary, $(flags))")
29 PLASMAMULE
= --enable-plasmamule
30 WXCAS
= --enable-wxcas
33 WEBSERVER
= --enable-webserver
34 REMOTEGUI
= --enable-amule-gui
35 DAEMON
= --enable-amule-daemon
38 AMULECMD
= --enable-amulecmd
39 DEBUGGING
= --enable-debug
--disable-optimize
--disable-profile
40 LANGFLAG
= --with-language
=all
42 else ifeq ("build", "$(findstring build, $(flags))")
44 PLASMAMULE
= --enable-plasmamule
45 WXCAS
= --enable-wxcas
48 WEBSERVER
= --enable-webserver
49 REMOTEGUI
= --enable-amule-gui
50 DAEMON
= --enable-amule-daemon
53 AMULECMD
= --enable-amulecmd
54 DEBUGGING
= --enable-debug
--disable-optimize
--disable-profile
55 LANGFLAG
= --with-language
=all
58 #Now we have to check what packages are build to configure only them
60 #We have to filter the right targets (wo_ means without)
61 wo_wxcas
= $(subst wxcas
,, ${flags})
62 wo_alcc
= $(subst alcc
,, ${flags})
63 wo_amule_utils_gui
= $(subst amule-utils-gui
,,${flags})
64 wo_all_other_amules
= $(subst amulecmd
,,$(subst amule-utils-gui
,,$(subst amule-utils
,,${flags})))
67 ifeq ("plasmamule", "$(findstring plasmamule, $(flags))")
68 PLASMAMULE
= --enable-plasmamule
71 ifeq ("wxcas", "$(findstring wxcas, $(flags))")
72 WXCAS
= --enable-wxcas
75 ifeq ("cas", "$(findstring cas, $(wo_wxcas))")
79 ifeq ("webserver", "$(findstring webserver, $(flags))")
80 WEBSERVER
= --enable-webserver
83 ifeq ("remotegui", "$(findstring remotegui, $(flags))")
84 REMOTEGUI
= --enable-amule-gui
87 ifeq ("daemon", "$(findstring daemon, $(flags))")
88 DAEMON
= --enable-amule-daemon
91 ifeq ("alcc", "$(findstring alcc, $(flags))")
95 ifeq ("alc", "$(findstring alc, $(wo_alcc))")
99 ifeq ("amulecmd", "$(findstring amulecmd, $(flags))")
100 AMULECMD
= --enable-amulecmd
103 ifneq ("amule", "$(findstring amule, $(wo_all_other_amules))")
104 AMULE
= --disable-monolithic
107 ifneq ("ed2k", "$(findstring ed2k, $(flags))")
108 ED2K
= --disable-ed2k
111 ifeq ("xas", "$(findstring xas, $(flags))")
115 #Now find out if a Metapackage should be build
116 ifeq ("amule-utils-gui", "$(findstring amule-utils-gui, $(flags))")
118 REMOTEGUI
= --enable-amule-gui
119 WXCAS
= --enable-wxcas
122 ifeq ("amule-utils", "$(findstring amule-utils, $(wo_amule_utils_gui))")
124 AMULECMD
= --enable-amulecmd
128 #Find this whole i18n stuff
129 ifneq ("i18n-en-only", "$(findstring i18n-en-only, $(flags))")
131 ifeq ("i18n-ar", "$(findstring i18n-ar, $(flags))")
132 LANGUAGE
:= $(LANGUAGE
),ar
135 ifeq ("i18n-ast", "$(findstring i18n-ast, $(flags))")
136 LANGUAGE
:= $(LANGUAGE
),ast
139 ifeq ("i18n-bg", "$(findstring i18n-bg, $(flags))")
140 LANGUAGE
:= $(LANGUAGE
),bg
143 ifeq ("i18n-ca", "$(findstring i18n-ca, $(flags))")
144 LANGUAGE
:= $(LANGUAGE
),ca
147 ifeq ("i18n-cs", "$(findstring i18n-cs, $(flags))")
148 LANGUAGE
:= $(LANGUAGE
),cs
151 ifeq ("i18n-da", "$(findstring i18n-da, $(flags))")
152 LANGUAGE
:= $(LANGUAGE
),da
155 ifeq ("i18n-de", "$(findstring i18n-de, $(flags))")
156 LANGUAGE
:= $(LANGUAGE
),de
159 ifeq ("i18n-el", "$(findstring i18n-el, $(flags))")
160 LANGUAGE
:= $(LANGUAGE
),el
163 ifeq ("i18n-es", "$(findstring i18n-es, $(flags))")
164 LANGUAGE
:= $(LANGUAGE
),es
167 ifeq ("i18n-et-ee", "$(findstring i18n-et-ee, $(flags))")
168 LANGUAGE
:= $(LANGUAGE
),et_EE
171 ifeq ("i18n-eu", "$(findstring i18n-eu, $(flags))")
172 LANGUAGE
:= $(LANGUAGE
),eu
175 ifeq ("i18n-fi", "$(findstring i18n-fi, $(flags))")
176 LANGUAGE
:= $(LANGUAGE
),fi
179 ifeq ("i18n-fr", "$(findstring i18n-fr, $(flags))")
180 LANGUAGE
:= $(LANGUAGE
),fr
183 ifeq ("i18n-gl", "$(findstring i18n-gl, $(flags))")
184 LANGUAGE
:= $(LANGUAGE
),gl
187 ifeq ("i18n-he", "$(findstring i18n-he, $(flags))")
188 LANGUAGE
:= $(LANGUAGE
),he
191 ifeq ("i18n-hr", "$(findstring i18n-hr, $(flags))")
192 LANGUAGE
:= $(LANGUAGE
),hr
195 ifeq ("i18n-hu", "$(findstring i18n-hu, $(flags))")
196 LANGUAGE
:= $(LANGUAGE
),hu
199 ifeq ("i18n-it", "$(findstring i18n-it, $(flags))")
200 LANGUAGE
:= $(LANGUAGE
),it
203 ifeq ("i18n-it-ch", "$(findstring i18n-it-ch, $(flags))")
204 LANGUAGE
:= $(LANGUAGE
),it_CH
207 ifeq ("i18n-ja", "$(findstring i18n-ja, $(flags))")
208 LANGUAGE
:= $(LANGUAGE
),ja
211 ifeq ("i18n-ko-kr", "$(findstring i18n-ko-kr, $(flags))")
212 LANGUAGE
:= $(LANGUAGE
),ko_KR
215 ifeq ("i18n-lt", "$(findstring i18n-lt, $(flags))")
216 LANGUAGE
:= $(LANGUAGE
),lt
219 ifeq ("i18n-nl", "$(findstring i18n-nl, $(flags))")
220 LANGUAGE
:= $(LANGUAGE
),hl
223 ifeq ("i18n-nn", "$(findstring i18n-nn, $(flags))")
224 LANGUAGE
:= $(LANGUAGE
),nn
227 ifeq ("i18n-pl", "$(findstring i18n-pl, $(flags))")
228 LANGUAGE
:= $(LANGUAGE
),pl
231 ifeq ("i18n-pt-br", "$(findstring i18n-pt-br, $(flags))")
232 LANGUAGE
:= $(LANGUAGE
),pt_BR
235 ifeq ("i18n-pt-pt", "$(findstring i18n-pt-pt, $(flags))")
236 LANGUAGE
:= $(LANGUAGE
),pt_PT
239 ifeq ("i18n-ru", "$(findstring i18n-ru, $(flags))")
240 LANGUAGE
:= $(LANGUAGE
),ru
243 ifeq ("i18n-sl", "$(findstring i18n-sl, $(flags))")
244 LANGUAGE
:= $(LANGUAGE
),sl
247 ifeq ("i18n-sq", "$(findstring i18n-sq, $(flags))")
248 LANGUAGE
:= $(LANGUAGE
),sq
251 ifeq ("i18n-sv", "$(findstring i18n-sv, $(flags))")
252 LANGUAGE
:= $(LANGUAGE
),sv
255 ifeq ("i18n-tr", "$(findstring i18n-tr, $(flags))")
256 LANGUAGE
:= $(LANGUAGE
),tr
259 ifeq ("i18n-uk", "$(findstring i18n-uk, $(flags))")
260 LANGUAGE
:= $(LANGUAGE
),uk
263 ifeq ("i18n-zh-cn", "$(findstring i18n-zh-cn, $(flags))")
264 LANGUAGE
:= $(LANGUAGE
),zh_CN
267 ifeq ("i18n-zh-tw", "$(findstring i18n-zh-tw, $(flags))")
268 LANGUAGE
:= $(LANGUAGE
),zh_TW
271 ifeq ($(LANGUAGE
),en_GB
)
277 LANGFLAG
= --with-language
=$(LANGUAGE
)
279 #And at Last, find out if we compile a debug-package or not.
280 ifeq ("dbg", "$(findstring dbg, $(flags))")
281 DEBUGGING
= --enable-debug
--disable-optimize
--disable-profile
283 DEBUGGING
= --disable-debug
--enable-optimize
--disable-profile
287 #Before we start, I want to introduce two sequences for building the packages
288 #I define two, so I can put the commands for the *-dbg packages between them
290 dh_testdir
-p
$(subst -stage1
,,$@
)
291 dh_testroot
-p
$(subst -stage1
,,$@
)
292 dh_installdirs
-p
$(subst -stage1
,,$@
)
293 dh_installchangelogs docs
/Changelog
-p
$(subst -stage1
,,$@
)
294 dh_installdocs
-p
$(subst -stage1
,,$@
)
295 dh_install
-Xlicense.txt
-p
$(subst -stage1
,,$@
)
296 dh_installmenu
-p
$(subst -stage1
,,$@
)
297 dh_installdebconf
-p
$(subst -stage1
,,$@
)
298 dh_installman
-p
$(subst -stage1
,,$@
)
299 dh_installmime
-p
$(subst -stage1
,,$@
)
300 dh_link
-p
$(subst -stage1
,,$@
)
301 dh_lintian
-p
$(subst -stage1
,,$@
)
306 dh_strip
-p
$(subst -dbg
,,$@
) --dbg-package
=$@
310 dh_compress
-X.pl
-p
$(subst -stage2
,,$@
)
311 dh_perl
-p
$(subst -stage2
,,$@
)
312 dh_makeshlibs
-p
$(subst -stage2
,,$@
)
313 dh_installdeb
-p
$(subst -stage2
,,$@
)
314 dh_shlibdeps
-p
$(subst -stage2
,,$@
)
315 dh_gencontrol
-p
$(subst -stage2
,,$@
)
316 dh_md5sums
-p
$(subst -stage2
,,$@
)
317 dh_fixperms
-p
$(subst -stage2
,,$@
)
318 dh_builddeb
-p
$(subst -stage2
,,$@
)
322 #Now we configure this whole thing
323 config.status
: configure
325 CFLAGS
="$(CFLAGS)" dh_auto_configure
-- --host
=$(DEB_HOST_GNU_TYPE
)\
326 LDFLAGS
="-Wl,--as-needed ${LDFLAGS}"\
344 #And here is the well known clean target
352 #Some generic targets to check the build process
355 build-stamp
: config.status
362 #Now we install the packages all together to the tmp-dir inside of debian/
369 #Now first build the packages that are compiled and installed on every build
370 amule-common
: install
372 for pkg in
$(general_pkgs
); do \
373 dh_testdir
-p
$$pkg; \
374 dh_testroot
-p
$$pkg; \
375 dh_installdirs
-p
$$pkg; \
376 dh_installchangelogs docs
/Changelog
-p
$$pkg; \
377 dh_installdocs
-p
$$pkg; \
378 dh_install
-Xlicense.txt
-p
$$pkg; \
379 dh_installmenu
-p
$$pkg; \
380 dh_installdebconf
-p
$$pkg; \
381 dh_installman
-p
$$pkg; \
383 dh_lintian
-p
$$pkg; \
384 dh_compress
-X.pl
-p
$$pkg; \
386 dh_makeshlibs
-p
$$pkg; \
387 dh_installdeb
-p
$$pkg; \
388 dh_shlibdeps
-p
$$pkg; \
389 dh_gencontrol
-p
$$pkg; \
390 dh_md5sums
-p
$$pkg; \
391 dh_fixperms
-p
$$pkg; \
392 dh_builddeb
-p
$$pkg; \
396 %-stage1
: amule-common
402 amule-
%-dbg
: amule-
%-stage1
407 amule-dbg
: amule-stage1
412 amuleweb-dbg
: amuleweb-stage1
417 #Now just the targets to map the Commandline Name to the package names
421 ed2k
: amule-ed2k-stage2
424 cas
: amule-cas-stage2
427 wxcas
: amule-wxcas-stage2
430 webserver
: amuleweb-stage2 amule-theme-default-stage2
433 remotegui
: amule-remote-gui-stage2
436 daemon
: amule-daemon-stage2
439 alc
: amule-alc-stage2
442 alcc
: amule-alcc-stage2
445 amulecmd
: amule-cmd-stage2
448 xas
: amule-xas-stage2
451 ed2k-dbg
: amule-ed2k-dbg
454 cas-dbg
: amule-cas-dbg
457 wxcas-dbg
: amule-wxcas-dbg
460 webserver-dbg
: amuleweb-dbg
463 remotegui-dbg
: amule-remote-gui-dbg
466 daemon-dbg
: amule-daemon-dbg
469 alc-dbg
: amule-alc-dbg
472 alcc-dbg
: amule-alcc-dbg
475 amulecmd-dbg
: amule-cmd-dbg
478 plasmamule
: amule-plasmamule-stage2
481 plasmamule-dbg
: amule-plasmamule-dbg
484 #Here come the Targets for the langauge packages
485 i18n-
%: amule-i18n-
% ;
487 amule-i18n-
%: amule-common
491 #They are just metapackages
492 amule-utils
: alcc amulecmd cas
496 amule-utils-gui
: alc remotegui wxcas
500 #These are empty (Space after Semicolon)
501 debug-packages
: amule-dbg ed2k-dbg cas-dbg wxcas-dbg webserver-dbg remotegui-dbg daemon-dbg alc-dbg alcc-dbg amulecmd-dbg plasmamule-dbg
;
502 normal-packages
: amule-utils amule-utils-gui amule ed2k webserver daemon xas plasmamule
;
503 language-packages
: i18n-ar i18n-ast i18n-bg i18n-ca i18n-cs i18n-da i18n-de i18n-el i18n-en-gb i18n-es i18n-et-ee i18n-eu i18n-fi i18n-fr i18n-gl i18n-he i18n-hr i18n-hu i18n-it-ch i18n-it i18n-ja i18n-ko-kr i18n-lt i18n-nn i18n-nl i18n-pl i18n-pt-br i18n-pt-pt i18n-ru i18n-sl i18n-sq i18n-sv i18n-tr i18n-uk i18n-zh-cn i18n-zh-tw
;
506 #If we build from a svn checkout, we need to generate configure
510 #Now the targets for dpkg-buildpackage
511 binary-indep
: build
install
513 binary-arch
: debug-packages normal-packages language-packages
515 binary
: binary-indep binary-arch
518 cat README.Debian-Packages
521 .PHONY
: build
clean binary-indep binary-arch binary
install debug-packages normal-packages i18n-only language-packages