Support for remote LIBOBJS (and friends) with subdir-objects.
Fixes PR automake/401.
* automake.in (config_libobj_dir): New variable.
(scan_autoconf_traces): Set config_libobj_dir from AC_CONFIG_LIBOBJ_DIR.
(handle_LIBOBJS_or_ALLOCA, require_libsource_with_macro): New functions.
(handle_LIBOBJS, handle_ALLOCA): Use them. Adjust location of
dependency files, possibly in a subdirectory.
* tests/pr401.test, tests/pr401b.test, tests/pr401c.test: New tests.
* tests/Makefile.am (TESTS): Add them.
* doc/automake.texi (Optional) <AC_CONFIG_LIBOBJ_DIR>: Document.
(LIBOBJS): Document changes in behaviour of
LIBOBJS, ALLOCA, LTLIBOBJS & LTALLOCA in the presence of
subdir-objects and an invocation of AC_CONFIG_LIBOBJ_DIR.
* doc/automake.texi (Uniform): Use xmldir instead of htmldir as
example, since the GCS now define htmldir.
(Auxiliary Programs): Mention config-ml.in and symlink-tree.
Give a URL for texinfo.tex.
(Public macros): Sort alphabetically, and move obsolete macros...
(Obsolete macros): ... here.
Prompted by Karl Berry.
* lib/am/lisp.am ($(am__ELCFILES)): Prevent races if the recover
rule is run with `make -j'.
* doc/automake.texi (Multiple Outputs): Adjust.
* tests/lisp6.test: Augment it.
* tests/lisp8.test: New file.
* tests/Makefile.am (TESTS): Add lisp8.test.
Suggested by Bruno Haible.
* lib/am/lisp.am ($(am__ELCFILES)): Do not attempt to recover
a missing *.elc file if it cannot be created because emacs does
not exist.
* tests/lisp7.test: New file.
* tests/Makefile.am (TESTS): Add lisp7.test.
Report from Greg Schafer.
* aclocal.in (scan_configure_dep, scan_file): Include file names
are relative to the directory of configure.ac, not to the
directory of the file doing the include. Remove code for this
latter case.
* tests/acloca13.test: Run distcheck and make sure all macros are
actually distributed.
For PR automake/450:
* aclocal.in (write_aclocal, trace_used_macros): Do not add/remove
acinclude.m4 and configure.ac to the include map in these two
places ...
(strip_redundant_includes): ... do it here. This completes the
previous change from 2005-03-01, that did not update
write_aclocal.
* tests/acloca19.test: Augment.
Report from Peter Breitenlohner.
Fix for PR automake/450:
* aclocal.in (trace_used_macros): Do not explicitly trace files
included by configure.ac.
* tests/acloca19.test: New file.
* tests/Makefile.am (TESTS): Add acloca19.test.
Report from Peter Breitenlohner.
* doc/automake.texi (A Library, Libtool Libraries): Show how to link
a program with a static or libtool library.
(Program and Library Variables): Make clearer that _LDADD and
_LIBADD may also list libraries.
Prompted by a mail from Bruce Korb.
* doc/automake.texi (Alternative): Show how to rewrite nobase_
variables using custom directory variables, and link to node
Uniform. Suggested by Leonardo Boiko.
* doc/automake.texi (Flag Variables Ordering, User Variables):
Make clearer who the maintainer is, and that he can AC_SUBST AM_
variables in configure.ac. Suggested by Norman Gray.
(Uniform, Public macros, Libtool Issues, Java Support,
Conditionals): Use `---' for em dash, and stick them to the
enclosing text.
* doc/automake.texi: Reword a few sentences to fix all underflow
and overflow warnings during `make dvi'.
(Auxiliary Programs) <configure.guess, config.sub>: Update URL.
(Public macros) <AM_WITH_DMALLOC>: Likewise.
* doc/automake.texi (Hard-Coded Install Paths): New node.
(Extending, Extending aclocal, Python): Link to it.
(Extending): Don't show how to install a file in /etc/ directly,
this is insane.
* automake.in (read_am_file): Define variable containing long
lines as VAR_PRETTY to work around tools with limited input width.
* tests/longlin2.test: New file.
* tests/Makefile.am (TESTS): Add it.
Report from Albert Chin.
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.