* 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.
* 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).