* Makefile.am (do_subst): Fix the substitution of @configure_input@.
(automake, aclocal): Create the output atomically and make it
read-only, as done in the Autoconf package.
* lib/Automake/Makefile.am (do_subst): Fix the substitution of
@configure_input@.
(Config.pm): Create the output atomically and make it read-only.
* m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Substitute
@configure_input@ and make the output read-only.
* lib/Automake/Config.in, m4/amversion.in, tests/aclocal.in,
tests/automake.in, tests/defs.in: Add a @configure_input@ line.
* lib/Automake/Variable.pm (hook): Use $$ as prototype, not $&.
Perl 5.6.0 will not accept a reference sub reference for the
latter.
* automake.in (var_SUFFIXES_trigger): Adjust registration via
Automake::Variabke::hook.
(handle_texinfo_helper): Make sure `inner_expand => 1' appears
on one line, so that Perl 5.6.0 does not complain about
inner_expand being a bare identifier.
* doc/automake.texi (Rebuilding): Document CONFIGURE_DEPENDENCIES
and CONFIG_STATUS_DEPENDENCIES. Move this sections later
in the manual since it's pretty advanced material.
* automake.in ($config_header_location): Remove. Use
%ac_config_files_location instead.
(rewrite_inputs_into_dependencies): Do not prepend $(top_builddir)/
at the top-level.
(handle_configure): Use rewrite_inputs_into_dependencies to
distribute and compute AC_CONFIG_HEADERS dependencies.
(scan_autoconf_traces) <AC_CONFIG_HEADERS>: Fill
%ac_config_files_location.
* lib/am/remake-hdr.am ($(srcdir)/%CONFIG_HIN%): Rename as ...
(%CONFIG_HIN%): ... this. $(srcdir) is already added in
scan_autoconf_traces.
* tests/Makefile.am (TESTS): Add confh5.test.
* tests/confh5.test: New file.
* automake.in (handle_configure): Do not require link sources if
they contain a dollar, or if they were built. Likewise, do not
clean link destination if they contain a dollar.
(scan_autoconf_traces) <AC_CONFIG_LINKS>: Populate
%ac_config_files_location with link destinations. Do not
store locations in @config_links, now that %ac_config_files_location
have them.
* tests/conflnk3.test: New file.
* tests/Makefile.am (TESTS): Add conflnk3.test.
* automake.in (handle_source_transform): If it's present, use
libfoo_la.c instead of libfoo.c as the default source of
libfoo.la, and issue an -Wobsolete diagnostic. Do not be
greedy in the suffix replacement regex.
* doc/automake.texi (Default _SOURCES): New node.
(Program Sources, Libtool Modules): Refer to it.
* tests/ltlibsrc.test: Update to check for old default source files.
* automake.in (&handle_source_transform): Calculate a default file
for use in the absence of an appropriate _SOURCES declaration by
first stripping any suffix from the unxformed target name, and
appending `.c'.
* doc/automake.texi (Program Sources, Libtool Modules): Document this.
* tests/ltlibsrc.test: New file.
* tests/Makefile.am (TESTS): Add ltlibsrc.test.
* lib/Automake/Variable.pm (loc_and_value_as_list_recursive,
_value_as_list_recursive_worker): Merge into ...
(value_as_list_recursive): ... this function. Pass options
as a hash argument, and use the `location' option to trigger
the behavior of loc_and_value_as_list_recursive.
(traverse_recursively, transform_variable_recursively): Take
options as a %options argument.
(_do_recursive_traversal): Perform expansion of inner variables
(as in `$(FILE).ext') on request.
* automake.in (handle_options, check_libobjs_sources)
(handle_source_transform, handle_LIBOBJS, handle_ltlibraries)
(handle_ltlibraries, handle_man_pages, handle_dist)
(handle_gettext, am_install_var): Adjust usage of
value_as_list_recursive.
(handle_texinfo_helper): Pass inner_expand to
value_as_list_recursive.
* tests/txinfo28.test: New file.
* tests/Makefile.am (TESTS): Add txinfo28.test.
Report from Ralf Corsepius.
* lib/Automake/Variable.pm (_do_recursive_traversal): Do not
update @_substfroms and @_substfroms for undefined variables.
* tests/substre2.test: New file.
* tests/Makefile.am (TESTS): Add substre2.test.
* lib/Automake/VarDef.pm (value): Rename as ...
(raw_value): ... this.
(value): New method, strip # and \n.
(dump): Use raw_value.
* lib/Automake/Variable.pm (output): Use raw_value.
(value_as_list): Simplify, now that backslash and comments
are already removed.
* tests/txinfo22.test: Make sure Automake isn't confused
by comments in variables.
* doc/automake.texi: More target vs. rule editing. Back out some
of the previous changes. It's OK to talk about targets as "entry
points", or as thing to build, but targets cannot be run: rules
are run.
* automake.in (prepend_srcdir): Parenthesize @inputs to remove
a maintainer-check warning.
* tests/subst2.test: Rewrite the $MAKE invocation to please
maintainer-check.
* doc/automake.texi (Program variables): Mention per-target
_CPPFLAGS in the documentation of INCLUDES.
* automake.in (generate_makefile): Likewise in the INCLUDES diagnostic.
Report from Bob Friesenhahn.
* lib/Automake/Variable.pm (output): Add $(am__empty) to variable
definitions that end with a line full of @substitutions@ that
would confuse HP-UX Make if it were blank.
(transform_variable_recursively): Make sure not to erase empty
variables.
* tests/Makefile.am (TESTS): Add subst2.test.
* tests/subst2.test: New file.
Report from Harlan Stenn.
Fix for PR automake/411:
* automake.in (rewrite_inputs_into_dependencies): Simplify, and rename
into ...
(prepend_srcdir): ... this.
(rewrite_inputs_into_dependencies): New function, extracted from ...
(handle_configure): ... here. Adjust to use prepend_srcdir
or rewrite_inputs_into_dependencies where needed. Especially,
using (the new) rewrite_inputs_into_dependencies to compute
Makefile dependencies will fix PR/411.
* lib/am/configure.am (DIST_COMMON): Remove %MAKEFILE-IN%, it's
already distributed by rewrite_inputs_into_dependencies.
* tests/Makefile.am (TESTS): Add output10.test, remove distcom.test.
* tests/colon3.test: Use set -e. Don't allow any AUTOMAKE
invocation refer to zardoz. Make sure two.in and three.in
appear as $(srcdir)/two.in and $(srcdir)/three.in dependencies.
* tests/distcom.test: Delete. This is covered by tests/output9.test.
* tests/output10.test: New file, for PR/411.
* automake.in (append_exeext): Do not append $(EXEEXT) to
@substitutions@.
* tests/exeext4.test: New file.
* tests/Makefile.am (TESTS): Add exeext4.test.
* lib/am/texinfos.am (install-info): Depend on
install-info-recursive or install-info-am even if no-installinfo.
* tests/txinfo27.test: New file.
* tests/Makefile.am (TESTS): Add txinfo26.test.
* lib/ylwrap: Do not overwrite headers if they haven't changed.
Fix the include guard substitution.
* tests/yacc6.test: Augment to run ylwrap, and make sure it
does not needlessly update headers.
* tests/yacc8.test: Make sure headers are not needlessly updated
with ylwrap is not used. Move `test -f foo.o' into the
Makefile as `test -f foo.$(OBJEXT)' for portability.
* automake.in (generate_makefile): Define SUBDIRS if it is
not defined and DIST_SUBDIRS is.
* tests/subpkg2.test: New file.
* tests/Makefile.am (TESTS): Add subpkg2.test.
Report from Gary V. Vaughan.
* lib/Automake/Rule.pm (define): Suggest using target-local instead
of target-am, not target-am-local.
* tests/overrid.test: Check the diagnostic for clean-am.
Report from Bruno Haible.
* automake.in (ac_config_files_location): Declare as a hash.
(handle_configure): Rewrite the computation of AC_CONFIG_FILES
dependencies; make sure we don't use $(srcdir) or $(top_srcdir)
for inputs which are also outputs, and do not check inputs
relatively to the current directory.
(scan_autoconf_config_files): Take $where as argument, and
fill $ac_config_files_location.
* tests/output8.test, tests/output9.test: New files.
* tests/Makefile.am (TESTS): Add output8.test and output9.test.
Report from Bruno Haible.
Fix for PR automake/408:
* lib/am/texinfos.am (install-info-am): Strip any $(srcdir)/ prefix
from $file, as already done for dist-info.
* tests/Makefile.am (TESTS): Add txinfo26.test.
* tests/txinfo26.test: New file.
Report from Nicholas Wourms.
* m4/lispdir.m4 (AM_PATH_LISPDIR): If EMACS=t, empty it before
running AC_CHECK_PROGS(EMACS).
* lib/am/lisp.am (elc-stamp): Quote $(EMACS).
Report from Jens Petersen.
* Makefile.am: Do not rerun `make dist' after tagging, `make distcheck'
already build the tarballs. Commit files right before tagging.
Check NEWS before running distcheck.
* Makefile.am (fetch): Get all files from savannah. Do not
postprocess Struct.pm and XFiles.pm, since we now are the master
of these.
* lib/config.sub, lib/config.guess, lib/config-ml.in,
lib/texinfo.tex: New upstream versions.
* doc/automake.texi (Texinfo): Define MAKEINFO, MAKEINFOHTML,
MAKEINFOFLAGS, AM_MAKEINFOFLAGS, AM_MAKEINFOHTMLFLAGS, TEXI2DVI,
TEXI2PDF, DVIPS, and TEXINFO_TEX in a table.
(Uniform): Do not speak of missing HTML support, this is
confusing.
* lib/Automake/Variable.pm (_silent_variable_override): Add
AM_MAKEINFOHTMLFLAGS.
* lib/am/texibuild.am (%SOURCE_SUFFIX%.html): Use MAKEINFOHTML and
AM_MAKEINFOHTMLFLAGS instead of MAKEINFO and AM_MAKEINFOFLAGS.
* lib/am/texinfos.am (MAKEINFOHTML, AM_MAKEINFOHTMLFLAGS): Define.
* tests/txinfo21.test: Add a test with AM_MAKEINFOHTMLFLAGS.
* automake.in (handle_configure): Distribute and define mkinstalldirs
only if it is already present in the package.
(scan_autoconf_files): Do not require mkinstalldirs.
(require_build_directory): Use $(mkdir_p), not $(mkinstalldirs).
* lib/am/data.am, lib/am/distdir.am, lib/am/install.am,
lib/am/java.am, lib/am/libs.am, lib/am/lisp.am, lib/am/mans.am,
lib/am/progs.am, lib/am/python.am, lib/am/scripts.am,
lib/am/texinfos.am: Use $(mkdir_p) instead of $(mkinstalldirs).
* m4/mkdirp.m4: New file.
* m4/Makefile.am (dist_m4data_DATA): Add mkdirp.m4.
* m4/init.m4 (AM_INIT_AUTOMAKE): Call AM_PROG_MKDIR_P.
* tests/Makefile.am (TESTS): Remove insh.test.
* tests/insh.test: Delete.
* tests/defs.in, tests/instsh.test: Do not install mkinstalldirs.
* tests/auxdir.test: Install mkinstalldirs.
* tests/distdir.test, tests/instman.test, tests/pr2.test: Use
$(mkdir_p), not $(mkinstalldirs).
* tests/empty.test: Run configure, do not substitute things by hand.
* doc/automake.texi (Optional) <AC_CONFIG_FILES>: Take install-sh
as an example, not mkinstalldirs.
(Auxiliary Programs) <mkinstalldirs>: Update.
* automake.in (check_gnu_standards): Install COPYING only if
none of COPYING, COPYING.LIB, or COPYING.LESSER exist. Do not
overwrite the license otherwise.
* tests/Makefile.am (TESTS): Add license.test.
* tests/license.test: New file.
* lib/mkinstalldirs: Mention automake-patches@gnu.org and
bug-automake@gnu.org.
* lib/compile, lib/depcomp, lib/elisp-comp, lib/mdate-sh:
Likewise. Also add support for --help and --version.
* lib/py-compile, lib/ylwrap: Likewise, and reindent.
* lib/am/tags.am (ETAGSFLAGS, CTAGSFLAGS): Remove.
* lib/am/dejagnu.am (RUNTESTFLAGS): Remove.
* lib/am/java.am (JAVACFLAGS): Remove.
* tests/dejagnu3.test: Check that the environment value
of RUNTESTFLAGS get passed down to runtest.
Suggested by Mark Mitchell.
* lib/am/depend2.am (?GENERIC?%EXT%.o, ?GENERIC?%EXT%.obj)
(?GENERIC?%EXT%.lo): Do not echo compile command manually, this
breaks `make -s'. Instead, fold the compile command on two lines,
so that it take less space on the display.
Suggested by Karl Berry and William Fulton.
* lib/am/texibuild.am (%DEST_PREFIX%%DEST_SUFFIX%): Rename as ...
(%DEST_INFO_PREFIX%%DEST_SUFFIX%): ... this, and honor ?INSRC?
to select $(srcdir) or `.' builds.
(INFO_DEPS): Define here.
* lib/am/texinfos.am (dist-info): Strip filename starting with
"$(srcdir)/".
* automake.in (output_texinfo_build_rules): Take a new argument
$insrc, and adjust substitutions in 'texibuild'.
(handle_texinfo_helper): Compute a regex of all user-cleaned
files, and use this to select whether to build .info files in `.'
or $(srcdir). Give an account of the $(srcdir) vs `.' debacle.
Alway build the version.texi and stamp files in $(srcdir). Do not
define INFO_DEPS.
* tests/Makefile.am (TESTS): Add txinfo23.test, txinfo24.test,
and txinfo25.test.
* tests/txinfo23.test, tests/txinfo24.test, tests/txinfo25.test:
New files.
* tests/txinfo13.test, tests/txinfo16.test, tests/txinfo3.test,
tests/vtexi.test: Adjust to new rules.
* automake.in (handle_configure): Rename am__configure_deps
as am__aclocal_m4_deps and include $(ACLOCAL_M4_SOURCES) and
$configure_ac. Define am__configure_deps as am__aclocal_m4_deps
+ $(CONFIGURE_DEPENDENCIES) + $(ACLOCAL_M4). Do not define
ACLOCAL_M4_DEPS while processing configure.am.
(make_paragraphs): Do not define %CONFIGURE_AC%, now unused.
(scan_aclocal_m4): Do not distribute aclocal.m4, this
is done from lib/am/configure.am.
* lib/am/configure.am (%MAKEFILE-IN%, DIST_COMMON,
$(top_srcdir)/configure, $(ACLOCAL_M4)): Simplify using
$(am__configure_deps) or $(am__aclocal_m4_deps).
* lib/am/remake-hdr.am ($(srcdir)/%CONFIG_HIN%): Likewise.
* automake.in (handle_configure): Distribute all AC_CONFIG_HEADERS
sources, and without using require_file. Define %CONFIG_H_DEPS%
and %FIRST_CONFIG_HIN% while processing remake-hdr.am.
* lib/am/remake-hdr.am (%STAMP%): Use %CONFIG_H_DEPS% instead
of (srcdir)/%CONFIG_HIN%. Output the $(srcdir)/%CONFIG_HIN%
rule only for the first header (i.e., if %FIRST_CONFIG_HIN%).
* tests/autohdr4.test: New file.
* tests/Makefile.am (TESTS): Add autohdr4.test.
* tests/config.test: Do not grep, run things to see if they work.
* tests/output7.test: Populate sub/ with a dummy file, so that it
is not empty. This fixes a failure reported by Patrick Welche.
* lib/am/distdir.am: Add note about tar's `-o' option and empty
directories.
* m4/lispdir.m4 (AM_PATH_LISPDIR): Always check for Emacs.
Always define lispdir.
* lib/am/lisp.am (install-%DIR%LISP, uninstall-%DIR%LISP): Check
$(EMACS) to decide whether _LISP files must be installed,
not $(lispdir).
* doc/automake.texi (Emacs Lisp): Mention the two ways to install
non byte-compiled Emacs lisp files.
* tests/lisp4.test, tests/lisp5.test: Check "make install"
when EMACS=no.
Suggested by Simon Josefsson.
* aclocal.in ("MAIN", usage, parse_arguments): Move near
the end, so "MAIN" can use prototypes.
(scan_configure): Move later too, for the sake of prototypes.
(scan_configure_dep): Fix setting of $scanned_configure_dep.
(trace_used_macros): Do not take any argument.
* automake.in (handle_ltlibraries): Also grep AM_LDFLAGS for `-module'.
* tests/stdlib2.test: New file.
* tests/Makefile.am (TESTS): Add stdlib2.test.
Report from Kevin P. Fleming.
For Debian Bug #213524:
* lib/am/texinfos.am (install-info-am, uninstall-info-am): Merge
stderr and stdout, and grep only the first line while testing
install-info --version's output. This revert part of the change
from 2001-05-18.
Akim Demaille [Wed, 1 Oct 2003 07:14:32 +0000 (07:14 +0000)]
* lib/Automake/XFile.pm: Use Errno.
(lock): Ignore ENOLCK errors. Problem reported Andreas Schwab in
<http://mail.gnu.org/archive/html/bug-autoconf/2003-09/msg00141.html>.
* automake.in (handle_clean): Take $makefile as argument, and
define %MAKEFILE% while processing clean.am.
(generate_makefile): Pass $makefile to handle_clean.
* lib/am/clean.am (distclean, maintainer-clean): Erase %MAKEFILE%,
not Makefile.
* tests/gnumake.test: New file.
* tests/Makefile.am (TESTS): Add gnumake.test.
Report from Braden N. McDaniel.