Fix for PR automake/447:
* lib/depcomp (tru64) [libtool]: Also check for $dir.libs/$base.o.d.
Report from Mathias Doreille. Add some old comments from
Nicolas Joly for reference.
* aclocal.in (usage, parse_arguments): New --dry-run and --diff
options.
(install_file, write_aclocal): Honor --dry-run and --diff.
* doc/automake.texi (aclocal options): Document --dry-run and --diff.
(Serials): Mention --diff.
* lib/Automake/FileUtils.pm (handle_exec_errors): Accept an
$expected_exit_code argument.
(xsystem): Take a list of arguments, not a string.
* tests/acloca18.test: Use --dry-run and --diff.
Suggested by Paul Eggert.
* doc/automake.texi (aclocal options, Macro search path,
Extending aclocal, Local Macros, Serials, Future of aclocal): Make
these subsection of ...
(Invoking aclocal): ... this.
* aclocal.in ($serial_line_rx): Allow trailing garbage after the
serial number.
(scan_file): Explicitly mark the "ill-formed serial" message
as a warning.
* doc/automake.texi (aclocal options, Local Macros): Link to...
(Serials): ... this new section.
* lib/elisp-comp: Use `(exit N); exit N', not `(exit N); exit';
see 2004-12-17.
* lib/mdate-sh, lib/py-compile, lib/ylwrap: Exit with nonzero
status if a write failure occurs with --help or --version option,
as below.
Preliminary support for `aclocal --install'.
This still lacks #serial support.
* aclocal.in (reset_maps, install_file): New functions.
(write_aclocal): Copy files if --install.
(usage, parse_arguments): Recognize --install.
("MAIN"): Start aclocal again if some file were installed.
* tests/acloca10.test: Augment to test --install.
* tests/aclocal.in, tests/defs.in: Add support for
ACLOCAL_TESTSUITE_FLAGS, used by acloca10.test.
* doc/automake.texi (aclocal options, Local Macros): Document
--install.
(Future of aclocal): Adjust.
Akim Demaille [Mon, 24 Jan 2005 17:03:50 +0000 (17:03 +0000)]
* lib/Automake/FileUtils.pm: Rename filename as file_name to be
consistent with the terminology of the GNU coding standards.
From Paul Eggert.
(update_file): Accept a $force argument, so that --force always
updates the time stamps.
* doc/automake.texi (How the Linker is Chosen): Explain how the
linker is chosen without diagram, and update to match the code.
Suggestion from Adrian Bunk.
* lib/am/subdirs.am ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)):
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.
* 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.