Now that autoreconf-dickey is in the archive (kudos to the FTP masters
for blazingly fast processing!), we need to think about the best action.
There are basically two options:

1) Add a README.source file mentioning that a non-standard autoconf
   version is required to regenerate `configure' and tell people to run
   autoreconf-dickey if they should need to patch the build system.

2) Regenerate the `configure' scripts at build time.  In that case, they
   need to be removed in the clean target to prevent spurious changes in
   the Debian diff.

Option 2) is cleaner in principle, but has some small drawbacks, like
the added build dependencies (e.g. bootstrapping a new port requires to
build m4 first, and Ubuntu will have to add autoconf-dickey to main),
and merging a newer upstream patchlevel will generate conflicts (which
are trivial to resolve, however).

I don't have a strong opinion.  As long as we don't actually patch the
build system, 1) is a little easier.  The attached patch would implement
2), tested in pbuilder.

Cheers,
       Sven

>From edf3e4c8985e1a8122697f6f5c477510b6414b34 Mon Sep 17 00:00:00 2001
From: Sven Joachim <[email protected]>
Date: Sat, 18 Feb 2012 18:37:05 +0100
Subject: [PATCH] Regenerate 'configure' scripts at build time

Delete 'configure' scripts in the clean target in debian/rules, and
make sure they are regenerated at build time.
---
 debian/control |    1 +
 debian/rules   |   27 +++++++++++++++++----------
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/debian/control b/debian/control
index 6e0e983..b1e9e66 100644
--- a/debian/control
+++ b/debian/control
@@ -8,6 +8,7 @@ Build-Depends: debhelper (>= 8.1.3),
                g++-multilib [amd64 i386 kfreebsd-amd64 powerpc ppc64 s390 
sparc],
                libgpm-dev [linux-any],
                pkg-config,
+              autoconf-dickey,
 Standards-Version: 3.9.2
 Vcs-Browser: http://git.debian.org/?p=collab-maint/ncurses.git
 Vcs-Git: git://git.debian.org/collab-maint/ncurses.git
diff --git a/debian/rules b/debian/rules
index a368165..d3466b3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -151,7 +151,13 @@ badterminfo = 5/5250 b/bterm i/iterm i/iterm-am 
i/iterm-color \
 # 64 bit libraries), so force the libgpm soname to the correct value.
 export cf_cv_gpm_soname=libgpm.so.2
 
-$(objdir)/config.status:
+configure: configure.in aclocal.m4
+       autoreconf-dickey
+
+test/configure: test/configure.in test/aclocal.m4
+       autoreconf-dickey
+
+$(objdir)/config.status: configure
        test -d $(objdir) || mkdir $(objdir)
        cd $(objdir) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
                $(CONFARGS) \
@@ -159,7 +165,7 @@ $(objdir)/config.status:
                --with-install-prefix=$(fulltempdir) \
                --enable-overwrite --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
 
-$(objdir-static)/config.status:
+$(objdir-static)/config.status: configure
        test -d $(objdir-static) || mkdir $(objdir-static)
        cd $(objdir-static) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
                $(CONFARGS) \
@@ -168,7 +174,7 @@ $(objdir-static)/config.status:
                --with-install-prefix=$(fulltempdir) \
                --enable-overwrite --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
 
-$(objdir-32)/config.status:
+$(objdir-32)/config.status: configure
        test -d $(objdir-32) || mkdir $(objdir-32)
 
        cd $(objdir-32) && CFLAGS="$(CFLAGS)" CC="gcc -m32" \
@@ -181,7 +187,7 @@ $(objdir-32)/config.status:
                --with-install-prefix=$(fulltempdir) \
                --enable-overwrite --libdir=$(usr_lib32)
 
-$(objdir-64)/config.status:
+$(objdir-64)/config.status: configure
        test -d $(objdir-64) || mkdir $(objdir-64)
 
        # Force necessary configure checks which do not work when
@@ -198,7 +204,7 @@ $(objdir-64)/config.status:
                --with-install-prefix=$(fulltempdir) \
                --enable-overwrite --libdir=/usr/lib64
 
-$(objdir-debug)/config.status:
+$(objdir-debug)/config.status: configure
        test -d $(objdir-debug) || mkdir $(objdir-debug)
        cd $(objdir-debug) && \
                CFLAGS="$(CFLAGS) -DTRACE" $(srcdir)/configure \
@@ -206,7 +212,7 @@ $(objdir-debug)/config.status:
                --with-install-prefix=$(fulltempdir) \
                --enable-overwrite --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
 
-$(wobjdir)/config.status:
+$(wobjdir)/config.status: configure
        test -d $(wobjdir) || mkdir $(wobjdir)
        cd $(wobjdir) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
                $(CONFARGS) \
@@ -214,7 +220,7 @@ $(wobjdir)/config.status:
                --disable-overwrite --enable-widec \
                --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
 
-$(wobjdir-static)/config.status:
+$(wobjdir-static)/config.status: configure
        test -d $(wobjdir-static) || mkdir $(wobjdir-static)
        cd $(wobjdir-static) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
                $(CONFARGS) \
@@ -224,7 +230,7 @@ $(wobjdir-static)/config.status:
                --disable-overwrite --enable-widec \
                --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
 
-$(wobjdir-debug)/config.status:
+$(wobjdir-debug)/config.status: configure
        test -d $(wobjdir-debug) || mkdir $(wobjdir-debug)
        cd $(wobjdir-debug) && \
                CFLAGS="$(CFLAGS) -DTRACE" $(srcdir)/configure \
@@ -233,7 +239,7 @@ $(wobjdir-debug)/config.status:
                --disable-overwrite --enable-widec \
                --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
 
-$(wobjdir-32)/config.status:
+$(wobjdir-32)/config.status: configure
        test -d $(wobjdir-32) || mkdir $(wobjdir-32)
 
        cd $(wobjdir-32) && CFLAGS="$(CFLAGS)" CC="gcc -m32" \
@@ -247,7 +253,7 @@ $(wobjdir-32)/config.status:
                --disable-overwrite --enable-widec \
                --libdir=$(usr_lib32)
 
-$(objdir-test)/config.status: build-wide
+$(objdir-test)/config.status: build-wide test/configure
        test -d $(objdir-test) || mkdir $(objdir-test)
        cd $(objdir-test) && CFLAGS="$(CFLAGS)" $(srcdir)/test/configure \
                $(CONFARGS-TEST)
@@ -318,6 +324,7 @@ clean:
        rm -rf $(wobjdir-debug)
        rm -rf $(objdir-test)
        rm -f $(autogen-files)
+       rm -f configure test/configure Ada95/configure
        dh_clean
 
 install: build
-- 
1.7.9

Reply via email to