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
* automake.in (scan_autoconf_traces): Handle AC_CONFIG_LINKS.
(handle_configure): Handle adding AC_CONFIG_LINKS arguments to
distclean targets (CONFIG_CLEAN_FILES makefile var).
* NEWS: Note new handling of AC_CONFIG_LINKS.
* automake.texi (Other things Automake recognizes): Ditto.
* tests/Makefile.am (TESTS): Add new tests.
* tests/conflnk.test: New test that links are cleaned on distclean.
* tests/conflnk2.test: New test that source files for links are
distributed.
Raja R Harinath [Thu, 10 Jul 2003 23:39:09 +0000 (23:39 +0000)]
Avoid using refs as hash keys.
* lib/Automake/Variable.pm ($_traversal): New.
(reset): Reset $_traversal.
(_new): New attribute 'scanned'.
(%_vars_scanned): Remove.
(traverse_variable_recursively)
(traverse_variable_recursively_worker):
Use $_traversal instead of %_vars_scanned to detect recursively
defined variables.
* aclocal.in: Use Automake::FileUtils.
(parse_arguments, scan_configure, scan_m4_files): Never call
"die" to print an error message. Use print and exit.
* automake.in: Use Automake::FileUtils.
* lib/Automake/General.pm ($debug, $help, $tmp, $verbose,
$version, &debug, &getopt, &mktmpdir, &verbose): Remove.
(END): Do not massage Perl's exit code. Do not clean any temporary
directory.
(find_file, mtime, update_file, xsystem, contents): Move to ...
* lib/Automake/FileUtils.pm: ... this new file. Adjust to
report errors using Channels.
(handle_exec_errors, xqx): New functions, from Autoconf.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add FileUtils.pm.
* lib/Automake/Variable.pm (_traverse_variable_recursively_worker):
Return the empty list on recursively defined variable. This
supersedes my change of 2003-07-02.
* automake.in ($cygnus_mode): Replace with $options{'cygnus'}.
Adjust all dependencies.
(&depend): Move next to %dependencies.
(&initialize_per_input): Initialize the 'cygnus' field of
'%options' to spare the code from 'exists' or 'defined' when
testing it.
* automake.in (&define_files_variable): New.
(&handle_texinfo_helper): Move the handling of user variables from
here, to...
(&handle_texinfo): here.
This is to balance the size of these functions, and to match the
convention of other _helper functions.
(&handle_texinfo_helper): Use &define_files_variable.
Move some code to use less variables.
Rename $info_cursor as $texi.
(&handle_texinfo): Do not call handle_texinfo_helper if there are
no TEXINFOS.
* lib/am/texinfos.am: Sort the occurrences of dvi, info, pdf, ps
and html.
Remove *-recursive targets from .PHONY, they are part of
$(RECURSIVE_TARGETS) anyway.
(install-info, mostlyclean-aminfo): Are .PHONY.
* automake.in (&define_files_variable): New.
(&handle_texinfo_helper): Move the handling of user variables from
here, to...
(&handle_texinfo): here.
This is to balance the size of these functions, and to match the
convention of other _helper functions.
(&handle_texinfo_helper): Use &define_files_variable.
Move some code to use less variables.
Rename $info_cursor as $texi.
(&handle_texinfo): Do not call handle_texinfo_helper if there are
no TEXINFOS.
* lib/am/texinfos.am: Sort the occurrences of dvi, info, pdf, ps
and html.
Remove *-recursive targets from .PHONY, they are part of
$(RECURSIVE_TARGETS) anyway.
(install-info, mostlyclean-aminfo): Are .PHONY.
* lib/depcomp (icc): Update to grok ICC 7.1's output.
* m4/depend.m4 (_AM_DEPENDENCIES): Check dependency generation
in a subdirectory, and with many dependencies. This
catches more failures of depcomp.
Reports from Ralf Wildenhues and Akim Demaille.
* automake.in (handle_single_transform_list): Use $var->name
to print variable in the configure-substitution diagnostic.
Do not mention the parent when it is the variable itself.
* automake.in (cond_stack_else): Return FALSE if `if' was not
used.
(cond_stack_endif): Return TRUE if `if' was not used. Do not
display $negate and $cond, they are irrelevant and maybe undefined.
* lib/Automake/Variable.pm (_traverse_variable_recursively_worker):
Do not return undef when a variable is recursively defined, this
causes warnings all over the place. Return the empty string instead.
* automake.in (scan_autoconf_traces): Check the expected
number of arguments of each traced macro.
* tests/overrid.test: Fix call to AM_CONDITIONAL.
* tests/conff2.test: New files.
* tests/Makefile.am (TESTS): Add conff2.test.
Report from Paolo Bonzini.
* lib/am/distdir.am (distcheck): Run $(am__remove_distdir)
at the end of distcheck. This was mistakenly removed on
2003-06-15.
* tests/subpkg.test: Make sure distcheck cleans up after itself.
Akim Demaille [Wed, 25 Jun 2003 14:01:21 +0000 (14:01 +0000)]
* automake.texi (Top): Use @copying and @insertcopying.
Make Alexandre an author.
* automake.in ($gen_copyright): Add the "(C)" to Copyright.
* lib/depcomp: Likewise.
* lib/Automake/Variable.pm (vardef, rvardef, set_seen): New functions.
(variable_defined, examine_variable): Remove.
(%_ac_macro_for_var): Add an entry for ALLOCA.
(require_variables): Use vardef instead of variable_defined.
Do not use _cvar.
* automake.in (generate_makefile): Do not push $(SOURCE) into
@sources. Use define_pretty_variable to define SOURCES.
(handle_LIBOBJS, handle_ALLOCA): Use require_variables_for_variable
to require LIBOBJS, LTLIBOBJS and ALLOCA.
(handle_programs, handle_ltlibraries): Do not define an empty
_DEPENDENCIES or _LDFLAGS variable when none is defined.
(define_configure_variable): Do not check whether the variable
already exists (it's Automake::Variable::define's job).
(require_build_directory): Likewise, do not check
the existence of am__dirstamp.
(generate_makefile, handle_options, handle_languages)
(check_libobjs_sources, handle_single_transform_list)
(traverse_variable_recursively_worker, handle_source_transform)
(handle_lib_objects, handle_LIBOBJS, handle_compile)
(handle_libtool, handle_programs, handle_libraries)
(handle_ltlibraries, check_typos, handle_texinfo_helper)
(handle_man_pages, handle_tags, handle_dist, handle_subdirs)
(scan_aclocal_m4, handle_gettext, handle_footer, handle_install)
(handle_all, do_check_merge_target, handle_clean, lang_c_finish)
(handle_tests, lang_yacc_target_hook, define_pretty_variable)
(define_compiler_variable, define_linker_variable)
(make_paragraphs, am_primary_prefixes, am_install_var): Adjust to
call var, vardef, or set_seen, instead of variable_defined. Use
set_seen only for variables which are actually checked by
check_typos.
* tests/target.test: Delete.
* tests/alloca.test, tests/alloca2.test: New files.
* tests/libobj3.test: Check error message.
* tests/distcom4.test: Make sure configure is in DIST_COMMON.
This replace confdist.test.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Remove target.test.
(TESTS): Add alloca.test and alloca2.test. Remove confdist.test.
* automake.in (handle_dist): Delete DIST_COMMON before redefining
it. Bug report from Akim Demaille.
(rewrite_inputs_into_dependencies): Make sure we always return
something, even when $add_srcdir is 0.
* tests/distcom4.test, tests/distcom5.test: New files.
* tests/Makefile.am (TESTS): Add distcom4.test and distcom5.test.
* automake.in (&make_paragraphs): Define %GZIP%.
(&process_option_list): Accept no-dist-gzip2.
(&handle_dist): Complain when no archive format is enabled.
* lib/am/distdir.am (DIST_ARCHIVES): New variable.
(dist-gzip, dist-bzip2, dist-tarZ, dist-zip): No longer
conditioned.
(dist): Build $(distdir).tar.gz conditionally.
(distcheck): Use DIST_ARCHIVES to find an archive to unpack, and
to list built archives. Run $(MAKE) dist instead of dist-gzip.
* automake.texi (Options, The types of distributions): Adjust.
2003-06-14 Karl Berry <karl@gnu.org>
Alexandre Duret-Lutz <adl@gnu.org>
* mkinstalldirs (scriptversion): New variable. Setup emacs hooks
to update it each time the file is written, as in install-sh.
(usage): Improve message.
(--version): New option.
(--help): Output to stdout, not stderr.
Paul Eggert [Sat, 14 Jun 2003 05:05:47 +0000 (05:05 +0000)]
* lib/install.sh (dsttmp, rmtmp): Do not use '#' in file names;
it's not guaranteed by POSIX and it doesn't work on OpenVMS.
Bug reported by Bernard Giroud in:
http://mail.gnu.org/archive/html/autoconf-patches/2003-06/msg00013.html
Paul Eggert [Sat, 14 Jun 2003 05:04:52 +0000 (05:04 +0000)]
(dsttmp, rmtmp): Do not use '#' in file names;
it's not guaranteed by POSIX and it doesn't work on OpenVMS.
Bug reported by Bernard Giroud in:
http://mail.gnu.org/archive/html/autoconf-patches/2003-06/msg00013.html
* automake.in (check_gnu_standards): Use no-installman and
no-installinfo's locations.
(process_option_list): Fill %options with locations.
(check_cygnus) Fill $options{'no-installinfo'} and
$options{'no-dependencies'} with $cygnus_mode, so that it
remains a Location.
* tests/gnuwarn2.test: New file.
* tests/Makefile.am (TESTS): Add gnuwarn2.test.
* automake.in (process_option_list): Record the location
of ansi2knr's definition.
(handle_compile): Use it.
* tests/ansi3.test: Make sure the location appears correctly.
Update to use set -e.
* tests/ansi3b.test: New file.
* tests/Makefile.am (TESTS): Add ansi3b.test.
* tests/alpha.test: Really run $MAKE. Augment to test
subdirectories, and check-news report.
* tests/alpha2.test: New file. Bug report from Akim Demaille.
* tests/gnits2.test: Make sure README-alpha is not distributed.
* tests/Makefile.am (TESTS): Add alpha2.test.
* automake.in (handle_minor_options): Distribute README-alpha
using push_dist_common, not require_file_with_macro.
* alocal.in: Use Automake::Configure_ac.
($configure_ac): Delete.
(scan_configure): Adjust use of find_configure_ac;
* automake.in: Use Automake::Configure_ac.
($configure_ac): Delete.
(scan_autoconf_files): Adjust use of find_configure_ac;
* lib/Automake/Configure_ac.pm: New file.
* lib/Automake/General.pm (find_configure_ac): Delete. Now
replaced by Automake::Configure_ac::search_configure_ac.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add Configure_ac.pm.
* lib/Automake/Variable.pm: Use Automake::Configure_ac.
(require_variables): Adjust use of $configure_ac.
* lib/Automake/Variable.pm (check_defined_unconditionally): Add
the $parent_cond argument.
(output): Use $self->name in diagnostic not $self.
(variable_value_as_list): Rename as ...
(value_as_list): ... this. Declare as a method. Take a $parent_cond
argument and pass it to check_defined_unconditionally. Do not call
variable_assert, now that this is a method.
(variable_assert): Delete (unused).
* automake.in (traverse_variable_recursively_worker): Adjust to
use check_defined_unconditionally and value_as_list as a methods.