* 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.
* 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.
* automake.in (handle_texinfo_helper): Use the user definition
of TEXINFO_TEX before checking for cygnus or AC_CONFIG_AUX_DIR.
* tests/txinfo22.test: New file.
* tests/Makefile.am (TESTS): Add txinfo22.test.
Report from Tom Tromey.
Raja R Harinath [Sun, 3 Aug 2003 21:17:32 +0000 (21:17 +0000)]
* lib/Automake/Variable.pm (@EXPORT): Remove
traverse_variable_recursively and
require_variables_for_variable.
(require_variables_for_variable, traverse_variable_recursively)
(_traverse_variable_recursively_worker): Convert to
Automake::Variable methods, remove support for being
invoked with variable names, and rename to ...
(requires_variables, traverse_recursively)
(_do_recursive_traversal): ... these.
(_value_as_list_recursive_worker, transform_variable_recursively):
Update to reflect changes.
* automake.in (handle_LIBOBJS, handle_ALLOCA)
(handle_libraries, handle_ltlibraries, am_primary_prefixes):
Likewise.
(define_objects_from_sources): Fix typo in comment.
Raja R Harinath [Sat, 2 Aug 2003 04:27:02 +0000 (04:27 +0000)]
* lib/Automake/Variables.pm (variables): Return a list of
Automake::Variable instances, not a list of strings.
(dump): Remove support for being invoked with a string.
(variables_dump): Adapt to these changes.
* automake.in (check_typos): Likewise.
(am_primary_prefixes): Likewise.
* automake.texi (A Shared Library): Rewrite and split into
subsections. Valuable comments from Norman Gray, Harlan Stenn,
Tim Van Holder, and Guido Draheim.
* tests/ltcond.test, tests/ltcond2.test, tests/ltconv.test: New files.
* tests/Makefile.am (TESTS): Add them.
* automake.in (handle_single_transform_list): Complain about
foo.$(OBJEXT) being created both with libtool and without, not
about foo.lo.
Report from Tim Van Holder.
* lib/Automake/Variable.pm (@EXPORT): Remove variable_dump.
(variable_dump): Replace by ...
(dump): ... this method.
(rdef, _check_ambiguous_condition): Adjust to use ->dump.
(define, variables_dump): Adjust to use Automake::Variable::dump
Complete changes from 2003-07-08.
* automake.in ($cmdline_use_dependencies, $use_dependencies): Remove,
replaced by $options{'no-dependencies'}.
($global_options): Remove.
(%global_options): New variable.
(initialize_per_input): Empty %options.
(process_option_list): Take a location and %options ref argument,
process no-dependencies as other options.
(handle_options): Do not reparse the global options, just initialize
%options from %global_options and fill it with local options.
(handle_languages, handle_single_transform_list)
(handle_configure, check_cygnus): Adjust usage of
$options{'no-dependencies'}.
(make_paragraphs): Adjust usage of $options{'cygnus'}.
(parse_arguments): Set cygnus and no-dependencies in %global_options.
(scan_autoconf_traces) <AM_INIT_AUTOMAKE>: Call process_option_list
to fill %global_options.
Fix missing rebuilds during `make dist' with BSD make.
* automake.in (generate_makefile): Do not push Makefile.in, and
Makefile.am into DIST_COMMON here.
* lib/am/configure.am (DIST_COMMON): Do it here, and use
%MAKEFILE-AM% and %MAKEFILE-IN% so that items in DIST_COMMON
actually match the targets. Prefix `configure' with `$(srcdir)/'
to match the target.
* tests/remake4.test: New file.
* tests/Makefile.am (TESTS): Add remake4.test.
Report from Akim Demaille.
* automake.in (handle_multilib): Register all-multi.
(file_contents_internal): Insert n when concatenating actions
from "factored" rules.
* lib/config-ml.in: New file, from GCC, including a patch
from Ralf Corsepius (see GCC's PR 11526).
* lib/symlink-tree.in: New file, from GCC.
* lib/Makefile.am (dist_script_DATA): Add config-ml.in and
symlink-tree.
* lib/am/clean.am (distclean-generic): Do not delete Makefile here...
(distclean, maintainer-clean): ... do it here.
* lib/am/depend.am (distclean-depend): Likewise, replace by
(distclean, maintainer-clean): ... these.
* lib/am/multilib.am (all-recursive, install-recursive,
mostlyclean-recursive, clean-recursive, distclean-recursive,
maintainer-clean-recursive): Remove these rules.
(mostlyclean-am, clean-am, distclean-am, maintainer-clean-am): Replace
by ...
(mostlyclean, clean, distclean, maintainer-clean): ... these.
(all-am): Remove, done in handle_multilib.
(install-am): Replace by ...
(install-exec-am): ... this.
* tests/Makefile.am (TESTS): Add multlib.test.
* tests/multlib.test: New file, based on a test case by
Ralf Corsepius