* 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.
* doc/fdl.texi: New file.
* doc/Makefile.am (automake_TEXINFOS): New variable.
* doc/automake.texi (Copying This Manual): New appendix, include
fdl.texi.
(Macro and Variable Index, General Index): Move as subsections of ...
(Indices): This new appendix.
* aclocal.in (write_aclocal): Consider files with relative
paths as local to the project, i.e., subject to m4_include.
* tests/subpkg.test (ACLOCAL_AMFLAGS): Make sure m4_include
is also used for .m4 files in the outer project.
Support for multiple inputs in AC_CONFIG_FILES.
Requested long ago by Harlan Stenn.
* automake.in (handle_dist): Remove unused argument $makefile.
(handle_subdirs): Expect SUBDIRS elements in $relative_dir,
not $am_relative_dir.
(rewrite_inputs_into_dependencies): Allow $add_srcdir to
be a filename that must always be prefixed by $(srcdir) or
$(top_srcdir).
(handle_configure, generate_makefile): Revamp to make the
Makefile.am, Makefile.in, Makefile more independent.
(locate_am): New function.
(scan_configure_dep, parse_arguments): Use locate_am.
(MAIN): Adjust call to generate_makefile.
* lib/am/configure.am: Remove %MAKEFILE-IN% from the dependencies
of %MAKEFILE%. %MAKEFILE-IN% is already in %MAKEFILE-DEPS%.
* tests/output6.test, tests/output7.test: New files.
* tests/Makefile.am (TESTS): Add them.
* automake.texi (Requirements) <AC_CONFIG_FILES>: Document how
multiple inputs are scanned.