* 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.
* 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.