* 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.
* Makefile.am (FETCHFILES, fetch): Do not fetch lib/Automake/XFile.pm
and lib/Automake/Struct.pm from Autoconf.
* lib/Automake/XFile.pm: Update comment, Automake is now
the master for this file. Cosmetic changes.
Changes to m4_included files should also cause aclocal.m4 to change.
* aclocal.in (m4_include_rx): New variable.
(scan_configure_dep): New function.
(scan_configure, add_file): Simplify using scan_configure_dep.
* tests/Makefile.am (TESTS): Add acloca13.test.
* tests/aclocal13.test: New file.
* aclocal.in (configure_ac): Do not call require_configure_ac
before parsing the options.
* automake.in (configure_ac): Likewise.
* lib/Automake/Variable.pm (configure_ac): Do not require configure.ac,
find it.
* lib/Automake/Configure_ac.pm (require_configure_ac):
find_configure_ac never return an undefined value, so test
the file's existence instead.
* tests/Makefile.am (TESTS): Add help.test.
* tests/help.test: New file.
* lib/Automake/XFile.pm: Update to use ChannelDefs.
(close): Call Automake::FileUtils::handle_exec_errors on errors.
* automake.in (scan_autoconf_files): Exit with $?=63 on version
mismatch.
(scan_autoconf_traces): Likewise. Close the autoconf pipe to
capture abnormal exits.
* aclocal.in ($exit_status): Remove, and use Channels.pm's $exit_code
instead.
(trace_used_macros): Close the autom4te pipe to capture abnormal exits.
* lib/missing: When a tool has run and exited with $?=63, emulate
it. Adjust the diagnostic and pretend the tool is tool old in this
case. Use an emacs-updated "scriptversion" variable.
* configure.in: Output tests/aclocal-${APIVERSION} and
tests/automake-${APIVERSION}.
* tests/aclocal.in, tests/automake.in,
tests/missing.test, tests/missing2.test: New files.
* tests/defs.in (AUTOMAKE, ACLOCAL, PATH): Define
to use tests/aclocal-$APIVERSION and tests/automake-$APIVERSION.
* tests/dup3.test: Remove. alocal9.test, acloca10.test, and others are
already testing for this.
* tests/depacl2.test, tests/dup2.test, tests/order.test: Fix
configure.in so that aclocal works.
* tests/defun.test: Quote the AC_DEFUN body.
* tests/Makefile.am (TESTS): Add missing.test and missing2.test,
and remove dup3.test.
(check_SCRIPTS): Add aclocal and automake.
* aclocal.in (@file_order): New variable, to make sure
files are output in the opposite order of the -I arguments.
(scan_file): Fill it.
(trace_used_macros, write_aclocal): Use it.
(scan_m4_files): Reverse the directory contents, so that
macros from the lexicographically greatest files are preferred.
* tests/aclocal9.test, tests/acloca10.test, tests/acloca11.test:
New files.
* tests/Makefile.am (TESTS): Add them.
For Debian Bug #206299:
* automake.in ($configure_deps_greatest_timestamp,
$output_deps_greatest_timestamp): New variables.
(initialize_per_input): Reset $output_deps_greatest_timestamp.
(scan_autoconf_traces, scan_autoconf_files, read_am_file):
Update $configure_deps_greatest_timestamp and
$output_deps_greatest_timestamp
(generate_makefile): Rewrite the logic to decide whether
to rewrite the output. Move the leading dup_channel_setup
and trailing drop_channel_setup to MAIN, so that
drop_channel_setup is executed for all exit paths.
* tests/aclocal7.test: Update to check for $AUTOMAKE --no-force
* tests/distcom6.test: New file. Report from Scott James Remnant.
* tests/Makefile.am (TESTS): Add distcom6.test.
* aclocal.in (write_aclocal): Take an output file and list of
used macros in arguments and make up the file contents here.
(trace_used_macros): New function.
(add_file): Do not update $output.
($output): Delete.
(MAIN): Call trace_used_macros. Then rewrite aclocal.m4 only
for these traced macros. This should shorten aclocal.m4 by
stripping out unused macros.
* automake.texi (Invoking aclocal): Document ${AUTOM4TE}.
* tests/aclibobj.test: Make sure configure.in exists by the time
aclocal runs.
* tests/aclocal8.test: New file.
* tests/Makefile.am (TESTS): Add aclocal8.test.
Suggested by Bruno Haible and Akim Demaille.
Fix for PR automake/398:
* m4/python.m4: Do not call AC_PATH_PROGS if $PYTHON is already
set. Display `none' instead of `:' and $PYTHON is set to `:'
when no suitable interpreter is found. Honor ACTION-IF-FOUND and
ACTION-IF-NOT-FOUND.
* automake.texi (Python): Document ACTION-IF-FOUND and
ACTION-IF-NOT-FOUND.
* tests/python4.test, tests/python5.test, tests/python6.test,
tests/python7.test, tests/python8.test, tests/python9.test: New
files.
* tests/Makefile.am (TESTS): Add them.
Report from Per Cederqvist.
* lib/Automake/Item.pm, lib/Automake/ItemDef.pm: New files.
* lib/Automake/Rule.pm, lib/Automake/RuleDef.pm: New files.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add them.
* lib/Automake/VarDef.pm: Make this a subclass of Automake::ItemDef.
(new): Adjust to call Automake::ItemDef::new.
(comment, location, owner): Delete. Now inherited from ItemDef.
* lib/Automake/Variable.pm: Make this a subclass of Automake::Item.
(_new): Adjust to call Automake::Item::new.
(name, def, rdef, _set, conditions, not_always_defined_in_cond):
Delete. How inherited from Item, where `_set' is called `set'.
* automake.in (SUFFIX_RULE_PATTERN): Delete. Now in Automake::Rule.
(suffix_rules_default): Delete. Now
Automake::Rule::_suffix_rules_default
(suffixes): Delete. Now Automake::Rule::suffixes.
(TARGET_AUTOMAKE, TARGET_USER): Delete. Now
Automake::RuleDef::RULE_AUTOMAKE and Automake::RuleDef::RULE_USER.
(%targets, %target_source, %target_name, %target_owner): Delete,
replaced by the Rule and RuleDef classes.
(dependencies, depend, actions): Delete. Now in Automake::Rule.
(suffix_rules, register_suffix_rule): Likewise.
(KNOWN_EXTENSIONS_PATTERN, accept_extensions): Likewise.
(known_extensions_list): Delete. Now
Automake::Rule::_known_extensions_list.
(target_conditions): Delete. Now inherited by Automake::Rule
from Automake::Item::conditions.
(rule_define): Delete. Now Automake::Rule::define. Adjust all
callers.
(target_defined): Delete. Now Automake::Rule::rule. Adjust all
callers.
(initialize_per_input): Adjust to call Automake::Rule::reset.
(err_target, err_cond_target, msg_cond_target, msg_target,
reject_target): Delete. Now defined in Automake::Rule as
err_rule, err_cond_rule, msg_cond_rule, msg_rule and reject_target.
Adjust all callers.
(handle_languages): Call suffix_rules_count.
* tests/location.test: Adjust expected diagnostics. We now display
$(EXEEXT) accurately.
Revert the fix for PR automake/291:
* lib/Automake/Variable.pm (define): Do not warn about variables
starting with `_' which are an issue on NEWS-OS 4.2R. According
to Paul Eggert, NEWS-OS 4.2R is ten years old, the latest version
was released on 1996 and is not in wide use. On the other hand,
variables starting with `_' are mandatory in several situations,
so diagnosing them is more annoying than useful.
* tests/canon5.test: Do not use -Wno-portability.
* tests/vars2.test: Delete.
* tests/Makefile.am (TESTS): Remove vars2.test.
Suggested by Jim Meyering.
* lib/Automake/Config.in: New file.
* lib/Automake/Makefile.am (nodist_perllib_DATA, do_subst,
CLEANFILES): New variables.
(Config.pm): New rule.
* Makefile.am (maintainer-check): Adjust expected differences
between automake.in and automake.
* aclocal.in, automake.in: Use Automake::Config.