X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/4c13acfc45a942f5f481ce6a3dfcea461da505ad..3d1e0f47bbf593a93961fa040fa60541befdb2ae:/debian/rules diff --git a/debian/rules b/debian/rules index af1b4a2..05b512f 100755 --- a/debian/rules +++ b/debian/rules @@ -1,138 +1,187 @@ #!/usr/bin/make -f -SHELL+= -e -export LC_ALL=C -include debian/scripts/vars - -BUILD_DIR := $(SOURCE_DIR)/$(TAR_DIR) -B := $(BUILD_DIR) -D := $(CURDIR)/debian/mutt - -# Comment this line if you want the header cache with gdbm -HCACHE_WITH_DB := --without-gdbm - -clean: - $(MAKE) -f debian/sys-build.mk source.clean +include /usr/share/quilt/quilt.make + +### +# header cache backend +# HCACHE_DB := bdb +HCACHE_DB := gdbm +# HCACHE_DB := qdbm +### +# GPGME backend +# GPGME := --enable-gpgme +### + +# Configure arguments + +ifeq ($(HCACHE_DB),bdb) + hcache_db := --without-gdbm --without-qdbm +endif +ifeq ($(HCACHE_DB),gdbm) + hcache_db := --without-qdbm --without-bdb +endif +ifeq ($(HCACHE_DB),qdbm) + hcache_db := --without-gdbm --without-bdb +endif + +confflags = --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --with-sharedir=/usr/share/mutt \ + --with-docdir=/usr/share/doc \ + --with-mailpath=/var/mail \ + \ + --disable-dependency-tracking \ + \ + --enable-compressed \ + --enable-debug \ + --enable-fcntl \ + --enable-hcache \ + $(GPGME) \ + --enable-imap \ + --enable-smtp \ + --enable-inodesort \ + --enable-pop \ + \ + --with-curses \ + --with-gnutls \ + --with-idn \ + --with-mixmaster \ + --with-sasl \ + \ + $(hcache_db) + +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +confflags += --build $(DEB_BUILD_GNU_TYPE) +# Only specify --host when cross-compiling +ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --host $(DEB_HOST_GNU_TYPE) +endif + +# CFLAGS +CFLAGS = -Wall -g +CPPFLAGS = -I/usr/include/qdbm +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +# Directory to make the build on +objdir = $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE) + +$(objdir)-patched/build-stamp: $(QUILT_STAMPFN) + dh_testdir dh_clean - -# target used by the maintainer -unpack.nopatch: - $(MAKE) -f debian/sys-build.mk source.build - rm -f $B/Muttrc $B/doc/muttrc.man \ - $B/doc/manual.sgml $B/doc/manual.txt $B/doc/*.html - -diff: - $(MAKE) -f debian/sys-build.mk make-diff - -unpack: $(STAMP_DIR)/source.make -$(STAMP_DIR)/source.make: - $(MAKE) -f debian/sys-build.mk source.make - # sort the patches list - sort $B/PATCHES > $B/PATCHES.temp - mv $B/PATCHES.temp $B/PATCHES - - # rebuild these files - rm -f $B/Muttrc $B/doc/muttrc.man \ - $B/doc/manual.sgml $B/doc/manual.txt $B/doc/*.html - - # we include some #defines in debian-config.h - echo '#include "debian-config.h"' >> $B/config.h.in - - # do not rebuild these files - touch $B/configure.in $B/aclocal.m4 $B/Makefile.in $B/configure \ - $B/stamp-h.in $B/config.h.in - touch $@ - -configure: $(STAMP_DIR)/configure -$(STAMP_DIR)/configure: $(STAMP_DIR)/source.make - CC=cc ac_cv_path_ISPELL=ispell \ - SENDMAIL=/usr/sbin/sendmail PERL=/usr/bin/perl \ - $(MAKE) -f debian/sys-build.mk source.command SOURCE_CMD=" \ - ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \ - --with-sharedir=/usr/share/mutt --with-docdir=/usr/share/doc \ - --with-mailpath=/var/mail \ - --enable-fcntl --enable-pop --enable-imap \ - --with-mixmaster --with-sasl2 --with-idn \ - --with-curses \ - --with-gnutls \ - --enable-debug \ - --enable-inodesort \ - --enable-compressed \ - --enable-hcache $(HCACHE_WITH_DB) \ - " + ###################### building mutt-patched ###################### + autoreconf --install --include=m4 + -mkdir $(objdir)-patched + cd $(objdir)-patched && \ + env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ + ../configure $(confflags) + + echo '#include "config-debian.h"' >> $(objdir)-patched/config.h + + # we should just "make mutt" here, but that doesn't work yet + cd $(objdir)-patched && $(MAKE) CFLAGS="$(CFLAGS)" + touch $@ -build: $(STAMP_DIR)/build -$(STAMP_DIR)/build: $(STAMP_DIR)/configure $(STAMP_DIR)/source.make - GROFF_NO_SGR=1 \ - $(MAKE) -f debian/sys-build.mk source.command SOURCE_CMD=" \ - make keymap_defs.h all CFLAGS=\"-O2 -g\" \ - " +build build-arch: $(objdir)/build-stamp +$(objdir)/build-stamp: $(objdir)-patched/build-stamp + ###################### building mutt ###################### + QUILT_PATCHES=$(QUILT_PATCH_DIR) quilt --quiltrc /dev/null pop mutt.org + + autoreconf --install --include=m4 + -mkdir $(objdir) + cd $(objdir) && \ + env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ + ../configure $(confflags) + + echo '#include "config-debian.h"' >>$(objdir)/config.h + + cd $(objdir) && $(MAKE) CFLAGS="$(CFLAGS)" + touch $@ -binary-arch: $(STAMP_DIR)/build checkroot - dh_testdir +install: build + ###################### install ###################### dh_clean -k - $(MAKE) -f debian/sys-build.mk source.command SOURCE_CMD=" \ - $(MAKE) install DESTDIR=$D SUBDIRS=\"intl po\" \ - " + cd $(objdir) && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + + cd debian/tmp/usr/share/doc && \ + rm -rf samples/iconv samples/ca-bundle.crt && \ + mv NEWS NEWS.old && \ + mv ChangeLog.old changelog.old && \ + cp $(CURDIR)/UPDATING NEWS + + chmod +x debian/extra/lib/* + chmod +x debian/header.awk + debian/header.awk debian/patches/features/* \ + debian/patches/mutt-patched/* > debian/tmp/README.Patches + + ( sed -e '/## More settings/,$$d' $(objdir)/doc/Muttrc || exit 1 ; \ + cat debian/extra/rc/Muttrc.foot ) > debian/tmp/Muttrc + + ( echo "# GnuPG configuration"; \ + grep '^set' contrib/gpg.rc; \ + echo ) > debian/tmp/gpg.rc + + # temporarily call the binary mutt-patched so dh_strip gets the debug file name right + install -D $(objdir)-patched/mutt debian/mutt-patched/usr/bin/mutt-patched - dh_installdirs -p mutt usr/share/pixmaps usr/lib/mutt/ \ - usr/bin/ usr/share/doc/mutt/html/ +binary binary-arch: install + ###################### binary ###################### + dh_testdir + dh_testroot + + dh_installdirs + dh_install + dh_installman dh_installmenu - dh_installdocs $B/README $B/README.SECURITY $B/README.SSL $B/NEWS \ - $B/doc/manual.txt $B/doc/PGP-Notes.txt extra/README.SMIME - cp $B/doc/*.html $D/usr/share/doc/mutt/html/ - for file in README BUGS TODO; do \ - cp $B/imap/$$file $D/usr/share/doc/mutt/$$file.IMAP; \ - done - # generate README.Patches - for file in $(EXTRA_PATCHES)/*; do \ - mawk -f debian/gen-README.Patches $$file >> \ - $D/usr/share/doc/mutt/README.Patches; \ - done - dh_installexamples \ - $B/contrib/*rc $B/contrib/sample.muttrc-tlr \ - extra/ray.muttrc extra/colors.angdraug - dh_installman \ - $B/doc/mutt.man $B/doc/dotlock.man \ - $B/doc/muttrc.man $B/doc/mbox.man - - install --mode=755 extra/debian-ldap-query extra/mailspell \ - extra/source-muttrc.d $D/usr/lib/mutt/ - cp extra/mutt.xpm $D/usr/share/pixmaps/ - -# some fixes to the package structure - mv $D/usr/bin/pgp* $D/usr/lib/mutt/ - mv $D/usr/share/man/man1/dotlock.1 $D/usr/share/man/man1/mutt_dotlock.1 - rm $D/etc/mime.types $D/usr/bin/muttbug $D/usr/bin/flea - -# I think the default config file with the embedded manual is too big - mv $D/etc/Muttrc $D/usr/share/doc/mutt/examples/ - cp $B/Muttrc.head $D/etc/Muttrc - echo "# GnuPG configuration" >> $D/etc/Muttrc - grep ^set $B/contrib/gpg.rc \ - | sed -e 's#pgpewrap#/usr/lib/mutt/pgpewrap#' \ - | sed -e 's#/usr/bin/gpg#gpg#' \ - >> $D/etc/Muttrc - cat extra/smime-paths.rc extra/source-Muttrc.d.rc >> $D/etc/Muttrc - - dh_installchangelogs $B/ChangeLog - dh_strip - dh_compress - dh_fixperms --exclude=usr/bin/mutt_dotlock + dh_installdocs + dh_installexamples + dh_installchangelogs ChangeLog + install -m644 debian/mutt.lintian $(CURDIR)/debian/mutt/usr/share/lintian/overrides/mutt + + dh_strip --dbg-package=mutt-dbg + rm -rf $(CURDIR)/debian/mutt-dbg/usr/share/doc/mutt-dbg \ + $(CURDIR)/debian/mutt-patched/usr/share/doc/mutt-patched + mv debian/mutt-patched/usr/bin/mutt-patched debian/mutt-patched/usr/bin/mutt + + dh_link + dh_compress --exclude usr/share/doc/mutt/README.Patches + dh_fixperms --exclude usr/bin/mutt_dotlock dh_installdeb dh_shlibdeps dh_gencontrol + dh_md5sums dh_builddeb -binary: binary-arch - -extra-clean: - find -type f \( -name "*.orig" -o -name "*.rej" \) -exec rm -v {} \; +build-indep binary-indep: + @echo "Nothing to do." -checkroot: - test root = "`whoami`" +clean: unpatch + ###################### clean ###################### + dh_testdir + dh_testroot + + # please dpkg-source + rm -f po/*.gmo + touch PATCHES + + # remove build trees + rm -rf $(objdir) $(objdir)-patched + + # remove autotool-generated files so they don't show up in the diff.gz + rm -f configure config.h.in + rm -f Makefile.in contrib/Makefile.in imap/Makefile.in doc/Makefile.in m4/Makefile.in + + # clean PATCHES hunks (blame quilt refresh) + for p in `grep -rl PATCHES debian/patches` ; do perl -wi debian/fix-PATCHES.pl $$p ; done + + dh_clean -.PHONY: binary binary-arch build clean configure checkroot extra-clean +.PHONY: configure build build-arch build-indep clean install binary binary-arch binary-indep patch