diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 376 |
1 files changed, 376 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 000000000..1257c767c --- /dev/null +++ b/debian/rules @@ -0,0 +1,376 @@ +#!/usr/bin/make -f +INSTALL = install +INSTALL_FILE = $(INSTALL) -p -o root -g root -m 644 +INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 +INSTALL_SCRIPT = $(INSTALL) -p -o root -g root -m 755 +INSTALL_DIR = $(INSTALL) -p -d -o root -g root -m 755 + +package=zsh +ifeq (zsh-beta,$(package)) +snapshot_date := $(shell dpkg-parsechangelog | sed -n '/^Version: [0-9.][0-9.]*.*+20[0-9][0-9]\([0-9][0-9][0-9][0-9]\)-[0-9][0-9]*$$/ {s//\1/;p}') +endif + +CFLAGS = -Wall -g +ifeq (zsh-beta,$(package)) +CFLAGS += -W +endif + +CONFIGFLAGS = --prefix=/usr --mandir=/usr/share/man --bindir=/bin LDFLAGS="-Wl,--as-needed -g" + +ifeq (zsh-beta,$(package)) +CONFIGFLAGS += --program-suffix=-beta +endif + +CONFIGFLAGS += --infodir=/usr/share/info --enable-maildir-support +CONFIGFLAGS += --enable-max-jobtable-size=256 --enable-etcdir=/etc/$(package) +CONFIGFLAGS += --enable-function-subdirs +CONFIGFLAGS += --enable-site-fndir=/usr/local/share/$(package)/site-functions +CONFIGFLAGS += --enable-fndir=/usr/share/$(package)/functions +CONFIGFLAGS += --with-tcsetpgrp --with-term-lib="ncursesw tinfo" +CONFIGFLAGS += --enable-cap --enable-pcre +CONFIGFLAGS += --enable-readnullcmd=pager +CONFIGFLAGS += --enable-custom-patchlevel=Debian +CONFIGFLAGS += --enable-additional-fpath=/usr/share/zsh/vendor-functions,/usr/share/zsh/vendor-completions + +STATICFLAGS = --disable-dynamic --enable-ldflags=-static +ifneq (zsh-beta,$(package)) +STATICFLAGS += --disable-dynamic-nss +endif + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) +CONFIGFLAGS += --enable-zsh-debug --enable-zsh-mem-debug --enable-zsh-mem-warning --enable-zsh-secure-free --enable-zsh-hash-debug +endif + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) +CFLAGS += -O0 +else +CFLAGS += -O2 +endif + +ifeq (zsh-beta,$(package)) +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) +INSTALL_PROGRAM += -s +endif +endif + +build: stamp-configure + $(checkdir) +ifeq (zsh-beta,$(package)) + touch stamp-h.in +endif + + cd obj && $(MAKE) + + -cd obj && HOME="$(CURDIR)/obj/testhome" $(MAKE) check + +ifeq (zsh,$(package)) + cd obj && $(MAKE) pdf +endif + + touch build + +build-static: stamp-configure-static + $(checkdir) + cd obj-static && $(MAKE) + + touch build-static + +build-debug: DEB_BUILD_OPTIONS+=debug +build-debug: build + +stamp-configure: + $(checkdir) + touch stamp-h.in configure + chmod 755 configure + mkdir -p obj/testhome +ifeq (zsh-beta,$(package)) + test -f Config/version.mk.orig || cp Config/version.mk Config/version.mk.orig + sed -i -e 's/^VERSION=\([^+]*\)$$/VERSION=\1-cvs$(snapshot_date)/' Config/version.mk +endif + cd obj && CFLAGS='$(CFLAGS)' ../configure $(CONFIGFLAGS) + touch stamp-configure + +stamp-configure-static: + $(checkdir) + mkdir obj-static + cd obj-static && CFLAGS='$(CFLAGS)' ../configure $(CONFIGFLAGS) $(STATICFLAGS) +# cp debian/static.conf obj-static/Src/mymods.conf + sed -i -e 's/files.mdd link=no/files.mdd link=static/;s/stat.mdd link=no/stat.mdd link=static/' obj-static/config.modules + touch stamp-configure-static + +clean: + $(checkdir) +ifeq (zsh-beta,$(package)) + test ! -f Config/version.mk.orig || mv Config/version.mk.orig Config/version.mk +endif + -rm -f build build-static + if test -d obj && cd obj && test -f Makefile; then $(MAKE) distclean; fi + if test -d obj-static && cd obj-static && test -f Makefile; then $(MAKE) distclean; fi +ifneq (zsh-beta,$(package)) + test ! -f Makefile || $(MAKE) distclean +endif + -rm -f `find . -name "*~"` \ + debian/files* core debian/*ubstvars \ + stamp-configure stamp-configure-static \ + config.cache config.status config.status.lineno \ + Doc/zsh.idx config.h.in~ + -rm -rf debian/tmp debian/tmp-doc debian/tmp-static debian/tmp-dbg \ + debian/tmp-dev config.cache obj obj-static \ + autom4te.cache + +binary-indep: checkroot build + $(checkdir) + -rm -rf debian/tmp-doc + $(INSTALL_DIR) debian/tmp-doc + cd debian/tmp-doc && $(INSTALL_DIR) usr/share/doc-base \ + usr/share/info \ + usr/share/doc/$(package)-doc/html \ + DEBIAN + + -cd obj && $(MAKE) install.info DESTDIR=$(CURDIR)/debian/tmp-doc + rm -f debian/tmp-doc/usr/share/info/dir* + gzip -9frq debian/tmp-doc/usr/share/info/* + cd obj && $(MAKE) install.html DESTDIR=$(CURDIR)/debian/tmp-doc htmldir=/usr/share/doc/$(package)-doc/html +# Work around texi2html unfriendliness + sed -i -e 's/<BODY.*>/<BODY LANG="EN">/' debian/tmp-doc/usr/share/doc/$(package)-doc/html/*.html + +ifeq (zsh,$(package)) + $(INSTALL_FILE) obj/Doc/zsh.pdf debian/tmp-doc/usr/share/doc/$(package)-doc/ +endif + + $(INSTALL_FILE) debian/copyright debian/tmp-doc/usr/share/doc/$(package)-doc/copyright + $(INSTALL_FILE) debian/changelog debian/tmp-doc/usr/share/doc/$(package)-doc/changelog.Debian + gzip -9frq debian/tmp-doc/usr/share/doc/$(package)-doc/changelog.Debian + $(INSTALL_FILE) debian/$(package).doc-base debian/tmp-doc/usr/share/doc-base/$(package) + cd debian/tmp-doc && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums + + dpkg-gencontrol -isp -p$(package)-doc -Pdebian/tmp-doc + chown -R root.root debian/tmp-doc + chmod -R go=rX debian/tmp-doc + dpkg --build debian/tmp-doc .. + +ifneq (zsh-beta,$(package)) +binary-arch: binary-arch-dynamic binary-arch-static binary-arch-dev +else +binary-arch: binary-arch-dynamic +endif +binary-arch-dynamic: checkroot build + $(checkdir) + + -rm -rf debian/tmp debian/tmp-dbg + $(INSTALL_DIR) debian/tmp debian/tmp-dbg/usr/lib/debug/bin debian/tmp-dbg/DEBIAN + cd debian/tmp && $(INSTALL_DIR) etc/$(package) \ + bin \ + usr/lib/$(package) \ + usr/share/menu \ + usr/share/man \ + usr/share/$(package)/help \ + usr/share/doc/$(package)/examples/Functions \ + usr/share/doc/$(package)/examples/Misc \ + usr/share/doc/$(package)/examples/old \ + DEBIAN + + cd obj && $(MAKE) install.man DESTDIR=$(CURDIR)/debian/tmp + nroff -mandoc -Tascii Doc/zshbuiltins.1 | colcrt - | \ + sed -e 's/±/{+|-}/' | ( cd debian/tmp/usr/share/$(package)/help && \ + perl $(CURDIR)/Util/helpfiles ) + +ifeq (zsh-beta,$(package)) + sed -r -i -e \ + 's/zsh(all|builtins|compctl|compsys|compwid|contrib|expn|misc|modules|options|param|roadmap|tcpsys|zftpsys|zle|calsys)/$(package)\1/g' \ + debian/tmp/usr/share/man/man1/*.1 +endif + +# functions + $(INSTALL_FILE) -m 644 Misc/* debian/tmp/usr/share/doc/$(package)/examples/Misc/. + $(INSTALL_FILE) -m 644 Functions/Example/* debian/tmp/usr/share/doc/$(package)/examples/Functions/. + sed -i -e '1!b;s:^#!.*[ /]zsh:#!/bin/$(package):;s#/usr/local/bin#/usr/bin#' \ + debian/tmp/usr/share/doc/$(package)/examples/Misc/* + $(INSTALL_FILE) StartupFiles/* debian/tmp/usr/share/doc/$(package)/examples/. + $(INSTALL_FILE) Util/reporter debian/tmp/usr/share/doc/$(package)/examples/. + + $(INSTALL_FILE) debian/examples/ssh_completion \ + debian/examples/ssh_completion2 \ + debian/examples/carstenh.zshrc \ + debian/tmp/usr/share/doc/$(package)/examples/. +ifneq (zsh-beta,$(package)) + $(INSTALL_FILE) debian/examples/compctl.dpkg debian/examples/jhm.zshrc debian/tmp/usr/share/doc/$(package)/examples/old/. +endif + + cd obj && $(MAKE) install.bin DESTDIR=$(CURDIR)/debian/tmp INSTALL_PROGRAM='$(INSTALL_PROGRAM)' + cd obj && $(MAKE) install.modules DESTDIR=$(CURDIR)/debian/tmp INSTALL_PROGRAM='$(INSTALL_PROGRAM)' + cd obj && $(MAKE) install.fns DESTDIR=$(CURDIR)/debian/tmp + + rm -r debian/tmp/usr/local + +# move this to a non-root section; also drop it for cross-compiles + awk '/^#define FPATH_DIR/ { head=$$3; gsub(/"/,"",head); }; /^#define FPATH_SUBDIRS/ { $$1=""; $$2=""; gsub(/[" ]/,""); tail=$$0; } END { printf "%s/%s\n", head, tail; };' obj/Src/zshpaths.h >obj/Src/zshpaths.temp + debian/tmp/bin/$(package) -fc 'setopt extendedglob; for i in debian/tmp/'`cat obj/Src/zshpaths.temp`'; do zcompile -U -M $$i.zwc $$i/*~*.zwc(^/) ; chmod 644 $$i.zwc ; done' + +ifneq (zsh-beta,$(package)) + mv debian/tmp/bin/zsh debian/tmp/bin/zsh4 + rm debian/tmp/bin/zsh-4.[0-9]* + ln -s zsh.1.gz debian/tmp/usr/share/man/man1/zsh4.1.gz + + for i in `find debian/tmp/usr/lib/zsh -type d | sed 's#^debian/tmp/##'`; \ + do mkdir -p debian/tmp-dbg/usr/lib/debug/"$$i"; done + + objcopy --only-keep-debug debian/tmp/bin/zsh4 \ + debian/tmp-dbg/usr/lib/debug/bin/zsh4.dbg + strip --remove-section=.comment --remove-section=.note debian/tmp/bin/zsh4 + objcopy --add-gnu-debuglink=debian/tmp-dbg/usr/lib/debug/bin/zsh4.dbg debian/tmp/bin/zsh4 + + for i in `find debian/tmp/usr/lib/zsh -name "*.so"`; \ + do objcopy --only-keep-debug $$i debian/tmp-dbg/usr/lib/debug/`echo $$i | sed 's#^debian/tmp/##'`.debug; \ + strip --remove-section=.comment --remove-section=.note \ + --strip-unneeded $$i; \ + objcopy --add-gnu-debuglink=debian/tmp-dbg/usr/lib/debug/`echo $$i | sed 's#^debian/tmp/##'`.debug $$i; \ + done +else + rm debian/tmp/bin/zsh-beta-* +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + strip --remove-section=.comment --remove-section=.note debian/tmp/bin/zsh-beta + strip --remove-section=.comment --remove-section=.note \ + --strip-unneeded `find debian/tmp/usr/lib/zsh-beta -name "*.so"` +endif +endif + + $(INSTALL_DIR) debian/tmp-dbg/usr/share/doc + ln -s zsh debian/tmp-dbg/usr/share/doc/$(package)-dbg + + $(INSTALL_FILE) debian/zlogin debian/zlogout debian/zprofile debian/zshenv debian/zshrc debian/newuser.zshrc.recommended debian/tmp/etc/$(package)/. + sed -i -e 's,^local HELPDIR=.*,local HELPDIR=$${HELPDIR:-/usr/share/$(package)/help},;s,:-more,:-/usr/bin/pager,;' debian/tmp/usr/share/$(package)/functions/Misc/run-help + + sed -i -e '1!b;s:^#!.*[ /]zsh:#!/bin/$(package):;s#/usr/local/bin#/usr/bin#;' `find debian/tmp/usr/share/$(package)/functions -type f` + chmod 755 debian/tmp/usr/share/$(package)/functions/Misc/checkmail \ + debian/tmp/usr/share/$(package)/functions/Misc/harden \ + debian/tmp/usr/share/$(package)/functions/Misc/run-help \ + debian/tmp/usr/share/$(package)/functions/Misc/zkbd \ + debian/tmp/usr/share/$(package)/functions/Misc/zcalc \ + + $(INSTALL_FILE) Etc/ChangeLog* README META-FAQ Doc/zsh.texi Etc/BUGS Etc/CONTRIBUTORS FEATURES \ + Etc/FTP-README MACHINES NEWS Etc/TODO Etc/completion-style-guide Etc/zsh-development-guide Functions/README.zftp debian/tmp/usr/share/doc/$(package)/ + $(INSTALL_FILE) ChangeLog debian/tmp/usr/share/doc/$(package)/changelog + chmod -R u+rw,go=rX debian/tmp/usr/share/doc + $(INSTALL_FILE) debian/copyright debian/tmp/usr/share/doc/$(package)/copyright + + $(INSTALL_FILE) debian/changelog debian/tmp/usr/share/doc/$(package)/changelog.Debian +ifeq (zsh-beta,$(package)) + $(INSTALL_FILE) debian/NEWS debian/tmp/usr/share/doc/$(package)/NEWS.Debian +endif + + $(INSTALL_FILE) debian/README.Debian debian/tmp/usr/share/doc/$(package)/README.Debian + + $(INSTALL_FILE) debian/menu debian/tmp/usr/share/menu/$(package) + + chmod 644 `find debian/tmp/usr/share/man -type f` `find debian/tmp/usr/share/doc -type f` + chmod 644 `find debian/tmp/usr/lib/$(package) -type f -name "*.so"` + chmod 644 `find debian/tmp/usr/share/$(package) -type f -name "_*"` + gzip -9f `find debian/tmp/usr/share/man -type f` `find debian/tmp/usr/share/doc -type f ! -name "copyright"` + dpkg-shlibdeps -Tdebian/substvars -dDepends debian/tmp/bin/* -dRecommends debian/tmp/usr/lib/$(package)/*/zsh/*.so + dpkg-gencontrol -ldebian/changelog -isp -p$(package) -Tdebian/substvars -Pdebian/tmp +ifneq (zsh-beta,$(package)) + cd debian/tmp-dbg && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums + dpkg-gencontrol -ldebian/changelog -isp -p$(package)-dbg -Tdebian/substvars -Pdebian/tmp-dbg +endif + + $(INSTALL_SCRIPT) debian/postinst debian/tmp/DEBIAN/postinst + $(INSTALL_SCRIPT) debian/postrm debian/tmp/DEBIAN/postrm + $(INSTALL_SCRIPT) debian/prerm debian/tmp/DEBIAN/prerm + $(INSTALL_FILE) debian/conffiles debian/tmp/DEBIAN/conffiles + + cd debian/tmp && find * -type f ! -path "etc/$(package)/zlogin" ! -path "etc/$(package)/zlogout" ! -path "etc/$(package)/zprofile" ! -path "etc/$(package)/zshenv" ! -path "etc/$(package)/zshrc" ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums + +ifneq (zsh-beta,$(package)) + chown -R root:root debian/tmp debian/tmp-dbg + chmod -R go=rX debian/tmp debian/tmp-dbg +else + chown -R root:root debian/tmp + chmod -R go=rX debian/tmp +endif + + dpkg --build debian/tmp .. +ifneq (zsh-beta,$(package)) + dpkg --build debian/tmp-dbg .. +endif + +define checkdir + test -f debian/rules +endef + +binary-arch-static: checkroot build-static + $(checkdir) + + -rm -rf debian/tmp-static + $(INSTALL_DIR) debian/tmp-static/usr/share/man/man1/ + cd debian/tmp-static && $(INSTALL_DIR) bin \ + usr/share/doc/$(package)-static \ + usr/share/lintian/overrides \ + DEBIAN + + $(INSTALL_SCRIPT) debian/static.prerm debian/tmp-static/DEBIAN/prerm + $(INSTALL_SCRIPT) debian/static.postinst debian/tmp-static/DEBIAN/postinst + $(INSTALL_SCRIPT) debian/static.postrm debian/tmp-static/DEBIAN/postrm + + $(INSTALL_FILE) debian/changelog debian/tmp-static/usr/share/doc/$(package)-static/changelog.Debian + $(INSTALL_FILE) debian/$(package)-static.lintian-overrides debian/tmp-static/usr/share/lintian/overrides/$(package)-static + + awk 'BEGIN { print "The following modules are statically-compiled into the static $(package) binary:\n"; } /link=static/ { printf "%s (%s %s)\n", substr($$1,6), $$4, $$5; }' obj-static/config.modules >debian/tmp-static/usr/share/doc/$(package)-static/README.Debian + + $(INSTALL_FILE) debian/copyright debian/tmp-static/usr/share/doc/$(package)-static/copyright + + $(INSTALL_PROGRAM) obj-static/Src/zsh debian/tmp-static/bin/zsh4-static + strip --remove-section=.comment --remove-section=.note debian/tmp-static/bin/zsh4-static + + gzip -9f debian/tmp-static/usr/share/doc/$(package)-static/changelog.Debian + cd debian/tmp-static && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums + ln -s $(package).1.gz debian/tmp-static/usr/share/man/man1/zsh4-static.1.gz + +ifneq (zsh-beta,$(package)) + dpkg-shlibdeps -Tdebian/$(package)-static.substvars -dDepends debian/tmp-static/bin/* +endif + dpkg-gencontrol -ldebian/changelog -isp -p$(package)-static -Tdebian/$(package)-static.substvars -Pdebian/tmp-static + chown -R root.root debian/tmp-static + chmod -R go=rX debian/tmp-static + dpkg --build debian/tmp-static .. + +binary-arch-dev: checkroot build + $(INSTALL_DIR) debian/tmp-dev/usr/include/$(package) \ + debian/tmp-dev/usr/share/$(package)-dev \ + debian/tmp-dev/usr/share/doc/$(package)-dev \ + debian/tmp-dev/usr/share/aclocal \ + debian/tmp-dev/DEBIAN + $(INSTALL_FILE) obj/Src/*.epro obj/Src/sigcount.h \ + Src/hashtable.h Src/prototypes.h \ + Src/signals.h Src/zsh_system.h Src/zsh.h Src/ztype.h \ + debian/tmp-dev/usr/include/$(package) + $(INSTALL_FILE) Src/makepro.awk debian/tmp-dev/usr/share/$(package)-dev + $(INSTALL_FILE) Config/aczshoot.m4 debian/tmp-dev/usr/share/aclocal/$(package)oot.m4 + $(INSTALL_FILE) debian/changelog debian/tmp-dev/usr/share/doc/$(package)-dev/changelog.Debian + $(INSTALL_FILE) debian/copyright debian/tmp-dev/usr/share/doc/$(package)-dev/ + gzip -9f debian/tmp-dev/usr/share/doc/$(package)-dev/changelog.Debian + + cd debian/tmp-dev && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums + dpkg-gencontrol -ldebian/changelog -isp -p$(package)-dev -Tdebian/$(package)-dev.substvars -Pdebian/tmp-dev + chown -R root.root debian/tmp-dev + chmod -R go=rX debian/tmp-dev + dpkg --build debian/tmp-dev .. + +ifneq (zsh-beta,$(package)) +binary: binary-indep binary-arch binary-arch-static binary-arch-dev +else +binary: binary-indep binary-arch +endif + +prebuild: + Util/preconfig + ./configure + make -C Doc + make distclean + rm -rf autom4te.cache + +checkroot: + $(checkdir) + test root = "`whoami`" + +.PHONY: binary binary-arch binary-indep clean checkroot binary-arch-dynamic binary-arch-static prebuild binary-arch-dev |