* automake.in (handle_languages): Define %DEPBASE% conditionally
on subdir-objects. Define SUBDIROBJ. Do not clean *_.c files
here ...
(lang_c_finish): ... do it here.
(handle_single_transform_list): Do not output specific rules for
subdir-objects files which are not renamed. This should reduce
the size of Makefiles with lots of subdirectory sources.
* lib/depcomp: Simplify computation of dependency output, and use
DEPDIR.
* lib/am/depend2.am (%EXT%.o, %EXT%.obj, %EXT%.lo): Adjust call
to depcomp. Compute depbase on-the-fly in generic fastdep rules
for subdir-objects.
* tests/ansi9.test: Do not grep for an explicit rule that
we no longer expect. Really run $MAKE to make sure the chain
of rules works.
* tests/yacc5.test: Do not grep for an explicit rule that
we no longer expect. Adjust to use set -e.
* automake.in (@common_files): Move configure, configure.ac, and
configure.in ...
(@common_sometimes): ... here so that these files do not appear
twice in DIST_COMMON.
* automake.in (maybe_push_required_file): Add $(srcdir) in front
a required files outside the current directory or its subdirectories.
* lib/am/distdir.am (distdir): Update comment.
Report from Nicolas Joly.
* doc/automake.texi (@copying): Do not repeat the version.
(Top): Use @insertcopying. Add a @detailmenu, this works around
Emacs 21's inability to lookup indices in sub-nodes (reported
by Kevin Ryde).
(C++ Support, Assembly Support, Fortran 77 Support, Java Support,
Support for Other Languages, Preprocessing Fortran 77, Compiling
Fortran 77 Files, Mixing Fortran 77 With C and C++, How the Linker
is Chosen): Add missing descriptions in menus.
(Fortran 77 and Autoconf): Remove, this node was just saying "use
Autoconf 2.53 or greater".
* 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.