summaryrefslogtreecommitdiff
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules376
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