summaryrefslogtreecommitdiff
path: root/t/yacc-nodist.sh
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-08-09 12:15:01 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-08-09 14:13:14 +0200
commit00a383739e96db6d85ca0e9f0791249c5fb481d4 (patch)
tree109bea40c6b612b422258985e2829cf9606dd1f1 /t/yacc-nodist.sh
parente7dcff829917ab8eccd91de3a84d44b7267cf5b0 (diff)
downloadautomake-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-xt/yacc-nodist.sh6
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