7
7
export QUILT_PATCHES := debian/patches
9
9
ROOT_DIR=$(shell pwd)
10
TMP_DIR=$(ROOT_DIR)/debian/tmp
10
MAN_DIR = $(ROOT_DIR)/debian/erlang-docs/usr/lib/erlang/man
12
12
export HOME := $(ROOT_DIR)/debian
14
14
-include ${ROOT_DIR}/erts/vsn.mk
15
15
-include ${ROOT_DIR}/lib/erl_interface/vsn.mk
16
-include ${ROOT_DIR}/lib/jinterface/vsn.mk
16
17
-include ${ROOT_DIR}/lib/ic/vsn.mk
17
18
-include ${ROOT_DIR}/lib/tools/vsn.mk
18
19
-include ${ROOT_DIR}/lib/webtool/vsn.mk
19
20
-include ${ROOT_DIR}/lib/common_test/vsn.mk
21
-include ${ROOT_DIR}/lib/snmp/vsn.mk
20
22
SOURCE_VERSION=$(shell dpkg-parsechangelog | sed -ne's!^Version: \(.*\)-.*!\1!p')
21
23
ABI_VERSION=$(shell cat debian/control | sed -ne's!^Provides: erlang-abi-\(.*\)!\1!p' | head -1)
22
24
HIPE_ARCHES=$(shell cat debian/control | grep '^Architecture:' | egrep -v '(all|any)' | sed -e 's/^Architecture: *//')
30
32
BINARY_TARGETS=binary-erlang-base
31
33
INSTALL_RULE=install-stnd-stamp
32
34
TMPINSTALL_DIR=debian/erlang-stnd
33
ERLANGBASE=erlang-base=erlang-base (= $${binary:Version})
35
ERLANGBASE=erlang-base (= $${binary:Version})
35
37
BINARY_TARGETS=binary-erlang-base binary-erlang-base-hipe
36
38
INSTALL_RULE=install-stnd-stamp install-hipe-stamp
37
39
TMPINSTALL_DIR=debian/erlang-hipe
38
ERLANGBASE=erlang-base=erlang-base (= $${binary:Version}) | erlang-base-hipe (= $${binary:Version})
40
ERLANGBASE=erlang-base (= $${binary:Version}) | erlang-base-hipe (= $${binary:Version})
42
ifneq ($(DEB_HOST_ARCH), hurd-i386)
41
48
USE_KERNEL_POLL := $(shell echo ${DEB_HOST_ARCH} | egrep -c "hurd" | sed -es/1/no/ -es/0/yes/)
114
124
for i in `find ${ROOT_DIR} -name 'config.sub~'` ; do \
115
125
mv $$i $${i%%\~} ; \
118
128
# Remove files, which were generated from templates
119
129
for i in debian/*.in debian/scripts/*.in ; do \
120
130
rm -f $${i%%.in} ; \
123
133
# *.install were also generated on-the-fly
124
134
rm -f debian/*.install
135
rm -f debian/erlang-doc.links
136
rm -f debian/erlang-doc.doc-base.erlang-erts
126
138
rm -f debian/AUTHORS
128
140
# Don't remove patch-stamp
131
143
automake: automake-stamp
132
144
automake-stamp: patch-stamp
135
147
# Return error if there are known nonfree docs in upstream tarball
136
148
# Return error if there are prebuilt binaries in upstream tarball
201
214
$(CLOCK_GETTIME_OPT) \
202
215
--enable-dynamic-ssl-lib \
216
--enable-ethread-pre-pentium4-compatibility \
217
--enable-shared-zlib \
203
218
--without-ssl-zlib
205
220
touch configure-hipe-stamp
207
222
configure-stnd: configure-stnd-stamp
208
223
configure-stnd-stamp: automake-stamp
211
226
echo "BUILDING STANDARD VERSION (BUILD_HIPE: $(BUILD_HIPE))"
213
228
[ ! -f Makefile ] || ${MAKE} clean
214
229
rm -f lib/dialyzer/SKIP
231
ERL_COMPILE_FLAGS="$(ERL_COMPILE_FLAGS)" \
216
232
CFLAGS="$(CFLAGS)" \
217
233
./configure --host=$(DEB_HOST_GNU_TYPE) \
218
234
--build=$(DEB_BUILD_GNU_TYPE) \
228
244
$(CLOCK_GETTIME_OPT) \
229
245
--enable-dynamic-ssl-lib \
246
--enable-ethread-pre-pentium4-compatibility \
247
--enable-shared-zlib \
230
248
--without-ssl-zlib
232
250
touch configure-stnd-stamp
234
252
define do-install
235
253
echo "*** do-install called for $(INSTALL_DIR)."
237
# Calls make install.
238
${MAKE} INSTALL_PREFIX=$(INSTALL_DIR) TYPE=$(TYPE) install
255
# Calls make install.
256
${MAKE} DESTDIR=$(INSTALL_DIR) TYPE=$(TYPE) install
240
# Replace ROOTDIR in "erl" and "start" scripts for real rootdir
241
# If there's no erl or start then it's better to fail than silently continue
258
# Replace ROOTDIR in "erl" and "start" scripts for real rootdir
259
# If there's no erl or start then it's better to fail than silently continue
242
260
for dir in $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin \
243
261
$(INSTALL_DIR)/usr/lib/erlang/bin; do \
244
262
for val in erl start; do \
249
# Correct ERL_ROOT in RELEASES file
267
# Correct ERL_ROOT in RELEASES file
250
268
sed 's!%ERL_ROOT%!/usr/lib/erlang!' \
251
269
$(INSTALL_DIR)/usr/lib/erlang/releases/RELEASES.src \
252
270
>$(INSTALL_DIR)/usr/lib/erlang/releases/RELEASES
254
# Get rid of windows cruft
255
-find $(INSTALL_DIR) -name *.bat -exec rm {} \;
258
-cp $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin/start_erl.src \
259
$(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin/start_erl
260
-chmod 755 $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin/start_erl
261
-chmod 755 $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin/*.src
262
-chmod 644 $(INSTALL_DIR)/usr/lib/erlang/bin/start.script
263
-chmod 644 $(INSTALL_DIR)/usr/lib/erlang/lib/wx-*/examples/*/*.beam
264
-chmod 644 $(INSTALL_DIR)/usr/lib/erlang/lib/wx-*/examples/*/*.xpm
266
# Remove useless ssl and crypto object files
267
-rm -rf $(INSTALL_DIR)/usr/lib/erlang/lib/crypto-*/priv/obj
268
-rm -rf $(INSTALL_DIR)/usr/lib/erlang/lib/ssl-*/priv/obj
270
# Remove some files which should be rather in erlang-doc-html package
271
-find $(INSTALL_DIR)/usr/lib/erlang/lib -name info -exec rm {} \;
272
-rm -rf $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/doc
274
# Remove useless Install and manpage formatting scripts
275
-rm -f $(INSTALL_DIR)/usr/lib/erlang/Install
276
-rm -rf $(INSTALL_DIR)/usr/lib/erlang/misc
278
# Remove dialyzer_init_plt from sources directory
279
-rm -f $(INSTALL_DIR)/usr/lib/erlang/lib/dialyzer-*/src/dialyzer_init_plt
281
# Fix run_test script in common_test application
282
(cd $(INSTALL_DIR)/usr/lib/erlang/lib/common_test-* && \
283
./install.sh $(INSTALL_DIR)/usr/lib/erlang/lib && \
284
sed -i -e 's:$(INSTALL_DIR)::g' priv/bin/run_test && \
285
rm install.sh priv/run_test.in)
272
# Get rid of windows cruft
273
find $(INSTALL_DIR) -name *.bat -exec rm -v {} \;
276
cp $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin/start_erl.src \
277
$(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin/start_erl
278
chmod 755 $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin/start_erl
279
chmod 755 $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/bin/*.src
280
chmod 644 $(INSTALL_DIR)/usr/lib/erlang/bin/start.script
281
chmod 644 $(INSTALL_DIR)/usr/lib/erlang/lib/wx-*/examples/*/*.beam
282
chmod 644 $(INSTALL_DIR)/usr/lib/erlang/lib/wx-*/examples/*/*.xpm
284
# Remove useless ssl and crypto object files
285
rm -rv $(INSTALL_DIR)/usr/lib/erlang/lib/crypto-*/priv/obj
286
rm -rv $(INSTALL_DIR)/usr/lib/erlang/lib/ssl-*/priv/obj
288
# Remove some files which should be rather in erlang-doc-html package
289
find $(INSTALL_DIR)/usr/lib/erlang/lib -name info -exec rm -v {} \;
290
rm -rv $(INSTALL_DIR)/usr/lib/erlang/erts-$(VSN)/doc
292
# Remove useless Install and manpage formatting scripts
293
rm -v $(INSTALL_DIR)/usr/lib/erlang/Install
294
rm -rv $(INSTALL_DIR)/usr/lib/erlang/misc
297
# manpages builds section 1 manual pages
298
manpages: manpages-stamp
299
manpages-stamp: $(INSTALL_RULE)
301
target=$$(basename $$(find make -type d |grep /)) ; \
302
PATH=$(ROOT_DIR)/bin:$$PATH ; \
303
for m in lib/snmp lib/dialyzer lib/erl_interface lib/common_test lib/webtool erts ; do \
304
make -C $$m/doc/src man ERL_TOP=$(ROOT_DIR) TARGET=$$target ; \
307
install -d $(MAN_DIR)/man1 $(MAN_DIR)/man3 ; \
308
install lib/dialyzer/doc/man3/*.3 $(MAN_DIR)/man3 ; \
309
for m in lib/snmp lib/erl_interface lib/common_test lib/webtool erts ; do \
310
install $$m/doc/man1/*.1 $(MAN_DIR)/man1 ; \
313
sh debian/scripts/fixmanpages $(MAN_DIR)
288
317
# CC_R_FLAG and LD_R_FLAG are empty because Debian doesn't recommend
289
318
# RPATH definition in binaries
290
319
# CC_R_OPT is used in percept
305
334
${MAKE} TYPE=$(TYPE) FLAVOR=smp GEN_OPT_FLGS="$(GEN_OPT_FLGS)" emulator
306
335
${MAKE} TYPE=$(TYPE) FLAVOR=plain GEN_OPT_FLGS="$(GEN_OPT_FLGS)" emulator
308
${MAKE} TYPE=$(TYPE) GEN_OPT_FLGS="$(GEN_OPT_FLGS)" CC_R_FLAG= LD_R_FLAG= CC_R_OPT=
337
${MAKE} TYPE=$(TYPE) GEN_OPT_FLGS="$(GEN_OPT_FLGS)"
309
338
touch build-stnd-stamp
311
bin/docb_gen: debian/scripts/docb_gen
313
install -D -m 755 $< $@
315
manpages: manpages-stamp
316
manpages-stamp: build-stnd-stamp bin/docb_gen
319
target=$$(basename $$(find make -type d |grep /)) ; \
320
PATH=$$pwd/bin:$$PATH ; \
321
for m in $$(find . -wholename '*/doc/src/Makefile') ; do \
322
(cd $$(dirname $$m) && make man ERL_TOP=$$pwd TARGET=$$target) || exit 1 ; \
341
docs-stamp: $(INSTALL_RULE)
343
PATH=$(ROOT_DIR)/bin:$$PATH $(MAKE) docs
344
$(MAKE) DESTDIR=$(ROOT_DIR)/debian/erlang-docs install-docs
346
sh debian/scripts/fixmanpages $(MAN_DIR)
348
(cd $(ROOT_DIR)/debian/erlang-docs/usr/lib/erlang/lib ; \
349
perl $(ROOT_DIR)/debian/scripts/genindex >index.html ; \
350
perl $(ROOT_DIR)/debian/scripts/genlinks $(VSN) >$(ROOT_DIR)/debian/erlang-doc.links)
327
353
install-hipe: install-hipe-stamp
328
install-hipe-stamp: INSTALL_DIR=$(shell pwd)/debian/erlang-hipe
354
install-hipe-stamp: INSTALL_DIR=$(ROOT_DIR)/debian/erlang-hipe
329
355
install-hipe-stamp: build-hipe-stamp
332
358
touch install-hipe-stamp
334
360
install-stnd: install-stnd-stamp
335
install-stnd-stamp: INSTALL_DIR=$(shell pwd)/debian/erlang-stnd
336
install-stnd-stamp: build-stnd-stamp manpages-stamp
361
install-stnd-stamp: INSTALL_DIR=$(ROOT_DIR)/debian/erlang-stnd
362
install-stnd-stamp: build-stnd-stamp
341
install -d -m 755 $(TMP_DIR)/usr/share/man
342
for m in $$(find . -wholename '*/doc/man?') ; do \
343
cp -r $$m $(TMP_DIR)/usr/share/man || exit 1 ; \
345
cp $(TMP_DIR)/usr/share/man/man3/dialyzer.3 $(TMP_DIR)/usr/share/man/man1/dialyzer.1
346
mv $(TMP_DIR)/usr/share/man/man1/start.1 $(TMP_DIR)/usr/share/man/man1/start_embedded.1
349
for f in $$(find $(TMP_DIR)/usr/share/man/man1 -type f) ; do \
350
sed -i -e's/, start_erl(1)//g' \
351
-e's/start(1)/start_embedded(1)/g' \
355
sed -i -e's/^\(\.TH .*\) 3 \(.*\) "Erlang Module Definition"/\1 1 \2 "User Commands"/' \
356
$(TMP_DIR)/usr/share/man/man1/dialyzer.1
358
sed -i -e's/^start \\-/start_embedded \\-/' \
359
-e's/^\.TH start 1/.TH start_embedded 1/' \
360
$(TMP_DIR)/usr/share/man/man1/start_embedded.1
362
for f in $$(find $(TMP_DIR)/usr/share/man -type f) ; do \
363
sed -i -e's/^\(\.TH .*\) 3 /\1 3erl /' \
364
-e's/\([^[:space:]]\)(3)/\1(3erl)/g' \
368
for f in $$(find $(TMP_DIR)/usr/share/man/man3 -type f) ; do \
371
365
touch install-stnd-stamp
373
# Very accurately place each installed file into the proper package
374
# See this script and the debian/patterns/*.patterns files for more informations.
375
build-arch: build-stamp
367
build: build-arch build-indep
368
build-arch: build-stamp manpages-stamp
376
369
build-indep: build-stamp
378
370
build-stamp: $(INSTALL_RULE)
384
376
-e's/@HIPE_ARCHES@/$(HIPE_ARCHES)/g' \
385
377
-e's/@ABI_VERSION@/$(ABI_VERSION)/g' \
386
378
-e's/@EI_VSN@/$(EI_VSN)/g' \
379
-e's/@JINTERFACE_VSN@/$(JINTERFACE_VSN)/g' \
387
380
-e's/@IC_VSN@/$(IC_VSN)/g' \
388
381
-e's/@WEBTOOL_VSN@/$(WEBTOOL_VSN)/g' \
389
382
-e's/@COMMON_TEST_VSN@/$(COMMON_TEST_VSN)/g' \
383
-e's/@SNMP_VSN@/$(SNMP_VSN)/g' \
390
384
-e's/@TOOLS_VSN@/$(TOOLS_VSN)/g' <$$i >$${i%%.in} ; \
386
sed -e's/@VERSION@/$(VSN)/g' <debian/in.erlang-doc.doc-base.erlang-erts \
387
>debian/erlang-doc.doc-base.erlang-erts
389
# Place each installed file into the proper package.
390
# See this script and the debian/patterns/* files for more informations.
392
391
sh debian/scripts/analyse $(TMPINSTALL_DIR)
394
393
# Add all author lists to debian/AUTHORS
475
469
dh_fixperms -a -Nerlang-base-hipe
476
470
dh_makeshlibs -a -Nerlang-base-hipe
477
471
dh_installdeb -a -Nerlang-base-hipe
478
ifneq ($(DEB_HOST_ARCH), hurd-i386)
479
echo 'procps:Depends=procps' >>debian/erlang-base.substvars
481
echo 'erlang-base=erlang-base | erlang-base-hipe' >>debian/erlang-nox.substvars
482
echo 'erlang-base=erlang-base | erlang-base-hipe' >>debian/erlang-x11.substvars
484
dev appmon asn1 common-test corba crypto debugger dialyzer \
485
docbuilder edoc erl-docgen et eunit gs ic inets inviso megaco \
486
mnesia observer odbc os-mon parsetools percept pman public-key \
487
reltool runtime-tools snmp ssh ssl syntax-tools test-server toolbar \
488
tools tv typer webtool wx xmerl ; do \
489
echo '$(ERLANGBASE)' >>debian/erlang-$$pkg.substvars ; \
491
472
dh_shlibdeps -a -Nerlang-base-hipe
492
grep-status -s Version -PX $(LIBSCTP) | \
493
sed -e's!^Version: \(.*\)-[^-]*!libsctp:Version=$(LIBSCTP) (>= \1)!' \
494
>> debian/erlang-base.substvars
495
dh_gencontrol -a -Nerlang-base-hipe
473
dh_gencontrol -perlang-base -- \
474
-Vprocps:Depends='$(PROCPS)' \
475
-Vlibsctp:Version='$(LIBSCTPDEP)'
476
dh_gencontrol -a -Nerlang-base -Nerlang-base-hipe -- \
477
-Verlang-base='$(ERLANGBASE)'
496
478
dh_md5sums -a -Nerlang-base-hipe
497
479
dh_builddeb -a -Nerlang-base-hipe
523
505
dh_fixperms -perlang-base-hipe
524
506
dh_makeshlibs -perlang-base-hipe
525
507
dh_installdeb -perlang-base-hipe
526
ifneq ($(DEB_HOST_ARCH), hurd-i386)
527
echo 'procps:Depends=procps' >>debian/erlang-base-hipe.substvars
529
508
dh_shlibdeps -perlang-base-hipe
530
grep-status -s Version -PX $(LIBSCTP) | \
531
sed -e's!^Version: \(.*\)-[^-]*!libsctp:Version=$(LIBSCTP) (>= \1)!' \
532
>> debian/erlang-base-hipe.substvars
533
dh_gencontrol -perlang-base-hipe
509
dh_gencontrol -perlang-base-hipe -- \
510
-Vprocps:Depends='$(PROCPS)' \
511
-Vlibsctp:Version='$(LIBSCTPDEP)'
534
512
dh_md5sums -perlang-base-hipe
535
513
dh_builddeb -perlang-base-hipe
538
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
540
515
binary: binary-indep binary-arch
546
521
CURDIR=`pwd` && TMPDIR=`mktemp -d /tmp/erlang.XXXXXX` && \