chiark / gitweb /
Disable all exported shell functions
[bash.git] / debian / rules
1 #! /usr/bin/make -f
2 # -*- makefile -*-
3
4 #export DH_VERBOSE=1
5
6 unexport LANG LC_ALL LC_CTYPE LC_COLLATE LC_TIME LC_NUMERIC LC_MESSAGES
7
8 # architecture dependent variables
9 DEB_BUILD_GNU_TYPE      := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
10 DEB_HOST_ARCH           := $(shell dpkg-architecture -qDEB_HOST_ARCH)
11 DEB_HOST_ARCH_OS        := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
12 DEB_HOST_GNU_CPU        := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
13 DEB_HOST_GNU_SYSTEM     := $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
14 DEB_HOST_GNU_TYPE       := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
15
16 VERSION         := 4.1
17 #PKGVERSION     := $(shell dpkg-parsechangelog \
18 #                       | sed -n '/Version:/s/\(.* \)\(.*\)-2\(.*\)/\2\3/p')
19 #PKGVERSION     := 3.0
20 #dpkg_ctrl_args := -v$(PKGVERSION) -VBinary-Version=$(PKGVERSION)
21
22
23 with_gfdl       = no
24
25 CC      = gcc
26 CFLAGS  = -g -O2 -Wall
27 SHELL   = /bin/bash
28 YACC    = bison -y
29
30 IX      = install -o 0 -g 0
31 ID      = install -o 0 -g 0 -m 644
32
33 # built with installed libreadline?
34 with_installed_rl = no
35
36 debflags =
37
38 p       = bash
39 p_stat  = bash-static
40 p_bins  = bash-builtins
41 p_doc   = bash-doc
42 p_bdb   = bashdb
43
44 d       = debian/$(p)
45 d_stat  = debian/$(p_stat)
46 d_bins  = debian/$(p_bins)
47 d_doc   = debian/$(p_doc)
48 d_bdb   = debian/$(p_bdb)
49
50 conf_args = \
51         --with-curses \
52         --enable-largefile \
53         --prefix=/usr \
54         --infodir=/usr/share/info \
55         --mandir=/usr/share/man
56 ifeq ($(with_installed_rl),yes)
57     conf_args += --with-installed-readline
58 endif
59
60 static_conf_args := $(conf_args) \
61         --enable-static-link \
62         --without-bash-malloc \
63         --host=$(DEB_HOST_GNU_TYPE)
64
65 conf_args += --host=$(DEB_HOST_GNU_TYPE)
66
67 #build: bash-build static-build preinst-build all-bashdb-build check
68 build: before-build bash-build static-build preinst-build check
69
70 before-build:
71         : # see #327477, needed to have HAVE_DEV_STDIN defined
72         (test -d /dev/fd && test -r /dev/stdin < /dev/null) \
73           || (test -d /proc/self/fd && test -r /dev/stdin < /dev/null)
74 ifneq (,$(findstring $(DEB_HOST_ARCH_OS), linux freebsd))
75         $(CC) $(CFLAGS) -o clear_console debian/clear_console.c -lncurses
76 endif
77
78 # ---------------------------------------------------------------------------
79 # build standard bash
80
81 bash-build:
82         $(MAKE) -f debian/rules do-build-bash \
83             bash_src=bash \
84             bash_patches="$(debian_patches)" \
85             build=bash \
86             configure_args="$(conf_args)"
87 bash-configure:
88         $(MAKE) -f debian/rules do-configure-bash \
89             bash_src=bash \
90             bash_patches="$(debian_patches)" \
91             build=bash \
92             configure_args="$(conf_args)"
93
94 # ---------------------------------------------------------------------------
95 # build static bash
96
97 static-build:
98         $(MAKE) -f debian/rules do-build-static \
99             bash_src=bash \
100             bash_patches="$(debian_patches)" \
101             build=static \
102             configure_args="$(static_conf_args)"
103 static-configure:
104         $(MAKE) -f debian/rules do-configure-static \
105             bash_src=bash \
106             bash_patches="$(debian_patches)" \
107             build=static \
108             configure_args="$(static_conf_args)"
109
110 # ---------------------------------------------------------------------------
111 # build standard bash
112
113 all-bashdb-build: bashdb-build #bashdb-doc-build
114
115 bashdb-build:
116         DEBUGGER_START_FILE=/usr/share/bashdb/dbg-main.inc \
117         $(MAKE) -f debian/rules do-build-bashdb \
118             bash_src=bashdb \
119             bash_patches="$(bashdb_patches)" \
120             build=bashdb \
121             configure_args="$(conf_args)"
122 bashdb-configure:
123         DEBUGGER_START_FILE=/usr/share/bashdb/dbg-main.inc \
124         $(MAKE) -f debian/rules do-configure-bashdb \
125             bash_src=bashdb \
126             bash_patches="$(bashdb_patches)" \
127             build=bashdb \
128             configure_args="$(conf_args)"
129
130 bashdb-doc-build: stamps/stamp-build-bashdb-doc
131 stamps/stamp-build-bashdb-doc:
132         cp -p build-bashdb/doc/version.texi bashdb/doc/
133         cp -p build-bashdb/debugger/doc/version.texi bashdb/debugger/doc/
134 #       $(MAKE) -C build-bashdb doc
135         $(MAKE) -C build-bashdb/debugger/doc
136         touch stamps/stamp-build-bashdb-doc
137
138 # ---------------------------------------------------------------------------
139
140 bash-doc-build: stamps/stamp-build-bash-doc
141 stamps/stamp-build-bash-doc:
142 ifeq ($(with_gfdl),yes)
143         rm -f bash/doc/bashref.info
144         $(MAKE) -C build-bash/doc bashref.info bashref.pdf
145 endif
146         $(MAKE) -C build-bash/doc bash.html bash.pdf
147         touch stamps/stamp-build-bash-doc
148
149 # ---------------------------------------------------------------------------
150
151 check: stamps/stamp-check
152 stamps/stamp-check: bash-build
153         @echo BEGIN test
154 ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
155   ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
156         -sh debian/locale-gen
157         LOCPATH=$(CURDIR)/locales \
158                 time $(MAKE) -C build-bash test 2>&1 | tee build-bash/test-protocol
159   endif
160 else
161         @echo Suppress 'make' test, because this is cross build
162 endif
163         @echo END test
164         touch stamps/stamp-check
165
166 # ---------------------------------------------------------------------------
167
168 clean:
169         dh_testdir
170         dh_testroot
171         rm -rf stamps build-* bash bashdb
172         rm -f debian/bash.preinst debian/*.o
173         rm -f debian/README.Debian
174         rm -rf locales
175         rm -f clear_console
176         dh_clean
177
178 preinst-build: debian/bash.preinst
179 debian/bash.preinst: debian/bash.preinst.c debian/md5.c debian/md5.h
180         $(CC) -O2 -c -Idebian -o debian/md5.o debian/md5.c
181         $(CC) -O2 -c -Idebian -o debian/bash.preinst.o debian/bash.preinst.c
182         $(CC) -O2 -s -o debian/bash.preinst debian/md5.o debian/bash.preinst.o
183
184 # ---------------------------------------------------------------------------
185
186
187 install: bash-install #bashdb-install
188
189 bash-install: bash-build stamps/stamp-install-bash
190 stamps/stamp-install-bash: stamps/stamp-build-bash
191         dh_testdir
192         dh_testroot
193         dh_clean -k -p$(p) -p$(p_doc) -p$(p_bins)
194         dh_installdirs -p$(p) \
195                 bin \
196                 etc/skel \
197                 usr/share/doc/$(p)
198         dh_installdirs -p$(p_doc) \
199                 usr/share/doc/$(p)
200         dh_installdirs -p$(p_bins) \
201                 usr/share/doc/$(p)/examples/loadables \
202                 usr/include/bash/{builtins,lib/{glob,tilde}}
203
204 ifeq ($(with_gfdl),yes)
205 # XXXXX
206         cp -p build-bash/doc/*.info bash/doc/
207 endif
208
209         : # install it
210         $(MAKE) -C build-bash install \
211                 CC='$(CC)' \
212                 CFLAGS='$(CFLAGS)' \
213                 YACC="$(YACC)" \
214                 DESTDIR=$(CURDIR)/$(d)
215         mv $(d)/usr/bin/bash $(d)/bin/.
216         chmod 755 $(d)/usr/bin/bashbug
217         $(ID) debian/bashbug.1 $(d)/usr/share/man/man1/
218 ifneq ($(with_gfdl),yes)
219         mkdir -p $(d)/usr/share/man/man1
220         cp -p bash/doc/bash.1 $(d)/usr/share/man/man1/bash.1
221 endif
222
223         : # extra links
224         ln -sf bash $(d)/bin/rbash
225 #       : # now shipped by dash
226         ln -sf bash $(d)/bin/sh
227         ln -sf bash.1 $(d)/usr/share/man/man1/sh.1
228
229         : # skeleton files
230         $(ID) debian/etc.bash.bashrc $(d)/etc/bash.bashrc
231         $(ID) debian/skel.bashrc $(d)/etc/skel/.bashrc
232         $(ID) debian/skel.profile $(d)/etc/skel/.profile
233         $(ID) debian/skel.bash_logout $(d)/etc/skel/.bash_logout
234
235         : # clean_console
236 ifneq (,$(findstring $(DEB_HOST_ARCH_OS), linux freebsd))
237         $(IX) clear_console $(d)/usr/bin/
238         $(ID) debian/clear_console.1 $(d)/usr/share/man/man1/
239 endif
240
241 ifeq (0,1)
242         : # install bash-completion
243         mkdir -p $(d)/etc/bash_completion.d
244         $(ID) debian/bash_completion/bash_completion $(d)/etc/.
245         cp -a debian/bash_completion/contrib \
246                 $(d)/usr/share/doc/$(p)/completion-contrib
247         chmod 755 $(d)/usr/share/doc/$(p)/completion-contrib
248         chmod 644 $(d)/usr/share/doc/$(p)/completion-contrib/*
249         $(ID) debian/bash_completion/Changelog \
250                 $(d)/usr/share/doc/$(p)/changelog.bash_completion
251         $(ID) debian/README.bash_completion $(d)/usr/share/doc/$(p)/
252         cat debian/bash_completion/README \
253                 >> $(d)/usr/share/doc/$(p)/README.bash_completion
254         $(ID) debian/bash_completion/BUGS \
255                 $(d)/usr/share/doc/bash/BUGS.bash_completion
256 endif
257
258 ifeq ($(with_gfdl),yes)
259         : # files for the bash-doc package
260         mv $(d)/usr/share/info/bash.info $(d)/usr/share/info/bashref.info
261         ln -sf bashref.info $(d)/usr/share/info/bash.info
262         mv $(d)/usr/share/info $(d_doc)/usr/share/
263 else
264         rmdir $(d)/usr/share/info
265 endif
266
267         dh_installexamples -p$(p_doc) bash/examples/*
268         mv $(d_doc)/usr/share/doc/$(p_doc)/examples \
269                 $(d_doc)/usr/share/doc/$(p)/examples
270         rm -rf $(d_doc)/usr/share/doc/$(p)/examples/loadables
271         ln -sf ../$(p)/examples $(d_doc)/usr/share/doc/$(p_doc)/examples
272
273         cd $(d_doc)/usr/share/doc/$(p)/examples && chmod 644 \
274                 *bashdb/PERMISSION complete/complete.gnu-longopt
275         cd $(d_doc)/usr/share/doc/$(p)/examples && chmod 755 \
276                 misc/aliasconv.*sh misc/cshtobash
277
278         cd $(d_doc)/usr/share/doc/$(p)/examples && chmod 644 \
279                 scripts/shprompt scripts/precedence \
280                 scripts/bcsh.sh scripts/krand.bash
281
282         : # files for the bash-builtins package
283         $(ID) bash/include/*.h bash/*.h  $(d_bins)/usr/include/bash/
284         $(ID) build-bash/*.h $(d_bins)/usr/include/bash/
285         rm -f $(d_bins)/usr/include/bash/y.tab.h
286         $(ID) bash/builtins/*.h $(d_bins)/usr/include/bash/builtins/
287         $(ID) bash/lib/glob/*.h $(d_bins)/usr/include/bash/lib/glob/
288         $(ID) bash/lib/tilde/*.h $(d_bins)/usr/include/bash/lib/tilde/
289         $(ID) bash/examples/loadables/{README,*.c} \
290                 $(d_bins)/usr/share/doc/$(p)/examples/loadables
291         $(ID) build-bash/examples/loadables/Makefile \
292                 $(d_bins)/usr/share/doc/$(p)/examples/loadables
293         ln -sf bash $(d_bins)/usr/share/doc/$(p_bins)
294
295         cat debian/README stamps/stamp-patch-bash > debian/README.Debian
296
297         touch stamps/stamp-install-bash
298
299 bashdb-install: stamps/stamp-install-bashdb
300 stamps/stamp-install-bashdb: stamps/stamp-build-bashdb
301         dh_testdir
302         dh_testroot
303         dh_clean -k -p$(p_bdb)
304         dh_installdirs -p$(p_bdb) \
305                 usr/share/doc/$(p_bdb) \
306                 usr/share/emacs/site-lisp/$(p_bdb)
307
308         : # install it
309         $(MAKE) -C build-bashdb install \
310                 CC='$(CC)' \
311                 CFLAGS='$(CFLAGS)' \
312                 YACC="$(YACC)" \
313                 DESTDIR=$(CURDIR)/$(d_bdb)
314         rm -f $(d_bdb)/usr/bin/bashbug
315         rm -f $(d_bdb)/usr/share/man/man1/bashbug.1
316         rm -f $(d_bdb)/usr/share/info/*
317
318         mv $(d_bdb)/usr/share/man/man1/bash.1 \
319                 $(d_bdb)/usr/share/man/man1/bash+dbg.1
320
321         $(MAKE) -C build-bashdb/debugger/doc install \
322                 DESTDIR=$(CURDIR)/$(d_bdb)
323         cp -p build-bashdb/debugger/doc/bashdb.html \
324                 $(d_bdb)/usr/share/doc/$(p_bdb)/.
325         cp -p build-bashdb/debugger/doc/bashdb.1 \
326                 $(d_bdb)/usr/share/man/man1/.
327
328         : # some corrections
329         mv $(d_bdb)/usr/bin/bash $(d_bdb)/usr/bin/bash+dbg
330         sed -e 's,/usr/bin/bash,/usr/bin/bash+dbg,g' \
331             -e 's,/lib/bashdb,/share/bashdb,g' \
332                 $(d_bdb)/usr/bin/bashdb > $(d_bdb)/usr/bin/bashdb.new
333         mv -f $(d_bdb)/usr/bin/bashdb.new $(d_bdb)/usr/bin/bashdb
334         chmod 755 $(d_bdb)/usr/bin/bashdb
335         cp -p bashdb/debugger/emacs/*.el \
336                 $(d_bdb)/usr/share/emacs/site-lisp/$(p_bdb)/
337
338         touch stamps/stamp-install-bashdb
339
340 binary-doc: bash-install bash-doc-build
341         dh_testdir
342         dh_testroot
343         mkdir -p $(d_doc)/usr/share/doc/$(p)
344         dh_installdocs -p$(p_doc) 
345 ifeq ($(with_gfdl),yes)
346         cp -p build-bash/doc/bashref.pdf $(d_doc)/usr/share/doc/$(p)/.
347         dh_link -p$(p_doc) \
348             /usr/share/doc/$(p)/bashref.pdf /usr/share/doc/$(p_doc)/bashref.pdf
349 else
350         rm -f $(d_doc)/usr/share/doc-base/bashref
351 endif
352         cp -p build-bash/doc/bash.html build-bash/doc/bash.pdf \
353             $(d_doc)/usr/share/doc/$(p)/
354         dh_link -p$(p_doc) \
355             /usr/share/doc/$(p)/bash.html /usr/share/doc/$(p_doc)/bash.html \
356             /usr/share/doc/$(p)/bash.pdf /usr/share/doc/$(p_doc)/bash.pdf
357         dh_installchangelogs -p$(p_doc) bash/CWRU/changelog
358         dh_compress -p$(p_doc) -Xexamples -X.pdf
359         dh_fixperms -p$(p_doc)
360         dh_installdeb -p$(p_doc)
361         dh_gencontrol -p$(p_doc)
362         dh_md5sums -p$(p_doc)
363         dh_builddeb -p$(p_doc)
364
365 binary-bash: bash-install debian/bash.preinst
366         dh_testdir
367         dh_testroot
368         dh_installchangelogs -p$(p)
369         dh_installdocs -p$(p) \
370                 bash/{CHANGES,NEWS,COMPAT,doc/INTRO,POSIX} \
371                 debian/{README.Debian,README.abs-guide,README.commands} \
372                 debian/inputrc.arrows
373 ifeq ($(with_gfdl),yes)
374         cp -p bash/doc/FAQ $(d)/usr/share/doc/$(p)/.
375 endif
376         cp -p debian/FAQ $(d)/usr/share/doc/$(p)/.
377         dh_installman -p$(p) bash/doc/rbash.1 debian/bash-builtins.7
378         dh_installmenu -p$(p)
379         dh_strip -p$(p)
380         dh_compress -p$(p)
381         dh_fixperms -p$(p)
382         dh_shlibdeps -p$(p) -- -dPre-Depends $(d)/bin/bash debian/bash.preinst
383         dh_installdeb -p$(p)
384         dh_gencontrol -p$(p)
385         dh_md5sums -p$(p)
386         dh_builddeb -p$(p)
387
388 # Even though it contains only headers and example files,
389 # bash-builtins is NOT arch-independent because the config.h* files
390 # differ on different archs.
391 binary-builtins: bash-install
392         dh_testdir
393         dh_testroot
394         dh_compress -p$(p_bins) -Xexamples
395         dh_fixperms -p$(p_bins)
396         dh_installdeb -p$(p_bins)
397         dh_gencontrol -p$(p_bins)
398         dh_md5sums -p$(p_bins)
399         dh_builddeb -p$(p_bins)
400
401 binary-static: static-build
402         dh_testdir
403         dh_testroot
404         dh_clean -k -p$(p_stat)
405         dh_installdirs -p$(p_stat) \
406                 bin \
407                 usr/share/man/man1
408         cp -p build-static/bash $(d_stat)/bin/bash-static
409         cp -p bash/doc/bash.1 $(d_stat)/usr/share/man/man1/bash-static.1
410         dh_installdocs -p$(p_stat)
411         dh_installchangelogs -p$(p_stat)
412         dh_strip -p$(p_stat)
413         dh_compress -p$(p_stat)
414         dh_fixperms -p$(p_stat)
415         dh_installdeb -p$(p_stat)
416         dh_gencontrol -p$(p_stat)
417         dh_md5sums -p$(p_stat)
418         dh_builddeb -p$(p_stat)
419
420 binary-bashdb: bashdb-install
421         dh_testdir
422         dh_testroot
423         dh_installdocs -p$(p_bdb) \
424                 bashdb/{CHANGES,NEWS,README}
425         cp -p debian/README.bashdb $(d_bdb)/usr/share/doc/$(p_bdb)/README.Debian
426         for i in AUTHORS CHANGES NEWS README THANKS TODO; do \
427           cp -p bashdb/debugger/$$i \
428             $(d_bdb)/usr/share/doc/$(p_bdb)/$$i.bashdb; \
429         done
430         dh_installdocs -p$(p_bdb)
431         dh_installchangelogs -p$(p_bdb) bashdb/debugger/ChangeLog
432         dh_installemacsen -p$(p_bdb)
433         dh_strip -p$(p_bdb)
434         dh_compress -p$(p_bdb)
435         dh_fixperms -p$(p_bdb)
436         dh_installdeb -p$(p_bdb)
437         dh_gencontrol -p$(p_bdb)
438         dh_md5sums -p$(p_bdb)
439         dh_builddeb -p$(p_bdb)
440
441 binary-indep: binary-doc
442 binary-arch: binary-bash binary-builtins binary-static #binary-bashdb
443 binary: binary-indep binary-arch
444
445 # ---------------------------------------------------------------------------
446 # common rules for all bash build variations
447
448 do-build-$(build): stamps/stamp-build-$(build)
449 stamps/stamp-build-$(build): stamps/stamp-configure-$(build)
450         dh_testdir
451 ifneq (,$(profiled_build))
452         $(MAKE) -C build-$(build) \
453                 CC='$(CC)' \
454                 CFLAGS='$(CFLAGS) -fprofile-generate' \
455                 YACC="$(YACC)" \
456                 deb_builddir=build-$(build)/ \
457                 $(debflags)
458         -sh debian/locale-gen
459         cp debian/run-my-gprof bash/tests/
460         LOCPATH=$(CURDIR)/locales \
461             time $(MAKE) -C build-$(build) TESTSCRIPT=run-my-gprof test 2>&1 \
462                 | tee build-bash/profile-protocol
463         $(MAKE) -C build-$(build) clean
464         rm -f build-$(build)/lib/malloc/malloc*.gc??
465         $(MAKE) -C build-$(build) \
466                 CC='$(CC)' \
467                 CFLAGS='$(CFLAGS) -fprofile-use' \
468                 YACC="$(YACC)" \
469                 deb_builddir=build-$(build)/ \
470                 $(debflags)
471 else
472         $(MAKE) -C build-$(build) \
473                 CC='$(CC)' \
474                 CFLAGS='$(CFLAGS)' \
475                 YACC="$(YACC)" \
476                 deb_builddir=build-$(build)/ \
477                 $(debflags)
478 endif
479 ifeq ($(with_gfdl),yes)
480         $(MAKE) -C build-$(build)/doc \
481                 bash.info
482 endif
483         touch stamps/stamp-build-$(build)
484
485 do-configure-$(build): stamps/stamp-configure-$(build)
486 stamps/stamp-configure-$(build): stamps/stamp-patch-$(bash_src)
487         dh_testdir
488         rm -rf build-$(build)
489         mkdir build-$(build)
490         cd build-$(build) && \
491             CC="$(CC)" CFLAGS="$(CFLAGS)" YACC="$(YACC)" \
492                 ../$(bash_src)/configure $(configure_args)
493         if ! grep -q '#define HAVE_DEV_STDIN 1' build-$(build)/config.h; then \
494           echo "HAVE_DEV_STDIN not defined, abortig build"; \
495           exit 1; \
496         fi
497         touch stamps/stamp-configure-$(build)
498
499 patchdir        = debian/patches
500 debian_patches = \
501         bash41-001 \
502         bash41-002 \
503         bash41-003 \
504         bash41-004 \
505         bash41-005 \
506         bashbug-editor \
507         deb-bash-config \
508         deb-examples \
509         man-arithmetic \
510         man-fignore \
511         man-bashrc \
512         man-bashlogout \
513         man-substring-exp \
514         man-nocaseglob \
515         man-test \
516         man-test2 \
517         privmode \
518         rbash-manpage \
519         bash-default-editor \
520         bash-subst-param-length \
521         pgrp-pipe \
522         input-err \
523         exec-redirections-man \
524         bash-aliases-repeat \
525         builtins-declare-fix \
526         0001-Disable-all-exported-shell-functions \
527
528 ifeq ($(with_gfdl),yes)
529   debian_patches += \
530         man-substring-exp-doc \
531         man-test2-doc \
532         exec-redirections-texi \
533
534 endif
535
536 # all debian_patches, without bash205b-*
537 # patches integrated in bashdb: builtins-shift, execute-cmd, man-arithmetic,
538 #     man-builtin, man-fignore, random, rbash-manpage, report-155436,
539 #     rl-8bit-init, s390-build
540 # and bashdb patch
541 #       rbash-manpage \
542
543 bashdb_patches = \
544         bashdb \
545         rl-examples-bdb \
546         rl-inputrc \
547         bashbug-editor \
548         deb-bash-config \
549         deb-examples \
550         privmode \
551
552 #       various \
553
554 # these are applied in bashdb cvs as well
555 #       man-arithmetic \
556 #       man-fignore \
557 #       random \
558 #       report-155436 \
559 #       s390-build \
560 #       builtins-shift
561
562 patch-$(bash_src): stamps/stamp-patch-$(bash_src)
563 stamps/stamp-patch-$(bash_src): stamps/stamp-unpack-$(bash_src) \
564     $(foreach p,$(bash_patches),stamps/stamp-patch-$(bash_src)-$(p))
565         echo -e "\nPatches applied in this version:" > pxxx
566         for i in $(bash_patches); do \
567           echo -e "\n$$i:" >> pxxx; \
568           sed -n 's/^# *DP: */  /p' $(patchdir)/$$i.dpatch >> pxxx; \
569         done
570         mv -f pxxx $@
571
572 stamps/stamp-patch-$(bash_src)-%: $(patchdir)/%.dpatch
573         if [ -f $@ ]; then \
574           echo "$* patches already applied."; exit 1; \
575         fi
576         sh -e $< -patch -d $(bash_src)
577         echo "$* patches applied." > $@
578
579 unpack-$(bash_src): stamps/stamp-unpack-$(bash_src)
580 stamps/stamp-unpack-$(bash_src):
581         mkdir -p stamps
582         rm -rf bash-$(VERSION) $(bash_src)
583         rm -f stamps/stamp-patch-$(bash_src){,-*}
584         tar xf bash-$(VERSION)*.tar.xz
585         mv bash-$(VERSION) $(bash_src)
586         rm -f bash/y.tab.?
587         cp -p /usr/share/misc/config.* $(bash_src)/.
588         cp -p /usr/share/misc/config.* $(bash_src)/support/.
589         touch stamps/stamp-unpack-$(bash_src)
590
591 .PHONY: unpack patch binary binary-arch binary-indep clean \
592     build bash-build static-build preinst-build \
593     all-bashdb-build bashdb-build bashdb-doc-build \
594     check \
595     bash-configure static-configure bashdb-configure \
596     binary-doc binary-bash binary-builtins binary-static binary-bashdb \
597     install bash-install bashdb-install
598
599 # Local Variables:
600 # mode: makefile
601 # end: