maint-mode: fix botched configure messages
authorStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 29 Oct 2011 10:15:59 +0000 (12:15 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 3 Nov 2011 10:26:10 +0000 (11:26 +0100)
This change fixes automake bug#9890.

* m4/maintainer.m4 (AM_MAINTAINER_MODE): Fix the "checking ..."
configure message related to the enabling/disabling of maintainer
mode.
* tests/help-maintainer.test: Renamed ...
* tests/maintmode-configure-msg.test: ... to this, and extended
to cover the fixed bug.  Also, since we are at it, make grepping
of configure help screens stricter, and throw in some few other
changes to reduce code duplication and enhance readability.
* tests/Makefile.am (TESTS): Update.
* THANKS: Update with Zack's new e-mail address.

Report and initial patch by Zack Weinberg, test cases added by
Stefano Lattarini.

ChangeLog
THANKS
m4/maintainer.m4
tests/Makefile.am
tests/Makefile.in
tests/help-maintainer.test [deleted file]
tests/maintmode-configure-msg.test [new file with mode: 0755]

index 39c661c..74e27dd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2011-11-03  Zack Weinberg <zackw@panix.com>  (tiny change)
+           Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       maint-mode: fix botched configure messages
+       This change fixes automake bug#9890.
+       * m4/maintainer.m4 (AM_MAINTAINER_MODE): Fix the "checking ..."
+       configure message related to the enabling/disabling of maintainer
+       mode.
+       * tests/help-maintainer.test: Renamed ...
+       * tests/maintmode-configure-msg.test: ... to this, and extended
+       to cover the fixed bug.  Also, since we are at it, make grepping
+       of configure help screens stricter, and throw in some few other
+       changes to reduce code duplication and enhance readability.
+       * tests/Makefile.am (TESTS): Update.
+       * THANKS: Update with Zack's new e-mail address.
+       Report and initial patch by Zack Weinberg, test cases added by
+       Stefano Lattarini.
+
 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
 
        deps: partially revert commit `v1.11-512-geeee551'
diff --git a/THANKS b/THANKS
index eae683f..37f7cce 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -366,7 +366,7 @@ William Pursell             bill.pursell@gmail.com
 William S Fulton       wsf@fultondesigns.co.uk
 Yann Droneaud          ydroneaud@meuh.eu.org
 Younes Younes          younes@cs.tu-berlin.de
-Zack Weinberg          zack@codesourcery.com
+Zack Weinberg          zackw@panix.com
 Zbigniew JÄ™drzejewski-Szmek zbyszek@in.waw.pl
 Zoltan Rado            z.rado@chello.hu
 
index 0b54e67..085e96c 100644 (file)
@@ -1,8 +1,8 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -22,7 +22,7 @@ AC_DEFUN([AM_MAINTAINER_MODE],
        [disable], [m4_define([am_maintainer_other], [enable])],
        [m4_define([am_maintainer_other], [enable])
         m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
 [  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
index c16eb9f..dfa9781 100644 (file)
@@ -422,7 +422,6 @@ help-depend2.test \
 help-dmalloc.test \
 help-init.test \
 help-lispdir.test \
-help-maintainer.test \
 help-multilib.test \
 help-python.test \
 help-regex.test \
@@ -548,6 +547,7 @@ lzma.test \
 m4-inclusion.test \
 maintclean.test \
 maintclean-vpath.test \
+maintmode-configure-msg.test \
 make.test \
 makej.test \
 makej2.test \
index 65e8d7f..248b6ba 100644 (file)
@@ -706,7 +706,6 @@ help-depend2.test \
 help-dmalloc.test \
 help-init.test \
 help-lispdir.test \
-help-maintainer.test \
 help-multilib.test \
 help-python.test \
 help-regex.test \
@@ -832,6 +831,7 @@ lzma.test \
 m4-inclusion.test \
 maintclean.test \
 maintclean-vpath.test \
+maintmode-configure-msg.test \
 make.test \
 makej.test \
 makej2.test \
diff --git a/tests/help-maintainer.test b/tests/help-maintainer.test
deleted file mode 100755 (executable)
index 6933d0c..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Make sure that our macro `AM_MAINTAINER_MODE' adds proper text to
-# the configure help screen.
-
-. ./defs || Exit 1
-
-set -e
-
-cat > configure.in <<END
-AC_INIT([$me], [1.0])
-AM_MAINTAINER_MODE
-END
-
-cat configure.in
-$ACLOCAL
-$AUTOCONF --force
-./configure --help >stdout || { cat stdout; Exit 1; }
-cat stdout
-$EGREP '^  *--enable-maintainer-mode( |$)' stdout
-$FGREP ' enable make rules' stdout
-
-rm -rf autom4te*.cache # just to be sure
-sed 's/\(AM_MAINTAINER_MODE\).*/\1([disable])/' configure.in >t
-mv -f t configure.in
-
-cat configure.in
-$ACLOCAL
-$AUTOCONF --force
-./configure --help >stdout || { cat stdout; Exit 1; }
-cat stdout
-$EGREP '^  *--enable-maintainer-mode( |$)' stdout
-$FGREP ' enable make rules' stdout
-
-rm -rf autom4te*.cache # just to be sure
-sed 's/\(AM_MAINTAINER_MODE\).*/\1([enable])/' configure.in >t
-mv -f t configure.in
-
-cat configure.in
-$ACLOCAL
-$AUTOCONF --force
-./configure --help >stdout || { cat stdout; Exit 1; }
-cat stdout
-$EGREP '^  *--disable-maintainer-mode( |$)' stdout
-$FGREP ' disable make rules' stdout
-
-:
diff --git a/tests/maintmode-configure-msg.test b/tests/maintmode-configure-msg.test
new file mode 100755 (executable)
index 0000000..5771392
--- /dev/null
@@ -0,0 +1,79 @@
+#! /bin/sh
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Make sure that our macro `AM_MAINTAINER_MODE' adds proper text to
+# the configure help screen.  Also make sure the "checking ..." messages
+# related to the enabling/disabling of maintainer mode are correct (see
+# automake bug#9890).
+
+. ./defs || Exit 1
+
+set -e
+
+set_maintmode ()
+{
+  rm -rf autom4te*.cache # Just to be sure not to use a stale cache.
+  echo "AC_INIT([$me], [1.0])" > configure.in
+  case $1 in
+    DEFAULT) echo AM_MAINTAINER_MODE;;
+          *) echo "AM_MAINTAINER_MODE([$*])";;
+  esac >> configure.in
+}
+
+check_configure_message_with ()
+{
+  answer=$1; shift
+  ./configure ${1+"$@"} >stdout || { cat stdout; Exit 1; }
+  cat stdout
+  grep "^checking whether to enable maintainer-specific.*\\.\\.\\. $answer$" stdout
+  test `grep -c 'checking.*maint' stdout` -eq 1
+  :
+}
+
+set_maintmode "DEFAULT"
+
+$ACLOCAL
+
+$AUTOCONF --force
+
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^  *--enable-maintainer-mode.* enable make rules' stdout
+
+check_configure_message_with "no"
+check_configure_message_with "yes" --enable-maintainer-mode
+
+set_maintmode "disable"
+
+$AUTOCONF --force
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^  *--enable-maintainer-mode.* enable make rules' stdout
+
+check_configure_message_with "no"
+check_configure_message_with "yes" --enable-maintainer-mode
+
+set_maintmode "enable"
+
+$AUTOCONF --force
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^  *--disable-maintainer-mode.* disable make rules' stdout
+
+check_configure_message_with "yes"
+check_configure_message_with "no" --disable-maintainer-mode
+
+: