* m4/amversion.in (AM_AUTOMAKE_VERSION): Point users to
AM_INIT_AUTOMAKE if the version passed is incorrect.
* tests/version8.test: New file.
* tests/Makefile.am (TESTS): Add version8.test.
* aclocal.in ($ac_defun_rx): Match AU_ALIAS.
* tests/aclocal5.test (MORE_DEFS): Rename as...
(AM_TEST_SUBST): this so that undefined macros are caught.
And make it an alias of AC_SUBST.
Test AU_ALIAS.
Reported by Martin Bravenboer.
Fix handling of per-target flags in link rules.
* automake.in (define_per_target_linker_variable): New function.
(handle_programs, handle_ltlibraries): Use it.
(%link_languages): New map.
(register_language): Fill it.
* lib/am/ltlibrary.am (%LTLIBRARY%): Do not append
$(%XLTLIBRARY%_LDFLAGS) to the command, this is now done by
define_per_target_linker_variable if needed.
* lib/am/program.am (%PROGRAM%%EXEEXT%): Likewise with
$(%XPROGRAM%_LDFLAGS).
* doc/automake.texi (Program and Library Variables): Mention
AM_LDFLAGS and AM_LIBTOOLFLAGS in the definition of maude_LDFLAGS
and maude_LIBTOOLFLAGS.
* tests/libtool9.test: New file.
* tests/Makefile.am (TESTS): Add it.
* NEWS: Explain the backward incompatibility.
Report from Akim Demaille.
* doc/automake.texi (Requirements) <AC_CONFIG_FILES>: Discuss
specifications with shell variables.
(Optional) <AC_CONFIG_HEADERS, AC_CONFIG_LINKS>: Point to
AC_CONFIG_FILES for this explanation.
* automake.in (substitute_ac_subst_variables_worker,
substitute_ac_subst_variables): Mew functions.
(rewrite_inputs_into_dependencies): Use substitute_ac_subst_variables
to ignore dependencies that contain unAC_SUBSTed shell variables.
(handle_configure): Likewise, do not output rules for
AC_CONFIG_HEADERS, AC_CONFIG_FILES, and AC_CONFIG_LINKS targets that
unAC_SUBSTed contain shell variables.
* tests/autohdr4.test: Use an AC_SUBST variable in a specification.
* tests/output11.test, tests/output12.test: New files.
* tests/Makefile.am (TESTS): Add output11.test and output12.test.
* doc/automake.texi (Requirements) <AC_CONFIG_FILES>: Discuss
specifications with shell variables.
(Optional) <AC_CONFIG_HEADERS, AC_CONFIG_LINKS>: Point to
AC_CONFIG_FILES for this explanation.
* automake.in (substitute_ac_subst_variables_worker,
substitute_ac_subst_variables): Mew functions.
(rewrite_inputs_into_dependencies): Use substitute_ac_subst_variables
to ignore dependencies that contain unAC_SUBSTed shell variables.
(handle_configure): Likewise, do not output rules for
AC_CONFIG_HEADERS, AC_CONFIG_FILES, and AC_CONFIG_LINKS targets that
unAC_SUBSTed contain shell variables.
* tests/autohdr4.test: Use an AC_SUBST variable in a specification.
* tests/output11.test, tests/output12.test: New files.
* tests/Makefile.am (TESTS): Add output11.test and output12.test.
Support for `install-dvi', `install-html', `install-ps', and
`install-pdf', as recently introduced into the GNU Coding
Standard.
* automake.in (handle_factored_dependencies): Reject
uninstall-dvi-local, uninstall-html-local, uninstall-info-local,
uninstall-ps-local, and uninstall-pdf-local. Allow
install-info-local even when no-installinfo is not used.
(handle_data): Allow datarootdir, dvidir, htmldir, pdfdir, and psdir.
(%standard_prefix): Declare these new standard directory variables.
* doc/automake.texi (Texinfo, Third-Party Makefiles): Document
install-dvi, install-html, install-pdf, and install-ps.
(Extending): Document install-local-dvi, install-local-html,
install-local-info, install-local-pdf, and install-local-ps.
* lib/Automake/Rule.pm (%dependencies): Add new install rules,
and remove uninstall-info.
* /cvs/automake/automake/lib/am/texinfos.am (install-dvi,
install-dvi-am, install-dvi-recursive, install-html,
install-html-am, install-html-recursive, install-pdf,
install-pdf-am, install-pdf-recursive, install-ps, install-ps-am,
install-ps-recursive, uninstall-dvi-am, uninstall-html-am,
uninstall-pdf-am, uninstall-ps-am): New rules.
(uninstall-info): Delete.
* tests/txinfo21.test: Augment to check for these new rules.
* tests/exdir2.test: Do not use `htmldir' as example of
undefined directory.
* tests/overrid.test: Do not be fooled by install-ps and
install-html.
* tests/txinfo10.test: Do not grep for uninstall-info-recursive.
* Makefile.am (maintainer-check): Refine check for @_ in scalar
context. Check for correct use of PRE_INSTALL, NORMAL_INSTALL,
POST_INSTALL, PRE_UNINSTALL, NORMAL_UNINSTALL, and POST_UNINSTALL.
* lib/am/texinfos.am (uninstall-info-am): Hide the invocation of
$(PRE_UNINSTALL).
* install-sh: Use `(exit N); exit N', not `(exit N); exit'.
Otherwise, install-sh could exit with improper exit status when
exiting via a trapped interrupt. Thanks to a report from Bob Proulx.
* automake.in (check_user_variables): New function, extracted
from ...
(handle_languages): ... here.
(handle_languages, define_compiler_variable, define_link_variable):
Honore LIBTOOLFLAGS.
(handle_single_transform): Check _LIBTOOLFLAGS in
addition to other per-target flags for Libtool objects.
(handle_libtool): Warn if LIBTOOLFLAGS is defined.
* doc/automake.texi (Libtool Flags, Program and Library Variables,
Flag Variables Ordering): Document LIBTOOLFLAGS.
* tests/libtool7.test: Check basic support for LIBTOOLFLAGS.
* tests/libtool8.test: Make sure Automake warns about LIBTOOLFLAGS
definitions.
* tests/subobj9.test: Adjust.
Fix PR automake/441:
* lib/am/java.am (install-%DIR%JAVA, uninstall-%DIR%JAVA): Do
not install *.class if "$(%DIR%_JAVA)" is empty.
* tests/java3.test: New file.
* tests/Makefile.am (TESTS): Add it.
Report from Johannes Nicolai.
* lib/Automake/FileUtils.pm (dir_has_case_matching_file,
reset_dir_cache): New functions.
* automake.in (handle_dist, require_file_internal): Use them, so
that CHANGELOG is not confused with ChangeLog on case-insensitive
case-preserving file systems.
* tests/hfs.test: New file.
* tests/Makefile.am (TESTS): Add hfs.test.
* lib/mdate-sh: Don't use "set - x`$ls_command /`", as zsh mishandles
the spaces inside $ls_command. Problem reported by Loulou Pouchet in
<http://lists.gnu.org/archive/html/autoconf/2004-12/msg00074.html>.
Don't use "set - x"; plain "set x" is enough, and simplifies debugging.
Paul Eggert [Wed, 8 Dec 2004 20:33:11 +0000 (20:33 +0000)]
Don't use "set - x`$ls_command /`", as zsh mishandles
the spaces inside $ls_command. Problem reported by Loulou Pouchet in
<http://lists.gnu.org/archive/html/autoconf/2004-12/msg00074.html>.
Don't use "set - x"; plain "set x" is enough, and simplifies debugging.
* lib/py-compile: Add --destdir switch to py-compile that takes a
path argument that is not compiled into the file when byte compiling.
* lib/am/python.am: Use the new py-compile arguments to not include
DESTDIR in the byte compiled files.
* tests/python12.test: Test that DESTDIR won't be byte compiled into
python files.
* doc/automake.texi: Use @acindex for Autoconf macros, and @vindex
for variables (@cvindex was previously used for both). Separate
these two indices in the output. Use @code, @file, and @command
in @cindex lines wherever appropriate so they render nicely.
* automake.in (parse_arguments): Diagnose empty arguments, options
with missing argument, and support `--'.
* aclocal.in (parse_arguments): Diagnose options with missing
argument.
* tests/aclocal.test: More checks.
* tests/automake.test: New file.
* tests/postprog.test: Use `--' for fun.
* tests/Makefile.am (TESTS): Add automake.test.
Report from Eric Blake.
* lib/am/progs.am (installcheck-%DIR%PROGRAMS): Run programs with
/dev/null as input, so we do not hang on programs that read their
input without supporting --help and --version.
* lib/am/scripts.am (installcheck-%DIR%SCRIPTS): Likewise for scripts.
* tests/gnits2.test: Change scriptnok.sh to cat its input.
Report and fix from James Youngman.
* aclocal.in (%file_type, FT_USER, FT_AUTOMAKE_SYSTEM): New variables.
(scan_m4_dirs): New function, extracted from ...
(scan_m4_files): ... here. Call scan_m4_files three times, for each
FT_ constant.
(scan_file): Take a file type argument to update %file_type.
(write_aclocal): Do not m4_include files that are not of type FT_USER.
* tests/dirlist.test: Make sure m4_include is not used for --acdir
files.
* m4/python.m4 (AM_PATH_PYTHON): Fix the invocation of
AC_PATH_PROGS to correctly define PYTHON as `:' when no interpreter
is found (this worked correctly only when a minimal version was
passed to AM_PATH_PYTHON). Report from Stepan Kasal.
(_AM_PYTHON_INTERPRETER_LIST): Define using m4_define_default,
so we can easily override the list from the test suite.
* tests/python11.test: New file.
* tests/Makefile.am (TESTS): Add python11.test.
* 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.