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 39c661c67064094afae027767e50662efeecefa1..74e27dddff3fc7454de955bec633ed6e908e3765 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 eae683fef6ee98a0929be762313363f2555e5327..37f7cce0ef8e4a9052f6b78e3b42412c136fa17b 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 0b54e67edb57fd06893a75f3e424e35a3ddb9c97..085e96cdf5f24a4c0ca1e3f0d41451dae88670e4 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 c16eb9fbd968ab9dd6d855fec0617183d2fb26a2..dfa97812f04cdcf8b1fd0bb11c4ea3ee31729ab6 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 65e8d7fa1a94041d21d9990aa27276372993a2d9..248b6ba1cffd2b50f12c91a3262ef3006339ca6f 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
+
+: