* doc/automake.texi (Dependencies): Link to Dependency Tracking
Evolution.
(Dependency Tracking Evolution): Link to GNU make, Sources (for
BUILT_SOURCES), and update the paragraph about the "plan" to
inline dependency tracking with gcc3.
* doc/automake.texi (History): New node.
(Dependency Tracking Evolution): New node, filled with a Texinfo
version of Tom Tromey's ``Dependency Tracking in Automake''
document, initially published on the Automake homepage on
2001-06-29.
* m4/minuso.m4 (AM_PROG_CC_C_O): Make sure AC_PROG_CC is never
called after this macro.
* tests/distname.test, tests/subdir5.test, tests/subdir8.test,
tests/subobj.test, tests/subobj4.test, tests/subobj5.test,
tests/subobj6.test: Adjust.
Report from Ralf Wildenhues.
* lib/Automake/Channels.pm (_print_message): Handle uniq_part with
arbitrary string.
* automake.in (lang_c_rewrite): Set uniq_part so that the
AM_PROG_CC_C_O diagnostic is output only once for subdir objects
and only once for objects with per-target flags.
* automake.in (lang_c_rewrite): Print files and locations
for AM_PROG_CC_C_O errors.
(handle_single_transform): Pass $var to &$subr so it can
print locations.
* automake.in (handle_clean): Sort rm commands output for
mostlyclean-generic, clean-generic, distclean-generic, and
maintainer-clean-generic.
Report from Bob Friesenhahn.
* automake.in (lang_c_rewrite): Do not require AM_PROG_CC_C_O for
libtool objects.
(handle_single_transform): Pass nonansi_obj to &$subr so
lang_c_rewrite can distinguish libtool objects.
* tests/libtool7.test: Use subdir-objects without using AM_PROG_CC_C_O.
Report from Gary V. Vaughan and Patrick Welche.
* tests/missing3.test: New file (check for Paolo's change below).
* tests/Makefile.am (TESTS): Add missing3.test.
* missing: Handle all command line options together. Add a
separate case statement to detect failed runs, and fail
silently there if --help or --version is passed to the program.
* lib/Automake/DisjConditions.pm (new): Precompute 'string' and 'conds'
in place instead of as a side-effect of calling ->string and ->conds.
This saves method-lookup time, simplify ->string and ->conds, and
allows to create the object only when necessary.
(string, conds): Simplify, now that the result is precomputed.
* lib/Automake/Variable.pm (%_primary_dict): New hash.
(_new, variable_delete): Update %_primary_dict.
(variables): Accept an optional $suffix argument.
* automake.in (check_typos, am_primary_prefixes): Use that
optional argument to restrict the loops over the variables we are
interested in.
Speed up make_paragraphs.
* automake.in (handle_languages): Always define SUBDIROBJ,
DERIVED-EXT, and DIST_SOURCE, because the new transform() will
abort on unknown tokens.
(transform): Rewrite with different semantics.
(make_paragraphs): Make a single pass over the paragraph to
transform all template tokens instead of doing as much passes as
possible token.
* automake.in ($libtool_new_api): New variable.
(handle_libtool): Do not libtool's aux files if $libtool_new_api.
(scan_autoconf_traces) <LT_SUPPORTED_TAG>: Set $libtool_new_api.
(scan_autoconf_traces) <AC_REQUIRE_AUX_FILE>: Remember only the
first location for required files.
Support AC_REQUIRE_AUX_FILE, and fix requirement of AM_PROG_CC_C_O.
* automake.in (%required_aux_file): New hash.
(handle_single_transform, lang_c_rewrite): Do note explicitly
require 'compile', this is now an internal detail of
AM_PROG_CC_C_O.
(scan_autoconf_traces): Trace AC_REQUIRE_AUX_FILE and fill
%required_aux_file.
(scan_autoconf_files): Require all %required_aux_file instead
of explicitly requiring install-sh and missing.
(generate_makefile): Do not require config.sub and config.guess.
(handle_single_transform): Pass $have_per_exec_flags to
&lang_c_rewrite.
* configure.ac, m4/init.m4: Require Autoconf 2.59a.
* doc/automake.texi (Optional): Document AC_REQUIRE_AUX_FILE.
(Program and Library Variables, Options, Public macros):
AC_PROG_CC_C_O is required when per-target flags or subdir-objects
are used with C sources.
* m4/minuso.m4: Require `compile' using AC_REQUIRE_AUX_FILE.
* m4/missing.m4: Require `missing' similarly.
* tests/acsubst2.test, tests/distcom2.test, tests/distcom6.test,
tests/specflg.test, tests/specflg2.test, tests/specflg3.test,
tests/specflg6.test, tests/specflg7.test, tests/specflg8.test,
tests/specflg9.test, tests/subobj7.test, tests/target-cflags.test,
tests/yacc6.test: Fix to use AM_PROG_CC_C_O.
* automake.in (yacc_lex_finish_helper): Fix definition of YLWRAP
when ylwrap is installed in a default aux dir found in a parent
package.
* tests/subpkg.test: Augment to check that YLWRAP is installed
properly.
* doc/automake.texi (Yacc and Lex): ylwrap is not sought is the
current directory.
Report from Norman Gray.
* automake.in (AC_CANONICAL_HOST, AC_CANONICAL_SYSTEM): Replace by ...
(AC_CANONICAL_BUILD, AC_CANONICAL_HOST, AC_CANONICAL_SYSTEM): ... these.
(scan_autoconf_traces): Scan for the latter three macros instead of
the former two.
(make_paragraphs): Adjust definitions of %BUILD%, %HOST%, and %TARGET%.
* tests/hosts.test: New file.
* tests/Makefile.am (TESTS): Add hosts.test.
Report and test case from Norman Gray.
Disable Lex and Yacc rules whenever possible if AM_MAINTAINER_MODE
is used and maintainer-mode disabled.
* automake.in (Automake::struct): Define nodist_specific.
Set it in languages yacc, yaccxx, lex, and lexxx.
(register_language): Default nodist_specific to 0.
(handle_single_transform): Honor nodist_specific.
* lib/am/yacc.am (am__skipyacc): Define this in maintainer mode.
(%EXT%%DERIVED-EXT%, %OBJ%): Use $(am__skipyacc) to disable these
rules when needed.
* lib/am/lex.am (am__skiplex): Define this in maintainer mode.
(%EXT%%DERIVED-EXT%, %OBJ%): Use $(am__skiplex) to disable these
rules when needed.
* tests/mmodely.test: New file.
* tests/pr204.test: Augment to check AM_MAINTAINER_MODE and nodist_
parsers.
* tests/Makefile.am (TESTS): ADd mmodely.test.
* doc/automake.texi (Yacc and Lex): Note dependence on maintainer mode.
* lib/am/yacc.am, lib/am/lex.am: Only compile these targets in
maintainer mode.
* doc/automake.texi (Yacc and Lex): Note dependence on maintainer mode.
* NEWS: Note same dependency.
* tests/mmode-lexyacc.test: New file.
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): Remove `.' from the mkdir_p
definition, it causes `make install' to fails for user with no
right to write in the source-tree.
* automake.in (handle_configure): Do not use mkdir_p in the
definition for $(mkdir_p).
Report from Harlan Stenn.
* lib/am/distdir.am (distdir): Always use $(DIST_SUBDIRS) now
that it is always defined. This is less confusing for users
reading the generated Makefiles.
* automake.in (handle_dist): Do not substitute DIST_SUBDIR_NAME.
* lib/am/texibuild.am (?GENERIC?%SOURCE_SUFFIX%.html,
?!GENERIC?%DEST_PREFIX%.html): Output .htp, and then rename to .html
on success. In case the target is a directory, this ensures its
time stamp is updated and the no files are left over inside.
* tests/txinfo21.test: Augment to test missing timestamp update
reported by Akim Demaille.
* doc/automake.texi (Top level): Rename as ...
(Directories): ... this, and split into ...
(Subdirectories, Conditional Subdirectories): ... these.
(Conditional Subdirectories): Describe SUBDIRS and DIST_SUBDIRS
before the example. Append a discussion about non-configured
conditional directories.
(Alternative): Move as a child of Directories.
(Subpackages): New section.
(Dist): Adjust links to Subdirectories, a Subpackages.
(Third-Party Makefiles): Link to Conditional Subdirectories.
* automake.in (target_hook): Accept %transform as last argument.
(define_objects_from_sources): Pass %transform to target_hook.
(handle_source_transform): Define DIST_SOURCE to tell whether
a the source of a file is distributed or not.
(lang_yacc_target_hook): Check DIST_SOURCE, and do not distribute
the generated header if the .y source is not distributed.
* tests/pr204.test: Use AM_YFLAGS = -d and make sure generated
headers are not distributed.
For PR automake/428:
Support for conditionally defined -hook and -local rules.
* automake.in (user_phony_rule): New function.
(handle_dist, handle_install, handle_all, do_check_merge_target,
handle_factored_dependencies): Use user_phony_rule before
adding a user -hook or -local rule as a dependency to ensure
it is always defined an phony.
* tests/cond37.test, tests/condhook.test: New files.
* tests/Makefile.am (TESTS): Add them.
Report from Simon Josefsson and Nik A. Melchior.
Paul Eggert [Mon, 5 Jul 2004 07:07:32 +0000 (07:07 +0000)]
Remove support for -b= and -t= options; this
has been moribund for a decade.
Add support for -t and -T options (new in coreutils install).
-c option now does nothing (the default is to copy), for
compatibility with BSD and coreutils 'install'.
Fix usage message; it referred to nonexistent variables.
Don't assume 'lasterr' is unset in environment.
For Debian Bug #251820:
* aclocal.in (scan_file): Keep track of the location where each
file is included, and display it when reporting a missing file.
Pass this location to scan_file as a second argument.
(scan_m4_files): Adjust calls to scan_file.
* tests/acloca14.test: Add a test for this diagnostic.
* tests/defs.in (required=icc): Use `-V -help' instead of
`-V -dryrun'. icc 8.0 fails on the latter.
* tests/depcomp5.test: Require depmode=icc for icc 7.x, and
depmod=gcc otherwise.
Report from Ralf Wildenhues.
* lib/depcomp (tru64) [libtool]: Use $dir$base.o.d instead
of $dir.libs/$base.o.d. Libtool 1.5 causes both to be output,
and we will clean the second automatically during distclean.
Using the latter and leaving the former as we did before cause
"files left in build directory" failures during distcheck.
Suggested by Nicolas Joly.
* doc/automake.texi (Built sources example): Explain what
nodist_foo_SOURCES is (not) useful to, and use it in all the
examples.
(Tags): Mention nodist_noinst_HEADERS and nodist_prog_SOURCES.
Suggested by Akim Demaille.
* lib/am/multilib.am: Add $(MAKE) comments to multido and
multiclean lines, to enable parallel make. Based on a patch
by Alexandre Oliva applied to newlib on 2003-10-15.
* automake.in (scan_autoconf_traces): Trace for LT_SUPPORTED_TAG
instead of AC_LIBTOOL_TAGS, since that how CVS Libtool has been
changed.
* tests/libtool3.test: Do not grep for --tag=CC, since CVS
Libtool (unlike Libtool 1.5) does not has any CC tag.
* automake.in (handle_libraries): Make the diagnostic about
non standard libraries a warning in foreign packages. This
is already the case in handle_ltlibraries.
(handle_libraries, handle_ltlibraries): Suggest a standard
library name in the diagnostic, to help newcomers.
* tests/stdlib.test, tests/stdlib2.test: Check for these
suggestions.
Check directory names for unportable names. Shaking the code
to check this also led to the removal of the no-"/"-in-SUBDIRS
restriction, and a fix to _do_recursive_traversal.
* automake.in (check_directory): New function extracted from
handle_subdirs, and augmented to check for reserved W32/DOS name.
(check_directories_in_var): New function.
(handle_subdirs): Call check_directories_in_var. Doing so also
suppress the restriction that SUBDIRS should not contain slashes.
(scan_autoconf_traces) <AC_CONFIG_AUX_DIR>: Call check_directory
to ensure the argument exists and is safe.
* doc/automake.texi (Top level): Do not say that src/subdir
cannot be put in SUBDIRS.
(Dist): Mention that distdir and top_distdir can be absolute.
* lib/Automake/Variable.pm (_do_recursive_traversal) Support
undefined $fun_collect, and fix two bugs introduced with
skip_ac_subst on 2004-03-07.
* lib/am/distdir.am (distdir): Use absolute distdir and
top_distdir when recursing, because we can no longer prepend only
`..' in case of SUBDIRS with `/'.
* tests/auxdir4.test, tests/subdir9.test: New files.
* tests/Makefile.am (TESTS): Add auxdir4.test.
* tests/cond2.test, tests/subdir7.test: Augment to check location
in diagnostics.
* m4/cond.m4 (AM_CONDITIONAL): Double-quote diagnostic.
* tests/condd.test: Define a macro with the same name as a
conditional.
* tests/pr220.test: Modernize, and make sure the diagnostics
contains the macro name.
Report from Volker Boerchers.
* automake.in (handle_dist): Always define DIST_SUBDIRS, even when
the no-dist or cygnus options are used.
* tests/clean2.test: New file.
* tests/Makefile.am (TESTS): Add clean2.test.
Report from Daniel Jacobowitz.
* aclocal.in (add_macro): Do not error out on undefined required
macros. We are not sure they are really used, and Autoconf
already diagnoses them.
(scan_configure_dep): Diagnose missing AM_ macros as warnings rather
than errors.
* tests/aclocal3.test, tests/ammissing.test: Adjust to expect a
warning instead of an error.
* tests/aclocal8.test: AC_REQUIRE an undefined macro in an unused
macro, and ensure aclocal works anyway.
* tests/acloca17.test: New file.
* tests/error.test: Delete, superseded by tests/acloca17.test.
* tests/Makefile.am (TESTS): Add acloca17.test and remove error.test.
Report from Jim Meyering.
* automake.in (parse_arguments, MAIN): Give more precise
diagnostics when not input file is found.
* tests/output5.test: Adjust.
Suggested by Jens Petersen.
* lib/am/libs.am (AR, ARFLAGS): Move these definition ...
* automake.in (handle_libraries): ... here, so that they are
output even for EXTRA_LIBRARIES.
* tests/ar2.test: New file.
* tests/Makefile.am (TESTS): Add it.
Report from Kevin Ryde.
* automake.in (generate_makefile): Do not output Makefile.in on
errors.
* tests/werror2.test: New file.
* tests/Makefile.am (TESTS): Add werror2.test.
* tests/substtarg.test, tests/cond36.test, tests/backsl4.test:
Adjust to run automake with -Wno-error when the output is expected
in spite of the error.
Report from Harlan Stenn.
* automake.in (handle_source_transform): Also check for a
$(srcdir)/old_source rule when computing the default source name.
Propagate this $(srcdir) prefix in Automake variables.
* tests/ltlibsrc.test (noinst_LTLIBRARIES): Explicitly refer to
$(srcdir)/zoo_d_old2_la.c. This fixes another failure with BSD Make.
* tests/lex3.test, tests/yacc6.test: Require GNU Make.
Fixing these for BSD Make requires invasive changes (lexers and
parsers must be built into $srcdir, and--most annoyingly--all
references to parse.h must be changed to $(srcdir)/parse.h).
Report from Mark D. Baushke.
* lib/Automake/VarDef.pm (append): Turn VAR_ASIS variables into
VAR_PRETTY variables to work around make implementation with
limited line length, such as OSF1/Tru64 make.
* tests/longline.test: New file.
* tests/Makefile.am (TESTS): Add it.
* tests/pluseq3.test, tests/pluseq8.test: Adjust.
Report from Simon Josefsson.
* lib/am/tags.am (TAGS): Pass `.' to Exuberant Ctags if
--etags-include is used but no other files are supplied, so it
creates the TAGS file anyway.
Report from Akim Demaille.
* lib/depcomp (tru64) [libtool]: Nicolas Joly reported on
2002-06-12 that dependencies were output in $dir.libs/$base.lo.d.
Teun Burgers reported on 2004-03-30 they were in
$dir.libs/$base.o.d. Try both.
For PR automake/414:
Introduce options tar-v7, tar-ustar, and tar-pax to select
tar format.
* doc/automake.texi (Options): Document them.
* lib/Automake/Options.pm (_process_option_list): Process
these new options.
* lib/am/distdir.am (dist-gzip, dist-bzip2, dist-tarZ, dist,
distcheck): Adjust to use am__tar and am__untar.
* m4/tar.m4: New file.
* m4/Makefile.am (dist_m4data_DATA): Add tar.m4.
* m4/init.m4 (AM_INIT_AUTOMAKE): Support the new options
and call _AM_PROG_TAR.
* tests/tar.test, tests/tar2.test, tests/tar3.test: New files.
* tests/Makefile.am (TESTS): Add them.