diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-08-09 12:15:01 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-08-09 14:13:14 +0200 |
commit | 00a383739e96db6d85ca0e9f0791249c5fb481d4 (patch) | |
tree | 109bea40c6b612b422258985e2829cf9606dd1f1 /t/yacc-nodist.sh | |
parent | e7dcff829917ab8eccd91de3a84d44b7267cf5b0 (diff) | |
download | automake-00a383739e96db6d85ca0e9f0791249c5fb481d4.tar.gz |
[ng] maintainer-mode: remove it altogether
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 <stefano.lattarini@gmail.com>
Diffstat (limited to 't/yacc-nodist.sh')
-rwxr-xr-x | t/yacc-nodist.sh | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/t/yacc-nodist.sh b/t/yacc-nodist.sh index 14fa0a753..4209ec1a7 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 |