summaryrefslogtreecommitdiff
path: root/lib/am/subdirs.am
Commit message (Collapse)AuthorAgeFilesLines
* subdirs: don't return false positives for the '-k' option's presenceStefano Lattarini2013-04-291-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change fixes automake bug#12554. The old implementation of the code descending into $(SUBDIRS) entries used the following snippet to decide whether make is running with the '-k' a.k.a. '--keep-going' option, and thus whether a failure in a subdirectory should prevent the descent in the following ones: fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done It's clear that the second pattern in the 'case' construct could possibly match false positives, for examples in these two cases: make check TESTS="x.test k.test" make -I /usr/local/kool-fragments which are somewhat unusual, but not invalid. So we need a more resilient implementation, as we did for the detection of the '-n' flag. This implementation is now provided by the new private macro '$(am__make_keepgoing)' (introduced in recent commits); so we can just us that to fix the bug. * lib/am/subdirs.am ($(am__recursive_targets)): Use '$(am__make_keepgoing)' instead of ad-hoc and more brittle checks. * t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test case 't/subdir-keep-going-pr12554.sh'. Reported-by: Michael Daniels <mdaniels@rim.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* maint: update copyright year for 2013 (in branch maint)Stefano Lattarini2012-12-311-1/+1
| | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* recursion: support user-defined recursive targetsStefano Lattarini2012-07-021-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The user can now define his own recursive targets that recurse in the directories specified in $(SUBDIRS). That can be done by specifying the name of such targets in invocations of the new 'AM_EXTRA_RECURSIVE_TARGETS' m4 macro. The API goes like this: $ cat configure.ac AC_INIT([pkg-name], [1.0] AM_INIT_AUTOMAKE AM_EXTRA_RECURSIVE_TARGETS([foo]) AC_CONFIG_FILES([Makefile sub/Makefile]) AC_OUTPUT $ cat Makefile.am SUBDIRS = sub foo-local: @echo This will be run by "make foo". $ cat sub/Makefile.am foo-local: @echo This too will be run by a "make foo" issued either in @echo the 'sub/' directory or in the top-level directory. Like for the "default" recursive targets (e.g., 'all' and 'check'), the user-defined recursive targets descend in the $(SUBDIRS) in a depth-first fashion, and process '.' last (unless that is explicitly specified in $(SUBDIRS)). * NEWS, doc/automake.texi: Document the new feature. * automake.in (@extra_recursive_targets): New global variable. (scan_autoconf_traces): Trace macro '_AM_EXTRA_RECURSIVE_TARGETS'. (handle_user_recursion): New subroutine; among other things, it defines the new internal '$(am__extra_recursive_targets)' make variable, and the '*-am', '*-local' and '*-recursive' targets associated with the user-specified user recursive targets. (generate_makefile): Call the new subroutine. * lib/am/subdirs.am (am__recursive_targets): New internal make variable, listing all of '$(RECURSIVE_TARGETS)', '$(RECURSIVE_CLEAN_TARGETS)' and '$(am__extra_recursive_targets)' together. (AM_RECURSIVE_TARGETS): Adjust the definition of this variable ... (.PHONY, .MAKE): ... and the list of dependencies of these special targets to take advantage of the new '$(am__recursive_targets)' variable. ($(am__recursive_targets)): New targets, superseding ... ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)): ... these, and inheriting their rules. This way, the rules to handle recursion for built-in recursive targets (e.g., 'all', 'dvi', 'clean') and for user defined recursive targets are the same. * m4/extra-recurs.m4: New file, contain definition of new macro 'AM_EXTRA_RECURSIVE_TARGETS' and '_AM_EXTRA_RECURSIVE_TARGETS'. These macros are basically dummy, only used for tracing by automake. * m4/Makefile.am (dist_automake_ac_DATA): Update. * t/recurs-user.sh: New test. * t/recurs-user2.sh: Likewise. * t/recurs-user-deeply-nested.sh: Likewise. * t/recurs-user-indir.sh: Likewise. * t/recurs-user-keep-going.sh: Likewise. * t/recurs-user-many.sh: Likewise. * t/recurs-user-no-subdirs.sh: Likewise. * t/recurs-user-no-top-level.sh: Likewise. * t/recurs-user-override.sh: Likewise. * t/recurs-user-phony.sh: Likewise. * t/recurs-user-wrap.sh: Likewise. * t/remake-recurs-user.sh: Likewise. * t/list-of-tests.mk: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* subdirs: unify rules for "cleaning" and "normal" recursive targetsStefano Lattarini2012-06-111-45/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, the recursive invocation of cleaning targets in the $(SUBDIRS) where done in inverse order, i.e., starting from the last $(SUBDIRS) entry and proceeding towards the first. According to the code comments, this was done ... ... in an attempt to alleviate a problem that can happen when dependencies are enabled. In this case, the .P file in one directory can depend on some automatically generated header in an earlier directory. Since the dependencies are required before any target is examined, make bombs. But this comment does not apply anymore to the current implementation of automatic dependency tracking: the '.Po' and '.Plo' files does not depend on any C header or source file, ever! So it seems that the distinction between "normal" and "cleaning" recursive targets is a stale leftover of an older implementation of the automatic dependency tracking. In fact, the Automake History manual seems to confirm this suspect; the section "First Take on Dependency Tracking" reads: Because each .P file was a dependency of Makefile, this meant that dependency tracking was done eagerly by make. For instance, "make clean" would cause all the dependency files to be updated, and then immediately removed. This eagerness also caused problems with some configurations; if a certain source file could not be compiled on a given architecture for some reason, dependency tracking would fail, aborting the entire build. and the following section "Dependencies As Side Effects" reads: In this approach, the .P files were included using the -include command, which let us create these files lazily. This avoided the "make clean" problem. So the distinction between "normal" and "cleaning" recursive targets has likely been obsolete since by then already. We can thus remove such distinction, thus reducing some complications and duplication in our rules. Doing so, the whole testsuite still passes (both with GCC and Sun C 5.9), even the test 'c-demo.sh', which, among the other things, exercise the setup described in the obsolete code comment referenced above. Finally, note that we still keep '$(RECURSIVE_CLEAN_TARGETS)' and '$(RECURSIVE_TARGETS)' as two distinct variables, to ensure a better backward-compatibility for any user-defined rules that happen to use those variables. * NEWS: Update. * lib/am/subdirs.am ($(RECURSIVE_CLEAN_TARGETS), $(CLEAN_TARGETS)): Merge their recipes. * t/subdir-distclean.sh: New test, check that "./configure && make && make distclean" is actually a no-op, even when conditional SUBDIRS are involved. * t/list-of-tests.mk: Add it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* am: do not quote `like this', as per GCS recommendationStefano Lattarini2012-02-231-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch converts the automake-provided '*.am' fragments, and related files, to the use of new quoting format 'like this' or "like this" rather than `like this'. * lib/am/check.am: Update quoting format throughout, in comments and diagnostic. Some related rewordings, reformatting, and removal of redundant commands since we are at it. * lib/am/configure.am: Likewise. * lib/am/dejagnu.am: Likewise. * lib/am/depend2.am: Likewise. * lib/am/distdir.am: Likewise. * lib/am/inst-vars.am: Likewise. * lib/am/install.am: Likewise. * lib/am/lang-compile.am: Likewise. * lib/am/lisp.am: Likewise. * lib/am/ltlib.am: Likewise. * lib/am/mans.am: Likewise. * lib/am/progs.am: Likewise. * lib/am/remake-hdr.am: Likewise. * lib/am/subdirs.am: Likewise. * lib/am/tags.am: Likewise. * lib/am/texi-vers.am: Likewise. * lib/am/texibuild.am: Likewise. * lib/am/texinfos.am: Likewise. * lib/am/yacc.am: Likewise.
* maint: run "make update-copyright"Stefano Lattarini2012-02-161-2/+1
|
* Don't let an envvar setting of "$fail" cause build failure.Jim Meyering2009-10-311-2/+2
| | | | | | | | | | | | | | Without this change, in a project using an automake-generated Makefile, "make fail=anything" would fail inappropriately, due to the `test -z "$$fail"' at the end of this emitted rule: * lib/am/subdirs.am ($(RECURSIVE_TARGETS)): Initialize "fail=" to keep an envvar setting of that variable from causing unwarranted failure. ($(RECURSIVE_CLEAN_TARGETS)): Likewise. * tests/subdir10.test: New test. * tests/Makefile.am: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Revert Automake license to GPLv2+.Ralf Wildenhues2009-05-171-1/+1
| | | | | | | | | | | | Automake will move to GPLv3+ once the Exception statement has been rewritten to use the new GPLv3 exception language. This change does not impact the COPYING file that may be installed by `automake --add-missing'. * COPYING: Revert to GPLv2. All uses changed. * NEWS: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Define AM_RECURSIVE_TARGETS, for gnulib's GNUmakefile.Ralf Wildenhues2009-03-221-1/+5
| | | | | | | | | | | | | | | This new macro lists all public targets which invoke `make' recursively, or depend on targets which do so. It allows to prevent parallelism selectively, when multiple targets are passed on the `make' command line. * lib/am/distdir.am [%?SUBDIRS%] (AM_RECURSIVE_TARGETS): New macro. * lib/am/subdirs.am (AM_RECURSIVE_TARGETS): Likewise. * lib/am/tags.am [%?SUBDIRS%] (AM_RECURSIVE_TARGETS): Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* For all possibly-relative subdirs, use $(am__cd).Ralf Wildenhues2008-09-041-4/+4
| | | | | | | | | | | | | | | | | | | | Up to now, $(am__cd) was only used within backquotes, to avoid extraneous output. This patch also uses it for every `cd' to a relative subdir, to prevent CDPATH from entering an unwanted directory. * Makefile.am (maintainer-check): Fix current check for $(am__cd) within backquotes a bit. Add new check for `cd' to a relative subdir. * automake.in (handle_tags, handle_configure): Adjust rules. * lib/am/ansi2knr.am: Likewise. * lib/am/configure.am: Likewise. * lib/am/distdir.am: Likewise. * lib/am/remake-hdr.am: Likewise. * lib/am/subdirs.am: Likewise. * lib/am/tags.am: Likewise. * lib/am/texibuild.am: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Reword the copyright notices to match what's suggested in GPLv3.Ralf Wildenhues2007-12-081-3/+1
|
* * COPYING, lib/COPYING: Update to GPLv3. All uses changed.Ralf Wildenhues2007-07-071-1/+1
| | | | * NEWS: Update.
* * COPYING, ChangeLog, ChangeLog.00, ChangeLog.01, ChangeLog.02,Alexandre Duret-Lutz2005-05-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ChangeLog.03, ChangeLog.96, ChangeLog.98, HACKING, Makefile.am, NEWS, README, TODO, aclocal.in, automake.in, bootstrap, configure, configure.ac, doc/Makefile.am, doc/fdl.texi, lib/COPYING, lib/Makefile.am, lib/acinstall, lib/compile, lib/config-ml.in, lib/config.guess, lib/config.sub, lib/depcomp, lib/elisp-comp, lib/gnupload, lib/mdate-sh, lib/missing, lib/py-compile, lib/symlink-tree, lib/texinfo.tex, lib/ylwrap, lib/Automake/ChannelDefs.pm, lib/Automake/Channels.pm, lib/Automake/Condition.pm, lib/Automake/Config.in, lib/Automake/Configure_ac.pm, lib/Automake/DisjConditions.pm, lib/Automake/FileUtils.pm, lib/Automake/General.pm, lib/Automake/Item.pm, lib/Automake/ItemDef.pm, lib/Automake/Location.pm, lib/Automake/Makefile.am, lib/Automake/Options.pm, lib/Automake/Rule.pm, lib/Automake/RuleDef.pm, lib/Automake/Struct.pm, lib/Automake/VarDef.pm, lib/Automake/Variable.pm, lib/Automake/Version.pm, lib/Automake/Wrap.pm, lib/Automake/XFile.pm, lib/Automake/tests/Condition.pl, lib/Automake/tests/DisjConditions.pl, lib/Automake/tests/Makefile.am, lib/Automake/tests/Version.pl, lib/Automake/tests/Wrap.pl, lib/am/Makefile.am, lib/am/ansi2knr.am, lib/am/check.am, lib/am/clean-hdr.am, lib/am/clean.am, lib/am/compile.am, lib/am/configure.am, lib/am/data.am, lib/am/dejagnu.am, lib/am/depend.am, lib/am/depend2.am, lib/am/distdir.am, lib/am/footer.am, lib/am/header-vars.am, lib/am/header.am, lib/am/inst-vars.am, lib/am/install.am, lib/am/java.am, lib/am/lang-compile.am, lib/am/lex.am, lib/am/library.am, lib/am/libs.am, lib/am/libtool.am, lib/am/lisp.am, lib/am/ltlib.am, lib/am/ltlibrary.am, lib/am/mans-vars.am, lib/am/mans.am, lib/am/multilib.am, lib/am/program.am, lib/am/progs.am, lib/am/python.am, lib/am/remake-hdr.am, lib/am/scripts.am, lib/am/subdirs.am, lib/am/tags.am, lib/am/texi-vers.am, lib/am/texibuild.am, lib/am/texinfos.am, lib/am/yacc.am, m4/Makefile.am, tests/aclibobj.test, tests/acloca10.test, tests/acloca11.test, tests/acloca12.test, tests/acloca13.test, tests/acloca14.test, tests/acloca15.test, tests/acloca16.test, tests/acloca17.test, tests/acloca18.test, tests/acloca19.test, tests/aclocal.test, tests/aclocal3.test, tests/aclocal4.test, tests/aclocal5.test, tests/aclocal6.test, tests/aclocal7.test, tests/aclocal8.test, tests/aclocal9.test, tests/acoutbs.test, tests/acoutbs2.test, tests/acoutnoq.test, tests/acoutpt.test, tests/acoutpt2.test, tests/acoutqnl.test, tests/acsilent.test, tests/acsubst.test, tests/acsubst2.test, tests/all.test, tests/alloca.test, tests/alloca2.test, tests/alpha.test, tests/alpha2.test, tests/amassign.test, tests/ammissing.test, tests/ansi.test, tests/ansi10.test, tests/ansi2.test, tests/ansi3.test, tests/ansi3b.test, tests/ansi4.test, tests/ansi5.test, tests/ansi6.test, tests/ansi7.test, tests/ansi8.test, tests/ansi9.test, tests/ar.test, tests/ar2.test, tests/asm.test, tests/autohdr.test, tests/autohdr2.test, tests/autohdr3.test, tests/autohdr4.test, tests/automake.test, tests/auxdir.test, tests/auxdir2.test, tests/auxdir3.test, tests/auxdir4.test, tests/backsl.test, tests/backsl2.test, tests/backsl3.test, tests/backsl4.test, tests/badline.test, tests/badopt.test, tests/badprog.test, tests/block.test, tests/bsource.test, tests/canon.test, tests/canon2.test, tests/canon3.test, tests/canon4.test, tests/canon5.test, tests/ccnoco.test, tests/check.test, tests/check2.test, tests/check3.test, tests/check4.test, tests/checkall.test, tests/clean.test, tests/clean2.test, tests/colneq.test, tests/colneq2.test, tests/colon.test, tests/colon2.test, tests/colon3.test, tests/colon4.test, tests/colon5.test, tests/colon6.test, tests/colon7.test, tests/comment.test, tests/comment2.test, tests/comment3.test, tests/comment4.test, tests/comment5.test, tests/comment6.test, tests/comment7.test, tests/comment8.test, tests/comment9.test, tests/compile.test, tests/compile_f90_c_cxx.test, tests/compile_f_c_cxx.test, tests/cond.test, tests/cond10.test, tests/cond11.test, tests/cond13.test, tests/cond14.test, tests/cond15.test, tests/cond16.test, tests/cond17.test, tests/cond18.test, tests/cond19.test, tests/cond2.test, tests/cond20.test, tests/cond21.test, tests/cond22.test, tests/cond23.test, tests/cond24.test, tests/cond25.test, tests/cond26.test, tests/cond27.test, tests/cond28.test, tests/cond29.test, tests/cond3.test, tests/cond30.test, tests/cond31.test, tests/cond32.test, tests/cond33.test, tests/cond34.test, tests/cond35.test, tests/cond36.test, tests/cond37.test, tests/cond4.test, tests/cond5.test, tests/cond6.test, tests/cond7.test, tests/cond8.test, tests/cond9.test, tests/condd.test, tests/condhook.test, tests/condinc.test, tests/condinc2.test, tests/condlib.test, tests/condman.test, tests/condman2.test, tests/conf2.test, tests/confdeps.test, tests/conff.test, tests/conff2.test, tests/confh.test, tests/confh4.test, tests/confh5.test, tests/config.test, tests/confincl.test, tests/conflnk.test, tests/conflnk2.test, tests/conflnk3.test, tests/confsub.test, tests/confvar.test, tests/confvar2.test, tests/copy.test, tests/ctarget1.test, tests/cxx.test, tests/cxx2.test, tests/cxxansi.test, tests/cxxcpp.test, tests/cxxlibobj.test, tests/cxxlink.test, tests/cxxnoc.test, tests/cxxo.test, tests/cygwin32.test, tests/dash.test, tests/defs.in, tests/defun.test, tests/defun2.test, tests/dejagnu.test, tests/dejagnu2.test, tests/dejagnu3.test, tests/dejagnu4.test, tests/dejagnu5.test, tests/dejagnu6.test, tests/dejagnu7.test, tests/depacl2.test, tests/depcomp.test, tests/depcomp2.test, tests/depcomp3.test, tests/depcomp4.test, tests/depcomp5.test, tests/depdist.test, tests/depend.test, tests/depend2.test, tests/depend3.test, tests/depend4.test, tests/destdir.test, tests/dirforbid.test, tests/dirlist.test, tests/discover.test, tests/distcom2.test, tests/distcom3.test, tests/distcom4.test, tests/distcom5.test, tests/distcom6.test, tests/distcom7.test, tests/distdir.test, tests/distname.test, tests/dollar.test, tests/double.test, tests/dup2.test, tests/else.test, tests/empty.test, tests/empty2.test, tests/empty3.test, tests/empty4.test, tests/exdir.test, tests/exdir2.test, tests/exeext.test, tests/exeext2.test, tests/exeext3.test, tests/exeext4.test, tests/exsource.test, tests/ext.test, tests/ext2.test, tests/extra.test, tests/extra2.test, tests/extra3.test, tests/extra4.test, tests/extra5.test, tests/extra6.test, tests/extra7.test, tests/f90only.test, tests/flibs.test, tests/fn99.test, tests/fnoc.test, tests/fo.test, tests/fonly.test, tests/fortdep.test, tests/fpinst2.test, tests/fpinstall.test, tests/gcj.test, tests/gcj2.test, tests/gcj3.test, tests/gcj4.test, tests/gcj5.test, tests/getopt.test, tests/gettext.test, tests/gettext2.test, tests/gnits.test, tests/gnits2.test, tests/gnits3.test, tests/gnumake.test, tests/gnuwarn.test, tests/gnuwarn2.test, tests/header.test, tests/help.test, tests/hfs.test, tests/hosts.test, tests/implicit.test, tests/include.test, tests/include2.test, tests/info.test, tests/insh2.test, tests/install2.test, tests/installdir.test, tests/instdat.test, tests/instdat2.test, tests/instexec.test, tests/insthook.test, tests/instman.test, tests/instman2.test, tests/instsh.test, tests/instsh2.test, tests/instspc.test, tests/interp.test, tests/interp2.test, tests/java.test, tests/java2.test, tests/java3.test, tests/javaprim.test, tests/javasubst.test, tests/ldadd.test, tests/ldflags.test, tests/lex.test, tests/lex2.test, tests/lex3.test, tests/lex4.test, tests/lex5.test, tests/libobj10.test, tests/libobj11.test, tests/libobj12.test, tests/libobj13.test, tests/libobj14.test, tests/libobj2.test, tests/libobj3.test, tests/libobj4.test, tests/libobj5.test, tests/libobj7.test, tests/libobj8.test, tests/library.test, tests/library2.test, tests/library3.test, tests/libtool.test, tests/libtool2.test, tests/libtool3.test, tests/libtool4.test, tests/libtool5.test, tests/libtool6.test, tests/libtool7.test, tests/libtool8.test, tests/libtool9.test, tests/license.test, tests/link_c_cxx.test, tests/link_dist.test, tests/link_f90_only.test, tests/link_f_only.test, tests/link_fc.test, tests/link_fccxx.test, tests/link_fcxx.test, tests/lisp2.test, tests/lisp3.test, tests/lisp4.test, tests/lisp5.test, tests/lisp6.test, tests/lisp7.test, tests/lisp8.test, tests/listval.test, tests/location.test, tests/longlin2.test, tests/longline.test, tests/ltcond.test, tests/ltcond2.test, tests/ltconv.test, tests/ltdeps.test, tests/ltlibobjs.test, tests/ltlibsrc.test, tests/maintclean.test, tests/make.test, tests/makej.test, tests/makevars.test, tests/man.test, tests/man2.test, tests/mclean.test, tests/mdate.test, tests/mdate2.test, tests/mdate3.test, tests/mdate4.test, tests/missing.test, tests/missing2.test, tests/missing3.test, tests/mkinst2.test, tests/mkinstall.test, tests/mmodely.test, tests/multlib.test, tests/nobase.test, tests/nodef.test, tests/nodef2.test, tests/nodep.test, tests/nodepcomp.test, tests/nodist.test, tests/nodist2.test, tests/nodist3.test, tests/nogzip.test, tests/nogzip2.test, tests/noinst.test, tests/noinstdir.test, tests/nolink.test, tests/nostdinc.test, tests/number.test, tests/obsolete.test, tests/order.test, tests/outdir.test, tests/output.test, tests/output10.test, tests/output11.test, tests/output12.test, tests/output2.test, tests/output3.test, tests/output4.test, tests/output5.test, tests/output6.test, tests/output7.test, tests/output8.test, tests/output9.test, tests/overrid.test, tests/parse.test, tests/percent.test, tests/percent2.test, tests/phony.test, tests/pluseq.test, tests/pluseq10.test, tests/pluseq2.test, tests/pluseq3.test, tests/pluseq4.test, tests/pluseq5.test, tests/pluseq6.test, tests/pluseq7.test, tests/pluseq8.test, tests/pluseq9.test, tests/postproc.test, tests/ppf77.test, tests/pr2.test, tests/pr204.test, tests/pr211.test, tests/pr220.test, tests/pr224.test, tests/pr229.test, tests/pr243.test, tests/pr266.test, tests/pr279-2.test, tests/pr279.test, tests/pr287.test, tests/pr300-lib.test, tests/pr300-ltlib.test, tests/pr300-prog.test, tests/pr307.test, tests/pr401.test, tests/pr401b.test, tests/pr401c.test, tests/pr72.test, tests/pr87.test, tests/pr9.test, tests/prefix.test, tests/primary.test, tests/primary2.test, tests/primary3.test, tests/proginst.test, tests/python.test, tests/python10.test, tests/python11.test, tests/python12.test, tests/python2.test, tests/python3.test, tests/python4.test, tests/python5.test, tests/python6.test, tests/python7.test, tests/python8.test, tests/python9.test, tests/recurs.test, tests/recurs2.test, tests/regex.test, tests/remake.test, tests/remake2.test, tests/remake3.test, tests/remake4.test, tests/remake5.test, tests/req.test, tests/reqd.test, tests/reqd2.test, tests/rulepat.test, tests/scripts.test, tests/seenc.test, tests/sinclude.test, tests/space.test, tests/specflg.test, tests/specflg2.test, tests/specflg3.test, tests/specflg6.test, tests/specflg7.test, tests/specflg8.test, tests/specflg9.test, tests/spell.test, tests/spell2.test, tests/spell3.test, tests/spelling.test, tests/spy.test, tests/srcsub.test, tests/srcsub2.test, tests/stamph2.test, tests/stdlib.test, tests/stdlib2.test, tests/strip.test, tests/subcond.test, tests/subcond2.test, tests/subcond3.test, tests/subdir.test, tests/subdir2.test, tests/subdir3.test, tests/subdir4.test, tests/subdir5.test, tests/subdir6.test, tests/subdir7.test, tests/subdir8.test, tests/subdir9.test, tests/subdirbuiltsources.test, tests/subobj.test, tests/subobj2.test, tests/subobj3.test, tests/subobj4.test, tests/subobj5.test, tests/subobj6.test, tests/subobj7.test, tests/subobj8.test, tests/subobj9.test, tests/subobjname.test, tests/subpkg.test, tests/subpkg2.test, tests/subst.test, tests/subst2.test, tests/substre2.test, tests/substref.test, tests/substtarg.test, tests/suffix.test, tests/suffix10.test, tests/suffix11.test, tests/suffix2.test, tests/suffix3.test, tests/suffix4.test, tests/suffix5.test, tests/suffix6.test, tests/suffix7.test, tests/suffix8.test, tests/suffix9.test, tests/symlink.test, tests/symlink2.test, tests/symlink3.test, tests/syntax.test, tests/tags.test, tests/tagsub.test, tests/tar.test, tests/tar2.test, tests/tar3.test, tests/target-cflags.test, tests/targetclash.test, tests/transform.test, tests/txinfo.test, tests/txinfo10.test, tests/txinfo13.test, tests/txinfo16.test, tests/txinfo17.test, tests/txinfo18.test, tests/txinfo19.test, tests/txinfo2.test, tests/txinfo20.test, tests/txinfo21.test, tests/txinfo22.test, tests/txinfo23.test, tests/txinfo24.test, tests/txinfo25.test, tests/txinfo26.test, tests/txinfo27.test, tests/txinfo28.test, tests/txinfo29.test, tests/txinfo3.test, tests/txinfo4.test, tests/txinfo5.test, tests/txinfo6.test, tests/txinfo7.test, tests/txinfo8.test, tests/txinfo9.test, tests/unused.test, tests/vars.test, tests/vars3.test, tests/vartar.test, tests/version.test, tests/version2.test, tests/version3.test, tests/version4.test, tests/version6.test, tests/version7.test, tests/version8.test, tests/vpath.test, tests/vtexi.test, tests/vtexi2.test, tests/warnopts.test, tests/werror.test, tests/werror2.test, tests/whoami.test, tests/xsource.test, tests/yacc.test, tests/yacc2.test, tests/yacc3.test, tests/yacc4.test, tests/yacc5.test, tests/yacc6.test, tests/yacc7.test, tests/yacc8.test, tests/yaccpp.test, tests/yaccvpath.test: Update FSF postal mail address.
* * lib/am/subdirs.am ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)):Alexandre Duret-Lutz2005-01-161-8/+20
| | | | | | | Process all words of $MAKEFLAGS when checking for -k. * tests/check4.test: New file. * tests/Makefile.am (TESTS): Add check4.test. Report from Eric Blake.
* Declare recursive install targets as dependencies of `.MAKE', soAlexandre Duret-Lutz2004-12-271-9/+7
| | | | that `make -n install' works with BSD Make too.
* * lib/am/subdirs.am (RECURSIVE_TARGETS): Move install-recursive,Akim Demaille2003-07-061-3/+1
| | | | | | | | install-exec-recursive, install-data-recursive and uninstall-recursive addition to... * lib/am/texinfos.am: here. * lib/am/texinfos.am, lib/am/subdirs.am: Remove the .PHONY declaration of RECURSIVE_TARGETS.
* * lib/am/texi-vers.am, lib/am/subdirs.am, lib/am/scripts.am,Akim Demaille2003-06-021-1/+1
| | | | | | | | | | | | | | | | | | | * lib/am/remake-hdr.am, lib/am/python.am, lib/am/progs.am, * lib/am/program.am, lib/am/multilib.am, lib/am/mans.am, * lib/am/mans-vars.am, lib/am/ltlibrary.am, lib/am/ltlib.am, * lib/am/lisp.am, lib/am/libtool.am, lib/am/library.am, * lib/am/lang-compile.am, lib/am/java.am, lib/am/header.am, * lib/am/header-vars.am, lib/am/footer.am, lib/am/depend.am, * lib/am/dejagnu.am, lib/am/data.am, lib/am/compile.am, * lib/am/clean.am, lib/am/clean-hdr.am, lib/am/check.am, * lib/am/ansi2knr.am, lib/am/Makefile.am, lib/Makefile.am, * m4/strip.m4, m4/sanity.m4, m4/runlog.m4, m4/regex.m4, * m4/python.m4, m4/protos.m4, m4/options.m4, m4/obsolete.m4, * m4/obsol-lt.m4, m4/obsol-gt.m4, m4/multi.m4, m4/missing.m4, * m4/minuso.m4, m4/maintainer.m4, m4/lispdir.m4, m4/lex.m4, * m4/install-sh.m4, m4/header.m4, m4/gcj.m4, m4/dmalloc.m4, * m4/depout.m4, m4/cond.m4, m4/ccstdc.m4, m4/auxdir.m4, m4/as.m4, * m4/Makefile.am: White space changes and Copyright updates.
* * lib/am/subdirs.am:Akim Demaille2002-04-041-2/+2
| | | | | | ($(RECURSIVE_TARGETS), maintainer-clean-recursive): $(MAKEFLAGS) -> $$MAKEFLAGS, so that we don't run into problems if MAKEFLAGS contains '$(...)'.
* * subdirs.am: Don't define info related recursive targets.Akim Demaille2001-04-091-2/+1
| | | | * texinfos.am: Do.
* * subdirs.am (RECURSIVE_TARGETS): New variable.Akim Demaille2001-04-091-12/+9
| | | | | | Use it. * automake.in (&handle_subdirs): Output it. (&file_contents_internal): Support value spread on several lines.
* Make the installation/uninstallation of Info pages follow theAkim Demaille2001-03-051-3/+7
| | | | | | | | | | | | | | | | regular am/recursive scheme. * automake.in (%required_targets, %dependencies): Add install-info. (%dependencies): Add install-info, install-info-am, and unstall-info. (&handle_subdirs): Don't transform INSTALLINFO, which mapping was reversed BTW. Does anybody use the option `no-installinfo'? (&handle_merge_targets): Let the handling of info related targets to... (&handle_factored_dependencies): this. * subdirs.am: Use ?INSTALL-INFO?. * texinfos.am: Define the install-info, uninstall-info and uninstall-info-am targets.
* Distinguish automake substitutions from config.statusAkim Demaille2001-02-271-2/+2
| | | | | | | | | | | | substitutions. * automake.in (&add_depend2): Transform AMDEP. (&handle_clean): Transform MCFILES and MFILES. (&file_contents): Transform MAINTAINER_MODE. (&transform, &am_install_var): Use `%', not `@'. Adjust all the *.am files. * clean.am: Use ?MFILES? instead of ad hoc MAINTAINERCLEAN. * depend2.am: Display the double dependency on both ?AMDEP? and @AMDEP@.
* * automake.in: Formatting and mying changes.Akim Demaille2001-02-231-0/+1
|
* * subdirs.am: This file is the exception: clean recursive targetsAkim Demaille2001-02-061-4/+4
| | | | | | | | | | | | are called by the clean targets, not the clean-am targets. Otherwise we have a circular dependency: clean -> clean-am -> clean-recursive -> clean. * automake.in (handle_clean): Bind `-local' targets to `-am' targets, not top targets. Don't declare -recursive dependencies of the clean targets: `subdirs.am' did it. Less hard coded knowledge, transfered into... * clean.am: here.
* Monstro unsplitable patch.Akim Demaille2001-02-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The aim is to remove hard coded knowledge about clean targets from automake.in, leaving them in the *.am files. In addition to the mechanic needed to factor some dependencies, it appears some rules (most notably distclean and maintainer-clean) need factored actions. So first, be ready to catch factored rules. * automake.in (&file_contents): For the time being, use an extended $RULE_PATTERN which is able to match any kind of rules, with or without dependency, with or without actions. Handle all the rules uniformly, storing in %actions the factored actions. (&flatten, &target_cmp): New. (&handle_factored_dependencies): Output the %actions. No longer special case `clean'. Output the rules in alphabetical order, but keeping `.PHONY' last. Now we must not use &push_phony_cleaners, which is doing all sort of magic to push a bit of everything in all the clean targets. The biggest problem being that, making a Cartesian product, it requires many useless targets. The `*.am' file know better. But first, register the new factored rules. * automake.in (&initialize_per_input): Include clean, mostlyclean, maintainer-clean, distclean and their `*-am' counterpart in %dependencies. Initialize %actions. (get_object_extension, handle_texinfo, handle_tags, handle_multilib) handle_dependencies, handle_subdirs, handle_configure, handle_clean) (handle_emacs_lisp, handle_python): Don't play with &push_phony_cleaners nor &depend and `clean'. * texinfos.am, texi-vers.am, tags-clean.am: * subdirs.am,python-clean.am, multilib.am, lisp-clean.am: * libtool.am, kr-extra.am, depend.am, compile.am, clean.am: * clean-kr.am, clean-hdr.am: Do it. Whenever a target is empty, just remove it, it will no longer be called. There is still some magic about clean to hard code. But really, that's the end of &do_one_clean_target. * automake.in (&do_one_clean_target): Kaboom out. (&handle_clean): Rewrite the magic code. (&am_install_var): No longer use &push_phony_cleaners, nor depend on `clean'. (&push_phony_cleaners): Kaboom too.
* * automake.in (%factored_dependencies): New.Akim Demaille2001-01-311-4/+3
| | | | | | | (file_contents): Use it. (handle_phony): Rename as... (handle_factored_dependencies): this. * subdirs.am: No need for convolved syntax to declare .PHONY.
* * texinfos.am, tags.am, subdirs.am, multilib.am, mans.am: Add aAkim Demaille2001-01-291-1/+7
| | | | | | .PHONY target. * automake.in (handle_texinfo, handle_man_pages, handle_multilib) (handle_etags, handle_subdirs): Don't push into @phony.
* * subdirs.am (maintainer-clean-recursive): Use DIST_SUBDIRS forTom Tromey2000-12-231-1/+9
| | | | | distclean and maintainer-clean. * automake.texi (Top level): Document use of DIST_SUBDIRS.
* * aclocal.in, aclocal.m4: Standardize FSF Copyright statements.Akim Demaille2000-10-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * automake.in, automake.texi: Likewise. * clean-kr.am, clean.am: Likewise. * comp-vars.am: Likewise. * compile, compile.am: Likewise. * data-clean.am: Likewise. * data.am: Likewise. * dejagnu.am: Likewise. * depcomp: Likewise. * depend.am, depend2.am: Likewise. * dist-vars.am, dist.am: Likewise. * elisp-comp: Likewise. * footer.am: Likewise. * header-vars.am, header.am: Likewise. * java-clean.am java.am: Likewise. * kr-extra.am: Likewise. * library.am: Likewise. * libs-clean.am, libs.am: Likewise. * libtool.am: Likewise. * lisp-clean.am lisp.am: Likewise. * ltlib-clean.am ltlib.am: Likewise. * ltlibrary.am: Likewise. * m4/Makefile.in: Likewise. * m4/strtod.m4: Likewise. * mans-vars.am, mans.am: Likewise. * mdate-sh: Likewise. * missing: Likewise. * multilib.am: Likewise. * program.am: Likewise. * progs-clean.am, progs.am: Likewise. * python-clean.am, python.am: Likewise. * remake-hdr.am, remake.am: Likewise. * scripts.am: Likewise. * subdirs.am: Likewise. * tags-clean.am, tags.am: Likewise. * texi-vers.am: Likewise. * texinfos.am: Likewise. * ylwrap: Likewise.
* * subdirs.am (maintainer-clean-recursive): Always run clean rulesTom Tromey2000-08-261-6/+5
| | | | in `.' after all subdirs. Fixes PR automake/3 and PR automake/24.
* * header-vars.am (@SET_MAKE@): Added.Tom Tromey2000-01-061-3/+1
| | | | | * subdirs.am (@SET_MAKE@): Removed. Report from Motoyuki Kasahara.
* From Ralf Corsepius. Fixes lex3.test.Tom Tromey1999-03-111-2/+4
| | | | | | * automake.in (lang_yacc_finish): Include `.' in name pushed onto maintainer-clean list. (lang_lex_finish): Likewise.
* Some bug fixes, plus a complete rewrite of source file handling:Tom Tromey1998-10-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * texinfos.am (install-info-am): Handle case where INFO_DEPS is empty. Reported by Andrew Cagney. (uninstall-info): Likewise. (dist-info): Likewise. * automake.in (handle_texinfo): Error if user tries to generate HTML. * automake.in (do_one_clean_target): Don't push previous clean target if this target is `mostly'. Report from Raja R Harinath. * subdirs.am (mostlyclean-recursive ...): Build local_target, not target. From Raja R Harinath. Completely changed how languages and source files are handled: * automake.in: Call register_language for each language. (lang_c_rewrite): New function. (lang_cxx_rewrite): Likewise. (lang_header_rewrite): Likewise. (lang_yacc_rewrite): Likewise. (lang_yaccxx_rewrite): Likewise. (lang_lex_rewrite): Likewise. (lang_lexxx_rewrite): Likewise. (lang_asm_rewrite): Likewise. (lang_fortran_rewrite): Likewise. (register_language): Likewise. (extension_map): New global. (language_map): Likewise. (resolve_linker): New function. (handle_single_transform_list): Rewrote to use lang_X_rewrite functions. Changed meaning of first argument. (initialize_per_input): Removed seen_any_source. Initialize language_scratch, extension_seen. Removed cxx_extensions, seen_c_source, dir_holds_headers, dir_holds_sources. (handle_source_transform): Don't compute $objpat. Pass $obj directly to handle_single_transform_list. (handle_built_sources): Fixed call to handle_single_transform_list. (lang_c_finish): New function. (lang_cxx_finish): Likewise. (lang_header_finish): Likewise. (lang_yacc_finish): Likewise. (lang_yaccxx_finish): Likewise. (lang_lex_finish): Likewise. (lang_lexxx_finish): Likewise.. (lang_asm_finish): Likewise. (lang_fortran_finish): Likewise. (yacc_lex_finish_helper): Likewise. (libtool_compiler): Likewise. (saw_extension): New function. (handle_lib_objects_cond): Use saw_extension, not old variables. (handle_yacc_lex_cxx): Removed. (finish_languages): New function. (get_object_extension): Don't set dir_holds_sources. (handle_headers): Don't set dir_holds_headers. Instead, call saw_extension. (saw_sources_p): New function. (handle_tags): Use it. (handle_dependencies): Likewise. (cxx_extensions): New function. (handle_dependencies): Use it. (generate_makefile): Call finish_languages, not handle_yacc_lex_cxx.
* `.' in SUBDIRS changes order of builds:Tom Tromey1998-09-281-5/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.am (SUBDIRS): Added `.'. Put tests last. * tags.am (TAGS): Don't look for TAGS file in `.'. * automake.texi (Top level): Document SUBDIRS change. * automake.in (handle_installdirs): Create separate installdirs-am target. (handle_merge_targets): Don't put all-am onto @all. Fixed error message. Correctly handle install-info. Give error if install-info-local inappropriately defined. Don't special-case install-data, install-exec, install, uninstall, or all. (handle_subdirs): Don't push `-recursive' target names onto corresponding lists. (do_one_merge_target): Always define `-am' form of rule, and point ordinary form to `-am' or `-recursive' as appropriate. Special-case `all'. (do_check_merge_target): Generate check-am target. (handle_dist_worker): Use target_defined. (handle_dist): Likewise. (handle_merge_targets): Likewise. (do_one_merge_target): Likewise. (do_check_merge_target): Likewise. (do_one_clean_target): Likewise. (initialize_per_input): Initialize $all_target. (do_one_clean_target): Always generate -am form of rule; other changes for new SUBDIRS change. (handle_clean): Always generate clean-am form of rule. (handle_tags): Only build subdir if not `.'. (handle_dist_worker): Skip `.' directory. * subdirs.am: Allow `.' to be specified in SUBDIRS.
* AM_MAKEFLAGS patch from IanTom Tromey1998-07-171-2/+2
|
* empty subdirs bug fixTom Tromey1997-10-211-2/+4
|
* subdirs fixletTom Tromey1997-08-021-1/+1
|
* make -k fix from ianTom Tromey1997-05-101-4/+6
|
* run clean subdirs in reverse orderTom Tromey1997-04-301-3/+19
|
* installs now 'quiet'Tom Tromey1996-12-081-2/+3
|
* Initial draft of --cygnus mode.Tom Tromey1996-11-071-1/+1
| | | | Bug fixes for config.h in subdir
* More bug fixesTom Tromey1996-07-051-1/+0
|
* Bug fixesTom Tromey1996-02-171-1/+1
|
* Many bug fixesTom Tromey1996-02-081-1/+1
|
* Patches from Jim Meyering.Tom Tromey1996-01-061-0/+17
| | | | Put copyright in all files
* Many changes from Franc,oisTom Tromey1996-01-021-1/+0
|
* Many cleanups.Tom Tromey1995-12-051-5/+3
| | | | Added --strictness option.
* Handle installcheck.Tom Tromey1995-12-031-2/+5
| | | | | Handle ## comments. Fixlets
* (RECURSIVE): Removed uninstall-data-recursive andTom Tromey1995-11-291-4/+3
| | | | uninstall-exec-recursive. Added installdirs-recursive.
* Removed bogus local clean targetsTom Tromey1995-11-271-23/+0
|