include /usr/share/quilt/quilt.make
+###################### user serviceable parts ######################
+
+###
+# build a separate mutt-patched package?
+BUILD_PATCHED := yes
###
-# Uncomment one of these if you're rebuilding using them instead of libdb4.X
-# HCACHE_DB := gdbm
+# header cache backend
+# HCACHE_DB := bdb
+HCACHE_DB := gdbm
# HCACHE_DB := qdbm
###
+# GPGME backend
+GPGME := --enable-gpgme
+###
+
+###################### variables ######################
+
+ifneq ($(BUILD_PATCHED),yes)
+export DH_OPTIONS := -Nmutt-patched
+endif
# Configure arguments
-hcache_db := --without-gdbm --without-qdbm
+ifeq ($(HCACHE_DB),bdb)
+ hcache_db := --without-gdbm --without-qdbm --without-tokyocabinet
+endif
ifeq ($(HCACHE_DB),gdbm)
- hcache_db := --without-qdbm --without-bdb
+ hcache_db := --without-qdbm --without-bdb --without-tokyocabinet
endif
ifeq ($(HCACHE_DB),qdbm)
- hcache_db := --without-gdbm --without-bdb
+ hcache_db := --without-gdbm --without-bdb --without-tokyocabinet
endif
confflags = --prefix=/usr \
--enable-debug \
--enable-fcntl \
--enable-hcache \
- --enable-gpgme \
+ $(GPGME) \
--enable-imap \
--enable-smtp \
--enable-inodesort \
\
--with-curses \
--with-gnutls \
+ --with-gss \
--with-idn \
--with-mixmaster \
--with-sasl \
# Directory to make the build on
objdir = $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)
-configure: $(objdir)/configure-stamp
-$(objdir)/configure-stamp: $(QUILT_STAMPFN)
+###################### main ######################
+
+$(objdir)-patched/build-stamp: $(QUILT_STAMPFN)
dh_testdir
+ dh_clean
+ -mkdir $(objdir)-patched
+
+ifeq ($(BUILD_PATCHED),yes)
+ ###################### building mutt-patched ######################
+ autoreconf --install --include=m4
+ cd $(objdir)-patched && \
+ env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
+ ../configure $(confflags)
- ln -sf /usr/share/misc/config.sub .
- ln -sf /usr/share/misc/config.guess .
+ echo '#include "config-debian.h"' >> $(objdir)-patched/config.h
- # do not rebuild these files
- touch configure.in aclocal.m4 Makefile.in configure config.h.in
+ # we should just "make mutt" here, but that doesn't work yet
+ cd $(objdir)-patched && $(MAKE) CFLAGS="$(CFLAGS)"
+endif
+
+ touch $@
+
+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)" \
echo '#include "config-debian.h"' >>$(objdir)/config.h
- touch $@
-
-build build-arch: $(objdir)/build-stamp
-$(objdir)/build-stamp: $(objdir)/configure-stamp
cd $(objdir) && $(MAKE) CFLAGS="$(CFLAGS)"
+
touch $@
-install: debian/tmp/install-stamp
-debian/tmp/install-stamp: $(objdir)/build-stamp
+install: build
+ ###################### install ######################
dh_testdir
dh_testroot
- dh_clean
+ dh_prep
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/tmp/README.Patches
+ debian/header.awk debian/patches/features/* \
+ debian/patches/mutt-patched/* > debian/tmp/README.Patches
- ( sed -e '/## More settings/,$$d' $(objdir)/Muttrc || exit 1 ; \
+ ( 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
- touch $@
-
-binary binary-arch: build install
- dh_testdir
- dh_testroot
+ifeq ($(BUILD_PATCHED),yes)
+ # 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
+endif
+ # reportbug driver
dh_installdirs
+ install -m644 debian/bug/control $(CURDIR)/debian/mutt/usr/share/bug/mutt
+ install debian/bug/script $(CURDIR)/debian/mutt/usr/share/bug/mutt
+
+binary binary-arch: install
+ ###################### binary ######################
dh_install
dh_installman
dh_installmenu
+ dh_installmime
dh_installdocs
dh_installexamples
dh_installchangelogs ChangeLog
+ -dh_lintian
+
+ 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
+ifeq ($(BUILD_PATCHED),yes)
+ mv debian/mutt-patched/usr/bin/mutt-patched debian/mutt-patched/usr/bin/mutt
+endif
dh_link
- dh_strip
dh_compress --exclude usr/share/doc/mutt/README.Patches
dh_fixperms --exclude usr/bin/mutt_dotlock
dh_installdeb
dh_md5sums
dh_builddeb
-binary-indep:
+build-indep binary-indep:
@echo "Nothing to do."
clean: unpatch
+ ###################### clean ######################
dh_testdir
dh_testroot
# please dpkg-source
rm -f po/*.gmo
- rm -f config.guess config.sub
touch PATCHES
- # remove build tree
- rm -rf $(objdir)
+ # 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