automake-ng
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-NG] [PATCH] [ng] maintainer-mode: remove it altogether


From: Stefano Lattarini
Subject: [Automake-NG] [PATCH] [ng] maintainer-mode: remove it altogether
Date: Thu, 9 Aug 2012 14:13:57 +0200

The best explanation for this move is given by excerpts from the
Automake manual itself:

    Several years ago François Pinard pointed out several arguments
    against this AM_MAINTAINER_MODE macro.  Most of them relate to
    insecurity.  By removing dependencies you get non-dependable builds:
    changes to sources files can have no effect on generated files and
    this can be very confusing when unnoticed.  He adds that security
    shouldn't be reserved to maintainers (what '--enable-maintainer-mode'
    suggests), on the contrary.  If one user has to modify a Makefile.am,
    then either Makefile.in should be updated or a error should be output
    (this is what Automake uses the 'missing' script for) but the last
    thing you want is that nothing happens and the user doesn't notice
    it (which is exactly what happens when rebuild rules are disabled by
    AM_MAINTAINER_MODE).

    Jim Meyering, the inventor of the AM_MAINTAINER_MODE macro was swayed
    by François's arguments, and got rid of AM_MAINTAINER_MODE in all of
    his packages.

Since in Automake-NG we are breaking backward-compatibility in several
ways already, this is a good occasion to get rid of another obsolescent,
historical-reasons-only, more-dangerous-than-useful feature.

Admittedly, the manual went on saying:

    Still many people continue to use AM_MAINTAINER_MODE, because it
    helps them working on projects where all files are kept under
    version control, and because missing isn't enough if you have the
    wrong version of the tools.

But then, the right solutions for using lies not in the use of the
brittle AM_MAINTAINER_MODE macro; such solutions are indeed already
explained in another section of the manual (in the section "CVS and
generated files"):

    In distributed development, developers are likely to have different
    version of the maintainer tools installed.  In this case rebuilds
    triggered by timestamp lossage will lead to spurious changes to
    generated files.  There are some popular solutions to this:

    - All developers should use the same versions, so that the rebuilt
      files are identical to files in CVS.  (This starts to be difficult
      when each project you work on uses different versions).

    - Or people use a script to fix the timestamp after a checkout (the
      GCC folks have such a script).

The use of such a "timestamp-fixing" script is also suggested earlier
in the section, in the discussion about the merits and limits of the
'missing' script.

* NG-NEWS: Update.
* doc/automake-ng.texi: Likewise; among the other things ...
(maintainer-mode): ... rename this node ...
(maintainer tools): ... like this.
* m4/maintainer.m4: Delete.
* Makefile.am (dist_automake_ac_DATA): Delete.
* automake.in ($seen_maint_mode): Remove this global variable.
(scan_autoconf_trace): Don't trace 'AM_MAINTAINER_MODE'.
(read_am_file): Don't special-handle '@MAINT@' substitutions;
which were an anachronism anyway, according to pre-existing
comments.
(preprocess_file): Drop 'MAINTAINER-MODE' transform.
* lib/am/configure.am: Remove all uses of the %MAINTAINER-MODE%
transform.
* lib/am/remake-hdr.am: Likewise.
* lib/am/texi-vars.am: Likewise.
* lib/am/lex.am, lib/am/yacc.am: Likewise, and simplify dropping
the definition and use of (respectively) '$(am.lex.maybe-skip)'
and '$(am.yacc.maybe-skip)'.
* t/condlib.sh (configure.ac): Drop AM_MAINTAINER_MODE use.
* t/flavor.sh: Likewise, and drop '--enable-maintainer-mode'
from the './configure' invocation.
* t/lex-pr204.sh: Remove as obsolete.
* t/yacc-pr204.sh: Likewise.
* t/maintmode-configure-msg.sh: Likewise.
* t/mmode.sh: Likewise.
* t/mmodely.sh: Likewise.
* t/remake5.sh: Likewise.
* t/lex-nodist.sh: Fix header comments to account for some of
the deleted tests.
* t/yacc-nodist.sh: Likewise.

Signed-off-by: Stefano Lattarini <address@hidden>
---
 Makefile.am                  |  1 -
 NG-NEWS                      |  7 ++++
 automake.in                  | 18 +-------
 doc/automake-ng.texi         | 99 ++++----------------------------------------
 lib/am/configure.am          |  9 ++--
 lib/am/lex.am                | 12 +-----
 lib/am/remake-hdr.am         |  2 +-
 lib/am/texi-vers.am          |  4 +-
 lib/am/yacc.am               | 26 +-----------
 m4/maintainer.m4             | 35 ----------------
 t/condlib.sh                 |  1 -
 t/flavor.sh                  |  3 +-
 t/lex-nodist.sh              |  6 +--
 t/lex-pr204.sh               | 88 ---------------------------------------
 t/maintmode-configure-msg.sh | 72 --------------------------------
 t/mmode.sh                   | 64 ----------------------------
 t/mmodely.sh                 | 95 ------------------------------------------
 t/remake5.sh                 | 74 ---------------------------------
 t/yacc-nodist.sh             |  6 +--
 t/yacc-pr204.sh              | 83 -------------------------------------
 20 files changed, 33 insertions(+), 672 deletions(-)
 delete mode 100644 m4/maintainer.m4
 delete mode 100755 t/lex-pr204.sh
 delete mode 100755 t/maintmode-configure-msg.sh
 delete mode 100755 t/mmode.sh
 delete mode 100755 t/mmodely.sh
 delete mode 100755 t/remake5.sh
 delete mode 100755 t/yacc-pr204.sh

diff --git a/Makefile.am b/Makefile.am
index 1c26bc3..05a5b90 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -245,7 +245,6 @@ dist_automake_ac_DATA = \
   m4/install-sh.m4 \
   m4/lex.m4 \
   m4/lispdir.m4 \
-  m4/maintainer.m4 \
   m4/minuso.m4 \
   m4/missing.m4 \
   m4/options.m4 \
diff --git a/NG-NEWS b/NG-NEWS
index 54e3819..1d15d39 100644
--- a/NG-NEWS
+++ b/NG-NEWS
@@ -283,6 +283,13 @@ Obsolete Features Removed
   removed altogether.  Exporting AUTOMAKE_JOBS to in the environment of
   Automake will now have no effect.
 
+* Support for "maintainer mode" has been removed, and rules to remake
+  maintainer-specific files are now always active.  The 'missing' script
+  should till take care of warning users which find themselves in the
+  situation of having to rebuild some maintainer-specific files but
+  missing the relevant maintainer-specific tools (or having too old
+  versions thereof).
+
 
 Source Files with Unknown Extensions
 ====================================
diff --git a/automake.in b/automake.in
index f7bfea3..fe77d11 100644
--- a/automake.in
+++ b/automake.in
@@ -370,9 +370,6 @@ my $seen_canonical = 0;
 # Location of that macro.
 my $canonical_location;
 
-# Where AM_MAINTAINER_MODE appears.
-my $seen_maint_mode;
-
 # Actual version we've seen.
 my $package_version = '';
 
@@ -4244,7 +4241,6 @@ sub scan_autoconf_traces ($)
                AM_GNU_GETTEXT => 0,
                AM_GNU_GETTEXT_INTL_SUBDIR => 0,
                AM_INIT_AUTOMAKE => 0,
-               AM_MAINTAINER_MODE => 0,
                AM_PROG_AR => 0,
                AM_PROG_CC_C_O => 0,
                _AM_SUBST_NOTMAKE => 1,
@@ -4434,10 +4430,6 @@ EOF
              exit $exit_code if process_global_option_list (@opts);
            }
        }
-      elsif ($macro eq 'AM_MAINTAINER_MODE')
-       {
-         $seen_maint_mode = $where;
-       }
       elsif ($macro eq 'AM_PROG_AR')
        {
          $seen_ar = $where;
@@ -5411,11 +5403,6 @@ sub read_am_file ($$)
        chomp;
        $_ .= "\n";
 
-       # Don't look at MAINTAINER_MODE_TRUE here.  That shouldn't be
-       # used by users.  @MAINT@ is an anachronism now.
-       $_ =~ s/address@hidden@//g
-           unless $seen_maint_mode;
-
        my $new_saw_bk = check_trailing_slash ($where, $_);
 
        if (/$IGNORE_PATTERN/o)
@@ -5717,10 +5704,7 @@ sub preprocess_file ($%)
 
   # Complete %transform with global options.
   # Note that %transform goes last, so it overrides global options.
-  %transform = ( 'MAINTAINER-MODE'
-                => $seen_maint_mode ? subst ('MAINTAINER_MODE_TRUE') : '',
-
-                'XZ'          => !! option 'dist-xz',
+  %transform = ( 'XZ'          => !! option 'dist-xz',
                 'LZMA'        => !! option 'dist-lzma',
                 'LZIP'        => !! option 'dist-lzip',
                 'BZIP2'       => !! option 'dist-bzip2',
diff --git a/doc/automake-ng.texi b/doc/automake-ng.texi
index 42289ed..8bee89e 100644
--- a/doc/automake-ng.texi
+++ b/doc/automake-ng.texi
@@ -372,7 +372,7 @@ When Automake Isn't Enough
 Frequently Asked Questions about Automake
 
 * CVS::                         CVS and generated files
-* maintainer-mode::             missing and AM_MAINTAINER_MODE
+* maintainer tools::            The missing script and maintainer tools
 * Wildcards::                   Why doesn't Automake support wildcards?
 * Limitations on File Names::   Limitations on source and installed file names
 * Errors with distclean::       Files left in build directory after distclean
@@ -3084,17 +3084,6 @@ This macro specifies that the @file{intl/} subdirectory 
is to be built,
 even if the @code{AM_GNU_GETTEXT} macro was invoked with a first argument
 of @samp{external}.
 
address@hidden AM_MAINTAINER_MODE(@ovar{default-mode})
address@hidden --enable-maintainer-mode
address@hidden --disable-maintainer-mode
-This macro adds an @option{--enable-maintainer-mode} option to
address@hidden  If this is used, @command{automake} will cause
-``maintainer-only'' rules to be turned off by default in the
-generated @file{Makefile.in}s, unless @var{default-mode} is
address@hidden  This macro defines the @code{MAINTAINER_MODE}
-conditional, which you can use in your own @file{Makefile.am}.
address@hidden
-
 @item AM_SUBST_NOTMAKE(@var{var})
 Prevent Automake from defining a variable @var{var}, even if it is
 substituted by @command{config.status}.  Normally, Automake defines a
@@ -4021,8 +4010,8 @@ Find a maintainer tool @var{program} and define the 
@var{name}
 environment variable with its location.  If @var{program} is not
 detected, then @var{name} will instead invoke the @command{missing}
 script, in order to give useful advice to the user about the missing
-maintainer tool.  @xref{maintainer-mode}, for more information on when
-the @command{missing} script is appropriate.
+maintainer tool.  @xref{maintainer tools}, for more information on
+when the @command{missing} script is appropriate.
 
 @item AM_SILENT_RULES
 @acindex AM_SILENT_RULES
@@ -6158,10 +6147,6 @@ When @command{lex} is invoked, it is passed 
@code{AM_LFLAGS} and
 @code{LFLAGS}.  The latter is a user variable and the former is
 intended for the @file{Makefile.am} author.
 
-When @code{AM_MAINTAINER_MODE} (@pxref{maintainer-mode}) is used, the
-rebuild rule for distributed Yacc and Lex sources are only used when
address@hidden is enabled, or when the files have been erased.
-
 @cindex @command{ylwrap}
 @cindex @command{yacc}, multiple parsers
 @cindex Multiple @command{yacc} parsers
@@ -9786,10 +9771,6 @@ to this by writing an @code{installcheck-local} rule.
 Automake generates rules to automatically rebuild @file{Makefile}s,
 @file{configure}, and other derived files like @file{Makefile.in}.
 
address@hidden AM_MAINTAINER_MODE
-If you are using @code{AM_MAINTAINER_MODE} in @file{configure.ac}, then
-these automatic rebuilding rules are only enabled in maintainer mode.
-
 @vindex CONFIG_STATUS_DEPENDENCIES
 @vindex CONFIGURE_DEPENDENCIES
 @cindex @file{version.sh}, example
@@ -11394,7 +11375,7 @@ lists.
 
 @menu
 * CVS::                         CVS and generated files
-* maintainer-mode::             missing and AM_MAINTAINER_MODE
+* maintainer tools::            The missing script and maintainer tools
 * Wildcards::                   Why doesn't Automake support wildcards?
 * Limitations on File Names::   Limitations on source and installed file names
 * Errors with distclean::       Files left in build directory after distclean
@@ -11485,7 +11466,7 @@ inaccurate.  Some rebuild rules will be triggered and 
attempt to
 run developer tools such as @command{autoconf} or @command{automake}.
 
 Calls to such tools are all wrapped into a call to the @command{missing}
-script discussed later (@pxref{maintainer-mode}), so that the user will
+script discussed later (@pxref{maintainer tools}), so that the user will
 see more descriptive warnings about missing or out-of-date tools, and
 possible suggestions about how to obtain them, rather than just some
 ``command not found'' error, or (worse) some obscure message from some
@@ -11524,7 +11505,7 @@ touch doc/*.info
 In distributed development, developers are likely to have different
 version of the maintainer tools installed.  In this case rebuilds
 triggered by timestamp lossage will lead to spurious changes
-to generated files.  There are several solutions to this:
+to generated files.  There are some popular solutions to this:
 
 @itemize
 @item
@@ -11534,10 +11515,6 @@ project you work on uses different versions.)
 @item
 Or people use a script to fix the timestamp after a checkout (the GCC
 folks have such a script).
address@hidden
-Or @file{configure.ac} uses @code{AM_MAINTAINER_MODE}, which will
-disable all of these rebuild rules by default.  This is further discussed
-in @ref{maintainer-mode}.
 @end itemize
 
 @item
@@ -11600,14 +11577,14 @@ concerns about version mismatch between developers' 
tools.  The
 Gettext manual has a section about this, see @ref{CVS Issues, CVS
 Issues, Integrating with CVS, gettext, GNU gettext tools}.
 
address@hidden maintainer-mode
address@hidden @command{missing} and @code{AM_MAINTAINER_MODE}
address@hidden maintainer tools
address@hidden The @command{missing} script and maintainer tools
 
 @subheading @command{missing}
 @cindex @command{missing}, purpose
 
 The @command{missing} script is a wrapper around several maintainer
-tools, designed to warn users if a maintainer tool is required but
+tools, designed to warn users if one of them is required but
 missing.  Typical maintainer tools are @command{autoconf},
 @command{automake}, @command{bison}, etc.  Because file generated by
 these tools are shipped with the other sources of a package, these
@@ -11625,64 +11602,6 @@ tool it attempted to use seems too old (be warned that 
diagnosing this
 correctly is typically more difficult that detecting missing tools, and
 requires cooperation from the tool itself, so it won't always work).
 
-If the required tool is installed, @command{missing} will run it and
-won't attempt to continue after failures.  This is correct during
-development: developers love fixing failures.  However, users with
-missing or too old maintainer tools may get an error when the rebuild
-rule is spuriously triggered, halting the build.  This failure to let
-the build continue is one of the arguments of the
address@hidden advocates.
-
address@hidden @code{AM_MAINTAINER_MODE}
address@hidden @code{AM_MAINTAINER_MODE}, purpose
address@hidden AM_MAINTAINER_MODE
-
address@hidden allows you to choose whether the so called
-"rebuild rules" should be enabled or disabled.  With
address@hidden([enable])}, they are enabled by default,
-otherwise they are disabled by default.  In the latter case, if
-you have @code{AM_MAINTAINER_MODE} in @file{configure.ac}, and run
address@hidden/configure && make}, then @command{make} will *never* attempt to
-rebuild @file{configure}, @file{Makefile.in}s, Lex or Yacc outputs, etc.
-I.e., this disables build rules for files that are usually distributed
-and that users should normally not have to update.
-
-The user can override the default setting by passing either
address@hidden or @samp{--disable-maintainer-mode}
-to @command{configure}.
-
-People use @code{AM_MAINTAINER_MODE} either because they do not want their
-users (or themselves) annoyed by timestamps lossage (@pxref{CVS}), or
-because they simply can't stand the rebuild rules and prefer running
-maintainer tools explicitly.
-
address@hidden also allows you to disable some custom build
-rules conditionally.  Some developers use this feature to disable
-rules that need exotic tools that users may not have available.
-
-Several years ago Fran@,{c}ois Pinard pointed out several arguments
-against this @code{AM_MAINTAINER_MODE} macro.  Most of them relate to
-insecurity.  By removing dependencies you get non-dependable builds:
-changes to sources files can have no effect on generated files and this
-can be very confusing when unnoticed.  He adds that security shouldn't
-be reserved to maintainers (what @option{--enable-maintainer-mode}
-suggests), on the contrary.  If one user has to modify a
address@hidden, then either @file{Makefile.in} should be updated
-or a warning should be output (this is what Automake uses
address@hidden for) but the last thing you want is that nothing
-happens and the user doesn't notice it (this is what happens when
-rebuild rules are disabled by @code{AM_MAINTAINER_MODE}).
-
-Jim Meyering, the inventor of the @code{AM_MAINTAINER_MODE} macro was
-swayed by Fran@,{c}ois's arguments, and got rid of
address@hidden in all of his packages.
-
-Still many people continue to use @code{AM_MAINTAINER_MODE}, because
-it helps them working on projects where all files are kept under version
-control, and because @command{missing} isn't enough if you have the
-wrong version of the tools.
-
-
 @node Wildcards
 @section Why doesn't Automake support wildcards?
 @cindex wildcards
diff --git a/lib/am/configure.am b/lib/am/configure.am
index 67cad8d..bc9c259 100644
--- a/lib/am/configure.am
+++ b/lib/am/configure.am
@@ -19,8 +19,9 @@
 ## --------------------- ##
 
 ## This rule remakes the Makefile.in.
-$(am.relpath.makefile.in): %MAINTAINER-MODE% $(am.relpath.makefile.am) \
-                           %MAKEFILE-IN-DEPS% $(am.remake.configure-deps)
+$(am.relpath.makefile.in): $(am.relpath.makefile.am) \
+                          $(am.remake.configure-deps) \
+                           %MAKEFILE-IN-DEPS%
 ## If configure.ac or one of configure's dependencies has changed, all
 ## Makefile.in are to be updated; it is then more efficient to run
 ## automake on all the Makefiles at once.  It also allow Automake to be
@@ -91,7 +92,7 @@ $(top_builddir)/config.status: $(top_srcdir)/configure 
$(CONFIG_STATUS_DEPENDENC
 ?TOPDIR_P?     $(SHELL) ./config.status --recheck
 ?!TOPDIR_P?    cd $(top_builddir) && $(MAKE) .am/nil
 
-$(top_srcdir)/configure: %MAINTAINER-MODE% $(am.remake.configure-deps)
+$(top_srcdir)/configure: $(am.remake.configure-deps)
 ?TOPDIR_P?     cd $(srcdir) && $(AUTOCONF)
 ?!TOPDIR_P?    cd $(top_builddir) && $(MAKE) .am/nil
 
@@ -108,7 +109,7 @@ $(top_srcdir)/configure: %MAINTAINER-MODE% 
$(am.remake.configure-deps)
 ## we should hopefully be able to get rid of it in a not-so-distant
 ## future.
 if %?REGEN-ACLOCAL-M4%
-$(am.remake.aclocal-m4): %MAINTAINER-MODE% $(am.remake.aclocal-m4-deps)
+$(am.remake.aclocal-m4): $(am.remake.aclocal-m4-deps)
 ?TOPDIR_P?     cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 ?!TOPDIR_P?    cd $(top_builddir) && $(MAKE) .am/nil
 
diff --git a/lib/am/lex.am b/lib/am/lex.am
index 7d414f5..823fd28 100644
--- a/lib/am/lex.am
+++ b/lib/am/lex.am
@@ -14,16 +14,8 @@
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-## See the comment about am.yacc.maybe-skip in yacc.am.
-if %?MAINTAINER-MODE%
-if %?FIRST%
address@hidden@am.lex.maybe-skip = test -f $@ ||
-endif %?FIRST%
-endif %?MAINTAINER-MODE%
-
 ?GENERIC?%%DERIVED-EXT%: %%EXT%
 ?!GENERIC?%OBJ%: %SOURCE%
        %SILENT%$(am.cmd.ensure-target-dir-exists)
-?GENERIC?      %VERBOSE%$(am.lex.maybe-skip) \
-?!GENERIC??DIST_SOURCE?        %VERBOSE%$(am.lex.maybe-skip) \
-       $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c %OBJ% -- %COMPILE%
+       %VERBOSE%$(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c %OBJ% \
+                -- %COMPILE%
diff --git a/lib/am/remake-hdr.am b/lib/am/remake-hdr.am
index 77d3fae..665b343 100644
--- a/lib/am/remake-hdr.am
+++ b/lib/am/remake-hdr.am
@@ -27,7 +27,7 @@
 ## Only the first file of AC_CONFIG_HEADERS is assumed to be generated
 ## by autoheader.
 if %?FIRST%
-%CONFIG_HIN%: %MAINTAINER-MODE% $(am.remake.configure-deps)
+%CONFIG_HIN%: $(am.remake.configure-deps)
        cd $(top_srcdir) && $(AUTOHEADER)
 ## Whenever $(AUTOHEADER) has run, we must make sure that
 ## ./config.status will rebuild config.h.  The dependency from %STAMP%
diff --git a/lib/am/texi-vers.am b/lib/am/texi-vers.am
index 2d5789e..79b0e6c 100644
--- a/lib/am/texi-vers.am
+++ b/lib/am/texi-vers.am
@@ -21,7 +21,7 @@ am.dist.common-files += %VTEXI% %STAMPVTI%
 ## triggered.  If you equip this rule with a command, GNU make will
 ## assume %VTEXI% has been rebuild in the current directory and
 ## discard any %VTEXI% file found in a VPATH search.
-%VTEXI%: %MAINTAINER-MODE% %STAMPVTI%
+%VTEXI%: %STAMPVTI%
 
 ## Depend on configure so that version number updates cause a rebuild.
 ## (Not configure.ac, because not all setups define the version number
@@ -41,4 +41,4 @@ am.dist.common-files += %VTEXI% %STAMPVTI%
        @cp %VTEXI% $@
 
 am.clean.mostly.f += %VTI%.tmp
-%MAINTAINER-MODE%am.clean.maint.f += %STAMPVTI% %VTEXI%
+am.clean.maint.f += %STAMPVTI% %VTEXI%
diff --git a/lib/am/yacc.am b/lib/am/yacc.am
index 5cff9ba..861c1ab 100644
--- a/lib/am/yacc.am
+++ b/lib/am/yacc.am
@@ -14,38 +14,14 @@
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-## We want to disable the Yacc rebuild rule when
-##   1. AM_MAINTAINER_MODE is used, and
-##   2. --enable-maintainer-mode is not specified, and
-##   3. parser.c already exist, and
-##   4. parser.y and parser.c are distributed.
-## Point #3 is because "make maintainer-clean" erases parser.c, yet
-## the GNU Coding Standards require that ./configure; make works even
-## after that.
-## Point #4 is because parsers listed in nodist_*_SOURCES are always
-## built on the user's side, so it makes no sense to disable them.
-##
-## Points #1, #2, #3 are solved by unconditionally prefixing the rule
-## with $(am.yacc.maybe-skip) defined below only when needed.
-##
-## Point #4 requires a condition on whether parser.y/parser.c are
-## distributed or not.  We cannot have a generic rule that works in
-## both cases, so we ensure in automake that nodist_ parsers always
-## use non-generic rules.
 if %?FIRST%
-if %?MAINTAINER-MODE%
address@hidden@am.yacc.maybe-skip = test -f $@ ||
-endif %?MAINTAINER-MODE%
 am.yacc.c2h = $(basename $1)$(subst c,h,$(suffix $1))
 endif %?FIRST%
 
 ?GENERIC?%%DERIVED-EXT%: %%EXT%
 ?!GENERIC?%OBJ%: %SOURCE%
        %SILENT%$(am.cmd.ensure-target-dir-exists)
-       %VERBOSE% \
-?GENERIC?      $(am.yacc.maybe-skip) \
-?!GENERIC??DIST_SOURCE?        $(am.yacc.maybe-skip) \
-       $(SHELL) $(YLWRAP) $< \
+       %VERBOSE%$(SHELL) $(YLWRAP) $< \
          y.tab.c $@ \
          y.tab.h $(call am.yacc.c2h,$@) \
          y.output $(basename $@).output \
diff --git a/m4/maintainer.m4 b/m4/maintainer.m4
deleted file mode 100644
index 62eef9c..0000000
--- a/m4/maintainer.m4
+++ /dev/null
@@ -1,35 +0,0 @@
-# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless 'enable' is passed literally.
-# For symmetry, 'disable' may be passed as well.  Anyway, the user
-# can override the default with the --enable/--disable switch.
-AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
-       [enable], [m4_define([am_maintainer_other], [disable])],
-       [disable], [m4_define([am_maintainer_other], [enable])],
-       [m4_define([am_maintainer_other], [enable])
-        m4_warn([syntax], [unexpected argument to AM@&address@hidden: $1])])
-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],
-    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
-      am_maintainer_other[ make rules and dependencies not useful
-      (and sometimes confusing) to the casual installer])],
-    [USE_MAINTAINER_MODE=$enableval],
-    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
-  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
-  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
-  MAINT=$MAINTAINER_MODE_TRUE
-  AC_SUBST([MAINT])dnl
-]
-)
diff --git a/t/condlib.sh b/t/condlib.sh
index 3c88226..ea8e679 100755
--- a/t/condlib.sh
+++ b/t/condlib.sh
@@ -21,7 +21,6 @@
 
 cat >> configure.ac << 'END'
 AC_PROG_RANLIB
-AM_MAINTAINER_MODE
 AM_PROG_AR
 AC_PROG_CC
 END
diff --git a/t/flavor.sh b/t/flavor.sh
index 90e0b15..058e55f 100755
--- a/t/flavor.sh
+++ b/t/flavor.sh
@@ -21,7 +21,6 @@
 . ./defs || exit 1
 
 cat >> configure.ac << 'END'
-AM_MAINTAINER_MODE
 AC_OUTPUT
 END
 
@@ -38,7 +37,7 @@ $AUTOCONF
 for flavor in --gnits --gnu --foreign --ignore-deps; do
 
   $AUTOMAKE --add-missing $flavor
-  ./configure --enable-maintainer-mode
+  ./configure
   grep " $flavor" Makefile
   $MAKE
 
diff --git a/t/lex-nodist.sh b/t/lex-nodist.sh
index b2f7b29..c04d613 100755
--- a/t/lex-nodist.sh
+++ b/t/lex-nodist.sh
@@ -15,10 +15,8 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Checks for .c files derived from non-distributed .l sources.
-# The test 'lex-pr204.test' does similar check with AM_MAINTAINER_MODE
-# enabled.
-# The tests 'yacc-nodist.test' and 'yacc-pr204.test' does similar checks
-# for yacc-generated .c and .h files.
+# The test 'yacc-nodist.test' does similar checks for yacc-generated
+# .c and .h files.
 
 required='cc lex'
 . ./defs || exit 1
diff --git a/t/lex-pr204.sh b/t/lex-pr204.sh
deleted file mode 100755
index 535b482..0000000
--- a/t/lex-pr204.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2011-2012 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/>.
-
-# Related to PR 204.
-# C sources derived from nodist_ lex sources should not be distributed.
-# See also related test 'lex-nodist.test'.
-# The tests 'yacc-nodist.test' and 'yacc-pr204.test' does similar checks
-# for yacc-generated .c and .h files.
-
-required='cc lex'
-. ./defs || exit 1
-
-cat >> configure.ac <<'EOF'
-AM_MAINTAINER_MODE
-AC_PROG_CC
-dnl We use AC_PROG_LEX deliberately.
-dnl Sister 'lex-nodist.test' should use 'AM_PROG_LEX' instead.
-AC_PROG_LEX
-AC_OUTPUT
-EOF
-
-# The LEXER2 intermediate variable is there to make sure Automake
-# matches 'nodist_' against the right variable name...
-cat > Makefile.am << 'EOF'
-EXTRA_PROGRAMS = foo
-LEXER2 = lexer2.l
-nodist_foo_SOURCES = lexer.l $(LEXER2)
-
-distdirtest: distdir
-       test ! -f $(distdir)/lexer.c
-       test ! -f $(distdir)/lexer.l
-       test ! -f $(distdir)/lexer.h
-       test ! -f $(distdir)/lexer2.c
-       test ! -f $(distdir)/lexer2.l
-       test ! -f $(distdir)/lexer2.h
-EOF
-
-cat > lexer.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
-%%
-"GOOD"   return EOF;
-.
-%%
-int main (void)
-{
-  return yylex ();
-}
-END
-
-cp lexer.l lexer2.l
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE -a
-
-./configure
-$MAKE distdirtest
-
-# Make sure lexer.c and lexer2.c are still targets.
-$MAKE lexer.c lexer2.c
-test -f lexer.c
-test -f lexer2.c
-
-# Ensure the rebuild rule works despite AM_MAINTAINER_MODE, because
-# it's a nodist_ lexer.
-$sleep
-touch lexer.l lexer2.l
-$sleep
-$MAKE lexer.c lexer2.c
-is_newest lexer.c lexer.l
-is_newest lexer2.c lexer2.l
-
-:
diff --git a/t/maintmode-configure-msg.sh b/t/maintmode-configure-msg.sh
deleted file mode 100755
index ebdf4d7..0000000
--- a/t/maintmode-configure-msg.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010-2012 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_maintmode ()
-{
-  rm -rf autom4te*.cache # Just to be sure not to use a stale cache.
-  echo "AC_INIT([$me], [1.0])" > configure.ac
-  case $1 in
-    DEFAULT) echo AM_MAINTAINER_MODE;;
-          *) echo "AM_MAINTAINER_MODE([$*])";;
-  esac >> configure.ac
-}
-
-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
-
-grep_configure_help --enable-maintainer-mode 'enable make rules'
-
-check_configure_message_with "no"
-check_configure_message_with "yes" --enable-maintainer-mode
-
-set_maintmode "disable"
-
-$AUTOCONF --force
-grep_configure_help --enable-maintainer-mode 'enable make rules'
-
-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_configure_help --disable-maintainer-mode 'disable make rules'
-
-check_configure_message_with "yes"
-check_configure_message_with "no" --disable-maintainer-mode
-
-:
diff --git a/t/mmode.sh b/t/mmode.sh
deleted file mode 100755
index 23cb646..0000000
--- a/t/mmode.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2008-2012 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/>.
-
-# Check for AM_MAINTAINER_MODE defaults.
-
-. ./defs || exit 1
-
-cat >> configure.ac << 'END'
-AM_MAINTAINER_MODE
-AC_OUTPUT
-END
-
-: >Makefile.am
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE -a
-
-./configure
-grep '^MAINT.*#' Makefile
-
-./configure --disable-maintainer-mode
-grep '^MAINT.*#' Makefile
-
-./configure --enable-maintainer-mode
-grep '^MAINT.*#' Makefile && exit 1
-
-sed 's/\(AM_MAINTAINER_MODE\).*/\1([disable])/' configure.ac > configure.int
-mv -f configure.int configure.ac
-mv configure configure1
-$AUTOCONF --force
-diff configure configure1
-
-sed 's/\(AM_MAINTAINER_MODE\).*/\1([enable])/' configure.ac > configure.int
-mv -f configure.int configure.ac
-$AUTOCONF --force
-
-./configure
-grep '^MAINT.*#' Makefile && exit 1
-
-./configure --enable-maintainer-mode
-grep '^MAINT.*#' Makefile && exit 1
-
-./configure --disable-maintainer-mode
-grep '^MAINT.*#' Makefile
-
-sed 's/\(AM_MAINTAINER_MODE\).*/\1([foo])/' configure.ac > configure.int
-mv -f configure.int configure.ac
-$AUTOCONF --force -Werror && exit 1
-
-:
diff --git a/t/mmodely.sh b/t/mmodely.sh
deleted file mode 100755
index 0ece11f..0000000
--- a/t/mmodely.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2004-2012 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/>.
-
-# Verify that intermediate files are only built from Yacc and Lex
-# sources in maintainer mode.
-# From Derek R. Price.
-
-required=cc
-. ./defs || exit 1
-
-cat >> configure.ac << 'END'
-AM_MAINTAINER_MODE
-AC_PROG_CC
-AM_PROG_LEX
-AC_PROG_YACC
-AC_OUTPUT
-END
-
-cat > Makefile.am <<'END'
-YACC = false
-LEX = false
-bin_PROGRAMS = zardoz
-zardoz_SOURCES = zardoz.y joe.l
-LDADD = @LEXLIB@
-END
-
-# The point of this test is that it is not dependent on a working lex
-# or yacc.
-cat > joe.c <<EOF
-int joe (int arg)
-{
-    return arg * 2;
-}
-EOF
-# On systems which link in libraries non-lazily and whose linkers
-# complain about unresolved symbols by default, such as Solaris, an
-# yylex function needs to be defined to avoid an error due to an
-# unresolved symbol.
-cat > zardoz.c <<EOF
-int joe (int arg);
-int yylex (void)
-{
-    return 0;
-}
-int main (int argc, char **argv)
-{
-    return joe (argc);
-}
-EOF
-
-# Ensure a later timestamp for our Lex & Yacc sources.
-$sleep
-: > joe.l
-: > zardoz.y
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE -a
-
-./configure
-$MAKE
-
-cat >myyacc.sh <<'END'
-#! /bin/sh
-echo "$@" >y.tab.c
-END
-cat >mylex.sh <<'END'
-echo "$@" >lex.yy.c
-END
-chmod +x myyacc.sh mylex.sh
-PATH=$(pwd)$PATH_SEPARATOR$PATH; export PATH
-
-# "make maintainer-clean; ./configure; make" should always work,
-# per GNU Standard.
-$MAKE maintainer-clean
-./configure
-$MAKE zardoz.c joe.c YACC="myyacc.sh" LEX="mylex.sh" \
-                     LEX_OUTPUT_ROOT='lex.yy'
-$FGREP zardoz.y zardoz.c
-$FGREP joe.l joe.c
-
-:
diff --git a/t/remake5.sh b/t/remake5.sh
deleted file mode 100755
index 1383d0d..0000000
--- a/t/remake5.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2003-2012 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/>.
-
-# Check that AM_MAINTAINER_MODE disable some rebuild rules,
-# but not all.
-# Report from Ralf Corsepius.
-
-. ./defs || exit 1
-
-cat >>configure.ac <<'EOF'
-AM_MAINTAINER_MODE
-m4_include([foo.m4])
-if test ! -f rebuild_ok; then
-  ACLOCAL=false
-  AUTOMAKE=false
-  AUTOCONF=false
-fi
-AC_OUTPUT
-EOF
-
-: > foo.m4
-: > Makefile.am
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE --add-missing
-./configure
-$MAKE
-
-# Make sure the rules to rebuild configure/Makefile.in are not
-# triggered by default.  ($MAKE will fail if they are, because the
-# tools are set to false.)
-$sleep
-touch aclocal.m4 Makefile.am configure.ac foo.m4
-$MAKE
-
-# Make sure the rebuild rule for Makefile is triggered.
-$sleep
-echo '# GrEpMe' >>Makefile.in
-$MAKE
-grep GrEpMe Makefile
-
-# Make sure the rebuild rule for config.status is triggered.
-$sleep
-grep 'AUTOCONF.*=.*false' Makefile
-: > rebuild_ok
-./configure --no-create
-$MAKE
-grep 'AUTOCONF.*=.*false' Makefile && exit 1
-
-# Make sure rebuild rules do work if --enable-maintainer-mode is given.
-./configure --enable-maintainer-mode
-$sleep
-echo 'AC_SUBST([YIPPY_YIPPY_YEAH])' >foo.m4
-$MAKE
-grep YIPPY_YIPPY_YEAH Makefile
-
-# Try the distribution, for completeness.
-$MAKE distcheck
-
-:
diff --git a/t/yacc-nodist.sh b/t/yacc-nodist.sh
index 14fa0a7..4209ec1 100755
--- a/t/yacc-nodist.sh
+++ b/t/yacc-nodist.sh
@@ -15,10 +15,8 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Checks for .c and .h files derived from non-distributed yacc sources.
-# The test 'yacc-pr204.test' does similar check with AM_MAINTAINER_MODE
-# enabled.
-# The tests 'lex-nodist.test' and 'lex-pr204.test' does similar checks
-# for lex-generated .c files.
+# The test 'lex-nodist.test' does similar checks for lex-generated .c
+# files.
 
 required='cc yacc'
 . ./defs || exit 1
diff --git a/t/yacc-pr204.sh b/t/yacc-pr204.sh
deleted file mode 100755
index 44b73b3..0000000
--- a/t/yacc-pr204.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2002-2012 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/>.
-
-# For PR 204.
-# C sources derived from nodist_ yacc sources should not be distributed.
-# See also related test 'yacc-nodist.test'.
-# The tests 'lex-nodist.test' and 'lex-pr204.test' does similar checks
-# for lex-generated C files.
-
-required='cc yacc'
-. ./defs || exit 1
-
-cat >> configure.ac <<'EOF'
-AM_MAINTAINER_MODE
-AC_PROG_CC
-AC_PROG_YACC
-AC_OUTPUT
-EOF
-
-# The PARSE2 intermediate variable is there to make
-# sure Automake match 'nodist_' against the right
-# variable name...
-cat > Makefile.am << 'EOF'
-AM_YFLAGS = -d
-EXTRA_PROGRAMS = foo
-PARSE2 = parse2.y
-nodist_foo_SOURCES = parse.y $(PARSE2)
-
-distdirtest: distdir
-       test ! -f $(distdir)/parse.c
-       test ! -f $(distdir)/parse.y
-       test ! -f $(distdir)/parse.h
-       test ! -f $(distdir)/parse2.c
-       test ! -f $(distdir)/parse2.y
-       test ! -f $(distdir)/parse2.h
-EOF
-
-cat > parse.y << 'END'
-%{
-int yylex () {return 0;}
-void yyerror (char *s) {}
-%}
-%%
-maude : 'm' 'a' 'u' 'd' 'e' {};
-END
-
-cp parse.y parse2.y
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE -a
-
-./configure
-$MAKE distdirtest
-
-# Make sure parse.c and parse2.c are still targets.
-$MAKE parse.c parse2.c
-test -f parse.c
-test -f parse2.c
-
-# Ensure the rebuild rule works despite AM_MAINTAINER_MODE, because
-# it's a nodist_ parser.
-$sleep
-touch parse.y parse2.y
-$sleep
-$MAKE parse.c parse2.c
-is_newest parse.c parse.y
-is_newest parse2.c parse2.y
-
-:
-- 
1.7.12.rc0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]