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.
* automake.in (%silent_variable_override): New variable.
(macro_define): Warn about variable definitions overriding
Automake variables.
(rule_define): Warn about target definitions overriding
Automake variables. Fix $condmsg definition.
* automake.texi (Invoking Automake): Document the `override'
category.
* lib/Automake/ChannelDefs.pm (usage): Likewise.
* lib/am/texinfos.am [!%?CYGNUS] (MAKEINFO): Do not define,
this is already done in m4/init.m4.
* tests/dejagnu2.test: Run $MAKE, don't only grep. Use
-Wno-override, and make sure we get a warning without.
* tests/exeext2.test, tests/substtarg.test: Use -Wno-override,
and make sure we get a warning without.
* tests/exeext3.test, tests/java2.test, tests/nolink.test,
tests/subpkg.test, tests/vartest.test: Use -Wno-override.
* tests/txinfo13.test: Use installcheck-local instead of overriding
installcheck.
* tests/txinfo2.test: Run $MAKE on the real Makefile (this test
used to succeed thanks to a failure...)
* tests/location.test: Adjust expected messages.
* tests/Makefile.am (XFAIL_TESTS): Add txinfo5.test.
Richard Dawe [Thu, 10 Apr 2003 23:15:46 +0000 (23:15 +0000)]
* configure.in: Get the build platform name. Define
MODIFICATION_DELAY as the time to wait after modifying a file,
to cope with timestamp granularity issues, depending
on the platform.
* tests/defs.in: Define `sleep' using MODIFICATION_DELAY.
2003-04-08 Eric Siegerman <eric_97@pobox.com> (tiny change)
* automake.texi (Public macros): Clarify that the new
AM_INIT_AUTOMAKE variant is preferred, and the old one
deprecated. Copy-edit the rest of the AM_INIT_AUTOMAKE item.
(Hello): Caution that the example uses the deprecated
AC_INIT/AM_INIT_AUTOMAKE syntax, and xref to the discussion.
Retain all variable definitions until the whole Makefile.am has
been processed, then output all variables in one step, at the top
of Makefile.in. (Older revisions used to output user variables
before generating Automake targets, and to mix Automake variables
with Automake targets, preventing redefinitions of previously
output variables.)
* automake.in (%var_pretty): New variable.
(VAR_ASIS, VAR_PRETTY): New constants.
(@var_list): Rename as ...
(@var_order): ... this.
(initialize_per_input): Clear %var_pretty.
(handle_variables): New function, extracted from ...
(read_main_am_file): ... here.
(generate_makefile): Call handle_variable after everything else.
(handle_dist): Use define_pretty_variable, not pretty_print.
(pretty_print): Delete.
(macro_define): Augment with $COMMENT and $PRETTY parameters.
Update %var_comment, %var_pretty, and @var_order. Adjust callers.
(variable_pretty_output): Merge with ...
(variable_output): ... this, and choose the prettiness on a
per-condition basis.
(append_comments): Delete. This work is now done by macro_define.
(read_am_file, file_contents_internal): Don't call append_comments
nor update @var_list, adjust calls to macro_define.
(handle_subdirs): Don't explicitly output RECURSIVE_TARGETS,
just mark it as VAR_PRETTY.
* tests/exeext.test: Make sure bin_PROGRAMS is output only once.
Report from Jim Meyering.
* automake.in (handle_installdirs): Rename as ...
(handle_install): ... this. Define maybe_BUILT_SOURCES.
(generate_makefile): Adjust call to handle_install.
* lib/am/install.am (install): Use %maybe_BUILT_SOURCES%.
* automake.texi (Sources, Built sources example): BUILT_SOURCES
is honored by `make install' too.
* tests/check3.test: Make sure that `make install' also depends
upon BUILT_SOURCES.
Report from Alexander Turbov.
* lib/am/libs.am (ARFLAGS): Define.
* automake.in (handle_libraries): Use `$(ARFLAGS)' instead of
hard-coding `cru'.
* automake.texi (A Library): Explain how AR, ARFLAGS and RANLIB
are used, and how they can be overridden.
(Program and Library Variables): Adjust to show `$(ARFLAGS)'
instead of `cru'
* tests/ar.test: Rewrite to test for AR, ARFLAGS, and RANLIB.
* tests/ranlib.test: Delete, obsoleted by ar.test.
* tests/Makefile.am (TESTS): Remove ranlib.test.
Report from Paul Thomas.
* automake.in (check_trailing_slash): New function (variation on
a patch by Peter Muir). Diagnose whitespaces following trailing
backslash.
(read_am_file): Use it.
* tests/backsl4.test: New file.
* tests/Makefile.am (TESTS): Add backsl4.test.
Reported by Peter Muir.
* lib/am/tags.am (TAGS): Use --etags-include instead of --include,
when supported by etags (Exuberant Ctags).
* tests/tagsub.test: Rewrite to _run_ the `tags' rule.
For Debian Bug #185388:
* automake.texi (Extending): Augment the install-exec-hook
discussion with an example how to symlink a versioned binary.
* tests/insthook.test: Rewrite to test the above example.
Report from James R. Van Zandt.
* lib/am/depend2.am (?GENERIC?%EXT%.o, ?GENERIC?%EXT%.obj)
(?GENERIC?%EXT%.lo): Use `mv -f' instead of `mv' in FASTDEP mode.
Suggested by Matthias Andree.
* lib/am/depend2.am (?GENERIC?%EXT%.o, ?GENERIC?%EXT%.obj)
(?GENERIC?%EXT%.lo): Hide the if/then/else machinery for FASTDEP.
Just echo the gcc command.
Suggested by Karl Berry.
* lib/am/depend2.am (?GENERIC?%EXT%.lo): Do not use
`test -f foo || echo $(srcdir)/` to emulate a VPATH search when
outputing suffix rules. This follows 2003-02-25's change.
* lib/am/lex.am (?GENERIC?%EXT%%DERIVED-EXT%): Likewise.
* lib/am/yacc.am (?GENERIC?%EXT%%DERIVED-EXT%): Likewise.
* lib/am/depend2.am (?GENERIC?%EXT%.lo): Do not use
`test -f foo || echo $(srcdir)/` to emulate a VPATH search when
outputing suffix rules. This follows 2003-02-25's change.
* lib/am/lex.am (?GENERIC?%EXT%%DERIVED-EXT%): Likewise.
* lib/am/yacc.am (?GENERIC?%EXT%%DERIVED-EXT%): Likewise.
* automake.texi (Requirements) <AC_CONFIG_FILES>: Files listed
with AC_CONFIG_FILES are cleaned by `make distclean'. Don't
pretend otherwise.
Reported by Rafael Laboissiere.
* automake.texi (Emacs Lisp): Instruct people to use lisp_DATA
instead of lisp_LISP when they don't want byte-compilation.
Don't mention ELCFILES anymore.
* automake.in (handle_data): Allow lisp_DATA.
* tests/lisp5.test: New file.
* tests/Makefile.am (TESTS): Add lisp5.test.
* automake.in (handle_emacs_lisp): Don't build *.elc files
if ELCFILES was set empty.
* tests/lisp4.test: New file.
* tests/Makefile.am (TESTS): Add lisp4.test.
Reported by Simon Josefsson.
* lib/am/depend2.am (?GENERIC?%EXT%.o, ?GENERIC?%EXT%.obj): Do not
use the `test -f foo || echo $(srcdir)/` to emulate a VPATH search
when outputing suffix rules.
* lib/am/texibuild.am (?GENERIC?%SOURCE_SUFFIX%.dvi)
(?GENERIC?%SOURCE_SUFFIX%.pdf): Likewise.
Suggested by Bruno Haible.
* lib/am/texibuild.am: Don't remove the target info files. Instead,
back up and restore them if makeinfo fails.
* tests/txinfo20.test: New file.
* tests/Makefile.am (TESTS): Add txinfo20.test.