* 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.
* lib/Automake/Variable.pm (output): Declare as a method, since it
is only used this way.
(define): Fix documentation of $cond.
Suggested by Raja R. Harinath.
* lib/Automake/Variable.pm, lib/Automake/VarDef.pm: New files.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add Variable.pm
and VarDef.pm.
* automake.in: Use Automake::Variable and Automake::VarDef.
(MACRO_PATTERN): Delete. Now Automake::Variable::_MACRO_PATTERN.
(am_macro_for_var): Delete. Now Automake::Variable::_am_macro_for_var.
(ac_macro_for_var): Delete. Now Automake::Variable::_ac_macro_for_var.
(silent_variable_override): Delete. Now
Automake::Variable::_silent_variable_override.
(var_value, var_location, var_comment, var_type, var_owner,
var_pretty, content_seen): Delete. This functionality is now
offered by Automake::Variable and Automake::VarDef.
(VAR_AUTOMAKE, VAR_CONFIGURE, VAR_MAKEFILE, VAR_ASIS, VAR_PRETTY):
Delete. Now defined in Automake::VarDef.
(var_order): Delete. Now Automake::Variable::_var_order.
(appendvar): Delete. Now Automake::Variable::_appendvar.
(var_SUFFIX_trigger): Register using Automake::Variable::hook.
(initialize_per_input): Call Automake::Variable::reset.
(err_var, msg_cond_var, msg_var, reject_var): Delete. Now
defined in Automake::Variable.
(generate_makefile, process_option_list, handle_languages)
(traverse_variable_recursively_worker)
(transform_variable_recursively, handle_compile)
(handle_libraries, handle_ltlibraries)
(check_typos, handle_dist, handle_subdirs, scan_autoconf_files):
Adjust to use Automake::Variable functions.
(check_ambiguous_condition): Delete. Now
Automake::Variable::_check_ambiguous_condition.
(condition_ambiguous_p): Delete. Now
Automake::Variable::condition_ambiguous_p.
(variable_not_always_defined_in_cond): Delete. Now
Automake::Variable::not_always_defined_in_cond.
(macro_define): Delete. Now Automake::Variable::define.
(macro_delete): Delete. Now Automake::Variable::variable_delete.
(macro_dump): Delete. Now Automake::Variable::variable_dump.
(macros_dump): Delete. Now Automake::Variable::variables_dump.
(variable_defined): Delete. Now
Automake::Variable::variable_defined, with the target check
temporarily disabled.
(variable_assert): Delete. Now Automake::Variable::variable_assert.
(examine_variable): Delete. Now
Automake::Variable::examine_variable.
(variable_conditions): Delete. Now Automake::Variable::conditions.
(scan_variable_expansions): Delete. Now
Automake::Variable::scan_variable_expansions.
(check_variable_expansions): Delete. Now
Automake::Variable::check_variable_expansions.
(check_variable_defined_unconditionally): Delete. Now
Automake::Variable::check_defined_unconditionally.
(variable_value): Delete. Now Automake::Variable::variable_value.
(variable_value_as_list): Delete. Now
Automake::Variable::variable_value_as_list.
(variable_value_as_list_recursive_worker): Adjust to use
Automake::Variable functions.
(variable_output): Delete. Now Automake::Variable::output.
(define_pretty_variable, define_configure_variable, read_am_file)
(define_standard_variables, read_main_am_file): Adjust to use
Automake::Variable functions.
(handle_variables): Delete. Now Automake::Variable::output_variables.
(file_contents_internal, am_primary_prefixes, am_install_var)
(require_file_with_macro, require_conf_file_with_macro)
(push_dist_common): : Adjust to use
Automake::Variable functions.
(require_variables): Delete. Now
Automake::Variable::require_variables.
(require_variables_for_macro): Delete. Now
Automake::Variable::require_variables_for_variable.
* tests/Makefile.am (XFAIL_TESTS): Add target.test.
* automake.in: Move the "main" code at the end.
(parse_arguments): Move near the end.
($KNOWN_EXTENSIONS_PATTERN, @known_extensions_list,
accept_extensions, var_SUFFIXES_trigger): Move these definitions
before any call to register_language.
(am_file): Move the definition with all other global variables,
do not use local to define it.
* Makefile.am (maintainer-check): Expect no `local' in Automake.
* lib/Automake/Wrap.pm, lib/Automake/tests/Wrap.pl: New files.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add Wrap.pm.
* lib/Automake/tests/Makefile.am (TESTS): Add Wrap.pl.
* automake.in (handle_texinfo_helper, pretty_print_rule)
(variable_output): Adjust to use makefile_wrap instead of
pretty_print_internal.
(pretty_print_internal): Remove. Renamed as Automake::Wrap::wrap
and augmented to accept the $eol and $max_len arguments.
* lib/am/install.am (install, install-exec, install-data, uninstall):
Declare conditionally using a if/else/endif block instead of
using ?SUBDIRS?-style conditions. The latter fail when
%maybe_BUILT_SOURCES% is replaced by several lines.
This fixes a bug introduced on 2003-04-06.
* tests/bsource.test: New file.
* tests/Makefile.am (TESTS): Add bsource.test.
Reported by Bruno Haible.
* automake.texi (renamed objects): New node.
(Program and Library Variables): Move maude_DEPENDENCIES closer
to maude_LDADD. Define and use `per-target compilation flags' in the
explanation for maude_CFLAGS et al. Link to the `renamed objects'
node. Illustrate maude_SHORTNAME.
* automake.texi (Optional): Document m4_include.
(Invoking aclocal): Shake a bit to introduce the various uses
of aclocal and explain that aclocal will use m4_include for
local files.
(Extending aclocal): Show how to install installable macros
in $(datadir)/aclocal, and make it clearer that writing installable
macros is not the only way to extend aclocal.
(Local Macros, Future of aclocal): New sections.
* automake.in (@common_files): Remove acinclude.m4 since
it will be m4_included by aclocal.m4 and files are always
distributed.
(scan_aclocal_m4): Do not bother about acinclude.m4 anymore.
We will get this dependency when tracing m4_includes.
* tests/aclocal6.test: Make sure acinclude.m4 is distributed
when used.
* tests/acinclude.test: Delete.
* tests/Makefile.am (TESTS): Remove acinclude.test.
* automake.in (handle_configure): Don't add @configure_deps to
DIST_COMMON, we do this from lib/am/configure.am now.
Define the am__configure_deps variable instead of substituing
%CONFIGURE_DEPS%.
* lib/am/configure.am (%MAKEFILE-IN%, $(top_srcdir)/configure,
$(ACLOCAL_M4)): Use $(am__configure_deps) instead of %CONFIGURE_DEPS%.
(DIST_COMMON): Add $(am__configure_deps).
* tests/aclocal6.test: New file.
* lib/am/configure.am (am--refresh): New rule.
(%MAKEFILE-IN%, %MAKEFILE%, $(top_builddir)/config.status,
$(top_srcdir)/configure): Call the top-level am--refresh from
subdirectories.
($(ACLOCAL_M4)): Depend upon %CONFIGURE_DEPS%. Call the
top-level am--refresh when not in the top-level directory.
Fix jump directories for VPATH builds.
Suggested by Raja R. Harinath.
* automake.in (scan_aclocal_m4): Do not parse ACLOCAL_AMFLAGS
and glob for m4_files (We've got all local m4 files while
tracing m4_include's). Diagnose ACLOCAL_M4_SOURCES as obsolete.
Distribute aclocal.m4 only at the top-level.
(my_glob): Remove. This fixes PR automake/11.
(handle_dist): Strip leading `./' from directories.
* aclocal.in (add_file): Output 'm4_include([file.m4])' instead
of copying local files.
(write_aclocal, parse_arguments): Bump copyright date.
* configure.in: De not build m4/amversion.m4 from here ...
* m4/Makefile.am ($(srcdir)/amversion.m4): ... do this here.
(nodist_m4data_DATA): Use $(srcdir)/amversion.m4 instead
of amversion.m4.
* tests/Makefile.am (XFAIL_TESTS): Remove aclocal5.test.
(TESTS): Remove aclocal2.test. Do not test aclocal.test twice.
* tests/aclocal2.test: Delete (pointless).
* tests/aclocal5.test: Make sure configure's dependencies are
distributed.
* tests/acinclude.test: Adjust to search for m4_include.
* tests/dirlist.test, tests/dup3.test: Run $AUTOCONF and grep
configure instead of aclocal.m4.
For automake PR/46:
* automake.in (scan_aclocal_m4): Work in all directories, not only
the top-level. Prepend $(top_srcdir) in front of each aclocal.m4
dependency.
* lib/am/configure.am (config.status, configure, $(ACLOCAL_M4)):
Define rebuild rules in each directory.
* tests/subdir8.test: Augment to exercise aclocal.m4's dependencies
from the top-level directory.
* tests/aclocal5.test: New file. Exercise aclocal.m4's dependencies
from a subdirectory.
* tests/Makefile.am (TESTS): Add aclocal5.test.
(XFAIL_TESTS): Replace subdir8.test by aclocal5.test.
For automake PR/46:
* lib/am/configure.am (%MAKEFILE-IN%): If Makefile.in is rebuilt
because of one of configure's dependencies, run automake without
argument to update the whole tree at once. Depend upon
%CONFIGURE_DEPS%.
(%MAKEFILE%): If Makefile is rebuilt because config.status has
been updated, run config.status without arguments.
* automake.in (scan_autoconf_traces): Prepend $(top_srcdir)
before all files in @configure_deps.
* tests/subdir5.test: Modernize configure.in, make sure
maude/Makefile was actually created, and exercise %CONFIGURE_DEPS%.
* tests/subdir8.test: New file.
* tests/Makefile.am (TESTS): Add subdir8.test.
(XFAIL_TESTS): Replace subdir5.test by subdir8.test.
Fix for PR automake/389:
* automake.in (handle_configure): Don't put $colon_infile in
CONFIG-MAKEFILE.
* tests/conff.test: New file.
* tests/Makefile.am (TESTS): Add conff.test.
Reported by Alexander Turbov.
Richard Dawe [Fri, 18 Apr 2003 09:07:01 +0000 (09:07 +0000)]
* lib/am/dejagnu.am (site.exp): Don't define tool in site.exp,
because we set that by invoking runtest with --tool.
* tests/Makefile.am (TESTS): Add dejagnu4.test, dejagnu5.test,
dejagnu6.test, dejagnu7.test.
* tests/dejagnu4.test: New test.
* tests/dejagnu5.test: New test.
* tests/dejagnu6.test: New test.
* tests/dejagnu7.test: New test.
* tests/dejagnu3.test: Make sure the DejaGnu test is actually run.
Jim Meyering [Fri, 18 Apr 2003 08:54:34 +0000 (08:54 +0000)]
* lib/am/yacc.am (?!GENERIC?%OBJ% aka .y.c): Don't redirect
directly to $@. Instead, redirect to $@t and rename upon success.
Also, move the commands that update $@ so they are last. Otherwise,
this rule could leave the user with an up to date target (.c file)
but with a missing or corrupted corresponding .h file.
* automake.in (rule_define): If the user tries to override
an Automake which has a -local variant, suggest using the
-local variant in the -Woverride diagnostic.
(handle_factored_dependencies): Register factored
rules with rule_define, and define them only in undefined
conditions.
* tests/Makefile.am (TESTS): Add override.test.
* tests/overrid.test: New file.
* tests/phony.test: Count the number of .PHONY targets.
* lib/am/distdir.am (distuninstallcheck, distcleancheck): Silent
these rules, so that we don't confuse users by echoing
"echo ERROR:" commands which are not run.
2003-03-14 Richard Dawe <rich@phekda.freeserve.co.uk>
Alexandre Duret-Lutz <adl@gnu.org>
* automake.in (output_texinfo_build_rules, handle_texinfo_helper,
initialize_per_input): Add infrastructure for generating HTML
documentation from texinfo source.
* lib/am/texinfos.am: Add rules for building HTML documentation
from texinfo source.
* lib/am/texibuild.am: Likewise.
* automake.texi (Texinfo): Document rules for building
HTML documentation from texinfo source.
* tests/txinfo21.test: New file.
* tests/Makefile.am (TESTS): Add txinfo21.test.
* tests/defs.in: Handle required=makeinfo-html.