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.
* lib/am/texinfos.am (install-info-am, uninstall-info-am): Install
DJGPP-style *.iNN info files.
(maintainer-clean-aminfo): Rewrite using the same pattern
as in uninstall-info-am.
* lib/am/texibuild.am (%SOURCE_SUFFIX%%DEST_SUFFIX%): Erase
DJGPP-style *.iNN info files before running $(MAKEINFO).
* tests/txinfo19.test: New file.
* tests/Makefile.am (TESTS): Add txinfo19.test.
Fix for PR automake/381:
* automake.in (handle_gettext): Do not print diagnostics
about po/ and intl/ missing from SUBDIRS if po/ does not
exist. Warn if `SUBDIRS = intl' is used although libintl
is 'external'.
* tests/gettext.test: Make sure diagnostics are not output
when po/ does not exist.
* tests/gettext2.test: Test for unwanted intl/.
PR from Alexander Turbov, fix suggested by Bruno Haible.
2003-02-10 Richard Dawe <rich@phekda.freeserve.co.uk>
* bootstrap: Don't require support for symlinks - copy instead.
Override $SHELL with DJGPP's bash, if running DJGPP. Substitute
@SHELL@ in automake.in and aclocal.in. This makes the setting
of SHELL work for DJGPP.
For PR automake/385:
* lib/depcomp (makedepend): Strip any libtool call, before
running makedepends.
* tests/depcomp4.test: New file.
* tests/Makefile.am (TESTS): Add it.
Reported by Jeff Squyres.
Related to PR automake/385:
* lib/depcomp (dashmstdout): Do not use `-o /dev/null', or gcc will
write dependencies to /dev/null. `-o /dev/null' was added
on 2002-06-13 just because I tried to replace `-o foo.o' by something
else and didn't thought about removing it entirely.
* tests/depcomp3.test: New file.
* tests/Makefile.am (TESTS): Add it.
* m4/init.m4 (_AC_AM_CONFIG_HEADER_HOOK): Recompute
indexes of header files so we create stamp files with
the right numbers when config.status is run on some headers.
* tests/stamph2.test: Check for this.
Reported by Sander Niemeijer.
* automake.in (vars_scanned): Move near traverse_variable_recursively.
(traverse_variable_recursively,
traverse_variable_recursively_worker): Accept a $COND_FILTER argument
to filter out conditions during recursion. Don't recurse into
undefined variables. Don't pass empty results to &FUN_COLLECT.
(value_to_list): Remove, was used by
variable_value_as_list_recursive_worker only.
(variable_value_as_list_recursive_worker): Rewrite using
traverse_variable_recursively. Remove the $parent argument.
(variable_value_as_list_recursive,
variable_loc_and_value_as_list_recursive): Adjust calls
to variable_value_as_list_recursive_worker. Don't reset
%vars_scanned.
* tests/cond3.test: Don't expect empty helper variables,
we don't output them anymore.
* tests/cond30.test: Use an undefined variable.
* automake.in (handle_programs): Strip $(EXEEXT) before
calling &check_canonical_spelling.
* tests/exeext.test: Make sure we don't use a
maude3__EXEEXT__OBJECTS variable.
* lib/Automake/DisjConditions.pm (_permutations_worker)
(permutations): Remove, so that people aren't tempted to use it.
* lib/Automake/tests/DisjConditions.pl (tests_permutations): Remove.
* automake.in (traverse_variable_recursively,
traverse_variable_recursively_worker): Pass one merged Condition
instead of a stack of conditions to &FUN_STORE and &FUN_COLLECT.
(transform_variable_recursively, define_objects_from_sources)
(handle_lib_objects, variable_conditions_recursive): Adjust usage.
* automake.in (handle_lib_objects): Compute _DEPENDENCIES variables
using transform_variable_recursively instead of
variable_conditions_recursive and variable_value_as_list_recursive
to avoid combinatorial explosion.
(handle_lib_objects_cond): Merge into handle_lib_objects.
* tests/cond11.test: Don't grep internal details in Makefile.in,
run $MAKE to make sure the resulting Makefile runs as expected.
* tests/cond29.test: Also exercise conditional _LDADD.
* tests/cond31.test, tests/cond32.test: New files.
* tests/Makefile.am (TESTS): Add tests/cond31.test and
tests/cond32.test.
Fix for PR automake/352:
* automake.in (transform_variable_recursively): If the destination
and the source variables are the same, delete the source variable
before defining the destination variable.
(handle_programs): Strip any $(EXEEXT) suffix from $one_file,
or this will confuse handle_source_transform.
(append_exeext): Rewrite using transform_variable_recursively.
* tests/cond29.test, tests/cond30.test: New files.
* tests/exeext.test: Run ./configure and make, this uncovered
the above handle_programs issue.
* tests/Makefile.am (TESTS): Add cond29.test and cond20.test.
* automake.in (@substfroms, @substtos): Move near
traverse_variable_recursively.
(traverse_variable_recursively, traverse_variable_recursively_worker):
New functions, extracted from define_objects_from_sources.
(define_objects_from_sources): Rewrite using
traverse_variable_recursively.
(handle_source_transform): Use variables_conditionally_defined
instead of calling variable_conditions_recursive directly.
Adjust the call to define_objects_from_sources; there is no need
to reset @substtos, @substfroms, and %vars_scanned now.
(variable_conditions_recursive): Rewrite using
traverse_variable_recursively.
(variable_conditions_recursive_sub): Remove.
(variable_conditionally_defined): Fix condition comparison (the
consequence was that DIST_SUBDIRS was always output).
* lib/Automake/Condition.pm (merge): Allow merging several
conditions at once.
* automake.texi (Python): Explain that directory variables start
with either ${prefix} or ${exec_prefix}, and point to the
`Installation Directory Variables' section of the Autoconf manual.
* lib/am/distdir.am (top_distdir, distdir): Define these
variables only in top level Makefile. Redefine $(top_distdir)
as $(distdir).
(distdir): Fix passing of $(top_distdir) to sub-makes.
* automake.in (handle_dist): Do not define the DISTDIR and
TOP_DISTDIR transformations. We don't need them anymore.
* automake.texi (Dist): Reorder the dist-hook section, and move
the DIST_SUBDIRS paragraph earlier. Document distdir and
top_distdir.
* tests/subpkg.test: Update to check for $(distdir) and
$(top_distdir).
Rename more files to accomodate 8+3 file systems, and adjust the
vocabulary at the same time: AM_CONDITIONAL defines "conditionals",
and we call "condition" a conjunction of "conditionals".
* lib/am/Conditional.pm: Rename to lib/am/Condition.pm.
* lib/am/tests/Conditional.pl: Rename to lib/am/tests/Condition.pl.
* lib/am/ConditionalSet.pm: Rename to lib/am/DisjConditions.pm.
* lib/am/tests/ConditionalSet.pl: Rename to
lib/am/tests/DisjConditions.pl
* lib/am/Conditional.pm (condition_negate): Rename to ...
* lib/am/Condition.pm (conditional_negate): ... this.
* automake.in: Adjust references to Condition and DisjConditions.
(check_ambiguous_conditional, conditional_ambiguous_p): Rename to ...
(check_ambiguous_condition, condition_ambiguous_p): ... these.
* automake.texi (Conditional Programs): Show a sample Makefile.am.
Remind $(EXEEXT) must be appended to configure substitutions.
Show how Automake conditionals can be used instead.
* tests/exeext.test (check_PROGRAMS): Make sure EXEEXT is also
appended to conditionally defined programs.