* aclocal.in ($acdir): Rename as ...
(@system_includes): ... this.
(@user_includes, @automake_includes): New variables.
($default_acdir, $default_dirlist): Remove.
(parse_arguments): Populate @user_includes, @automake_includes, and
@system_includes instead of filling a unique @dirlist array.
("MAIN"): Adjust to scan m4 files in @user_includes,
@automake_includes, and @system_includes.
* aclocal.in: Use Automake::ChannelDefs, and adjust all output
to be done via `fatal', `msg', `verb', or `prog_error'.
(version): New function.
(parse_arguments): Rewrite using Getopt::Long, call &version, and
honor -W and --warning.
($verbose): Remove.
(trace_used_macros): Do not trace the first arguments of macros
for which we do not need it. This caused failures because of
unexpected newlines in the output.
* doc/automake.texi (aclocal options): Document -W and --warning.
* tests/defs.in (ACLOCAL): Always use -Werror, to catch Perl
warnings about uninitialized variables.
* aclocal.in (write_aclocal): Make sure $map_traced_defs{$m} exists
before using it. Suppress a warning observable in test/acloca16.test.
Report from Ralf Wildenhues.
* lib/Automake/XFile.pm (lock): Make sure $ENV{'MAKEFLAGS'} exists
before inspecting it; this fixes "uninitialized value in
concatenation" diagnostics when flock fails.
Report from Gary V. Vaughan.
* aclocal.in: Use strict and -w. Declare local variables with `my',
and get rid of `local'.
(scan_m4_files, add_macro): Reindent these functions while we are
at it.
* lib/install-sh: Fix the dirname emulation to ignore trailing
slashes, i.e., the direname of `a/b/' is `a', not `a/b/'. This
caused `install-sh a/b/' to fail.
* tests/instsh2.test: Augment.
Report from Пухальский Юрий Андреевич.
* automake.in (get_object_extension): The extension to use is know
by the caller, and cannot be selected by looking only at the
target name. Simplify this function to simply conditionally
prepend $U to the given extension.
(handle_programs, handle_libraries, handle_ltlibraries): Hard-code
the extension to use. This way Automake won't mistake a program
named `foo.la' as a libtool library.
* tests/primary3.test: New file.
* tests/Makefile.am (TESTS): Add primary3.test.
* doc/automake.texi (Install): Link to node Extending for examples.
(Extending): More comments about install-data-hook vs
install-exec-hook, and link to Install.
* configure.ac: Export @am_AUTOCONF@.
* tests/defs.in (AUTOCONF): Define as @am_AUTOCONF@, not @AUTOCONF@,
so the test suite runs `autoconf' and not `missing --run autoconf'.
* tests/missing.test, tests/missing2.test: Arrange for missing
to be used in front of autoconf even if the user has exported
AUTOCONF. This fixes two spurious failures reported by
Mark D. Baushke.
* m4/as.m4 (AM_PROG_AS): Check dependency tracking mode for CCAS.
* automake.in (cppasm): Use the dependency tracking more for CCAS.
* doc/automake.texi (Assembly Support): Note that *.S are
preprocessed with CPPFLAGS.
* automake.in (Languages): Split .s (asm) and .S (cppasm) into
separate languages. Make cppasm (Preprocessed Assembler) aware
of CPPFLAGS, AM_CPPFLAGS.
(handle_languages): Fix typo.
(lang_cppasm_rewrite): New function.
* automake.in (handle_languages, define_compiler_variable): Output
Libtool's --tag= option before --mode=compile, because depcomp use
--mode=compile as end marker for libtool arguments.
(define_linker_variable): Likewise before --mode=link, for
uniformity.
* tests/pr307.test: Make sure dependency files are updated. That
was not the case because depcomp thought `--tag=CC' was the
compiler to get dependencies from.
Report from Пухальский Юрий Андреевич.
* configure.ac: Require Perl 5.6.
* lib/Automake/Config.in: Require Perl 5.6 (not done in
lib/Automake/General.pm because it is shared with Autoconf),
and use `our' instead of `use vars'.
* aclocal.in (rel2abs): Remove.
(scan_configure_dep): Use File::Spec->rel2abs instead.
* tests/compile.test, tests/instsh2.test, tests/instspc.test: Use
two consecutive spaces in filename instead of one, to catch mistake
like `echo $val | ...`.
* tests/README: Suggest this.
Suggested by Ralf Wildenhues.
* doc/automake.texi (Timeline): New node. Thanks to Karl and Tom
for their comments on a preliminary version of this, Akim for
digging out some old mails, and Jason Molenda for sending the note
about Automake in Alias to Tom.
(Releases): Rename `ac' to `acl', suggested by Akim.
* 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.