* automake.texi (Building ctags and etags): Rename and adjust as ...
(Building true and false): ... this.
* tests/targetclash.test: New file.
* tests/specflags7.test, tests/specflags8.test: Adjust to build
true and false.
* tests/Makefile.am (TESTS): Add targetclash.test.
(XFAIL_TESTS): Remove specflags7.test and specflags8.test.
Diagnose target clashes, for PR automake/344:
* automake.in (%targets): Record conditionals for definitions.
(%target_conditional): Remove (obsoleted by %targets).
(%target_source, %target_owner): New hashes.
(TARGET_AUTOMAKE, TARGET_USER): New constants.
(initialize_per_input): Adjust to reset new variables.
(err_cond_target, msg_cond_target): New functions.
(msg_target): Adjust usage of %targets.
(conditional_ambiguous_p): Take a list of conditional to check
as a third parameter, so this can be used for other things that
variables.
(handle_lib_objects_cond): Adjust conditional_ambiguous_p usage.
(variable_defined): Restrict the target-with-same-name check
to user targets.
(rule_define): Add the $SOURCE argument, and take $OWNER instead
of $IS_AM. Diagnose target clashes (including ambugious
conditionals). Return a list of conditions where the rule should
be defined instead of a boolean. Fill %target_source and
%target_owner.
(target_define): Use `exists', not `defined'.
(read_am_file): Adjust the call to rule_define.
(file_contents_internal): Add more FIXMEs. Simplify my moving
and documenting the "define rules in undefined conditions" to
rule_define.
* tests/Makefile.am (XFAIL_TESTS): Add specflags7.test and
specflags8.test.
* aclocal.in: Prototype all the functions.
Add `(C)' to Copyrights.
(&add_file): Strip the comments before checking for `AC_REQUIRE'.
Remove Perl 4 hacks, since anyway we require 5.005 via General.pm.
* lib/Automake/Channels.pm (_default_options): Add `backtrace'.
(msg): Die with backtrace if requested.
* automake.in: Enable `backtrace' on the `automake' channel.
* lib/am/distdir.am (distcheck): Strip $(srcdir) prefix on
distributed files, to workaround Sun make VPATH munging.
This fixes subdircond2.test, subdircond3.test, and subpkg.test
on Solaris.
* tests/extra6.test, tests/lex3.test, tests/pr87.test,
tests/pr9.test, tests/target-cflags.test, tests/texinfo13.test,
tests/texinfo16.test, tests/yacc7.test, tests/yaccvpath.test:
Don't require GNU make.
* lib/am/scripts.am (installcheck-%DIR%SCRIPTS): Account for
Sun make rewriting rules in VPATH builds. (Fixes gnits3.test.)
* lib/am/progs.am (installcheck-%DIR%PROGRAMS): Likewise.
For PR automake/343:
* automake.in (scan_texinfo_file) <clean_suffixes>: Remove dvi, ps,
and pdf.
(output_texinfo_build_rules): Define %DIRSTAMP% when processing
texibuild.am. Return $dirstamp and a list of files to clean.
(handle_texinfo_helper): Process texi-vers.am after the call to
output_texinfo_build_rules and use $dirstamp to define %DIRSTAMP%.
* lib/am/texi-vers.am (%STAMPVTI%): Build %DIRSTAMP% if needed.
* lib/am/texibuild.am (%DEST_PREFIX%%DEST_SUFFIX%): Likewise.
(%DEST_PREFIX%.dvi, %DEST_PREFIX%.pdf): Depend on %DIRSTAMP%.
* tests/texinfo13.test: New file.
* tests/Makefile.am (TESTS): Add texinfo13.test.
* lib/am/texinfos.am (install-info-am, dist-info): Looks for
info files in build or source directory.
This completes the change from 2002-07-30 (for PR automake/168).
* automake.in (CLEAN, MAINTAINER_CLEAN): New constants.
(maintainer_clean_files): Replace by ...
(clean_files): ... this new variable.
(initialize_per_input, lang_yacc_target_hook,
lang_lex_target_hook): Use %clean_files instead of
@maintainer_clean_files.
(handle_clean): Rewrite, using %clean_files.
(require_build_directory_maybe): Use %clean_files instead
of %compile_clean_files. This allows using
&require_build_directory_maybe for non-compiling targets.
* lib/am/clean.am (mostlyclean-generic, clean-generic,
distclean-generic, maintainer-clean-generic): Rewrite using
%MOSTLYCLEAN_RMS%, %CLEAN_RMS%, %DISTCLEAN_RMS%, and
%MAINTAINER_CLEAN_RMS%.
* lib/Automake/Channels.pm (buffering, backlog): New variables.
(buffer_messages, flush_messages): New functions.
(@EXPORT): Add buffer_messages and flush_messages.
* automake.in (generate_makefile): Call buffer_messages and
flush_messages to buffer warnings until AUTOMAKE_OPTIONS has
been read.
Fix for PR automake/346:
* automake.texi (Optional): Supress the documentation for
AC_PATH_XTRA, AC_FUNC_ALLOCA, AC_FUNC_ERROR_AT_LINE, AC_FUNC_FNMATCH,
AC_FUNC_GETLOADAVG, AC_FUNC_MEMCMP, AC_FUNC_MKTIME, AC_FUNC_OBSTACK,
AC_FUNC_STRTOD, AC_REPLACE_FUNCS, AC_REPLACE_GNU_GETOPT,
AC_STRUCT_ST_BLOCKS, AM_WITH_REGEX, AC_CHECK_TOOL, AC_CHECK_PROG,
AC_CHECK_PROGS, AC_PATH_PROG, and AC_PATH_PROGS. Augment the
documentation of AC_LIBSOURCE and AC_SUBST to explain this
applies to any macro that calls them.
Tom Tromey [Mon, 19 Aug 2002 22:48:38 +0000 (22:48 +0000)]
For PR automake/348:
* tests/Makefile.am (TESTS): Added include2.test.
* tests/include2.test: New file.
* tests/include.test: Check to make sure include file is
distributed.
* automake.in (read_am_file): Distribute included files.
Fix for PR automake/345:
* tests/defs: Add support for required=non-root, stolen
from fileutils' test suite.
* tests/destdir.test: Use required=non-root.
Tom Tromey [Sun, 18 Aug 2002 22:26:36 +0000 (22:26 +0000)]
For PR automake/347:
* automake.in (rule_define): Given portability warning if "%" seen
in target name.
(TARGET_PATTERN): Added `%'.
* tests/Makefile.am (TESTS): Added percent.test.
* tests/percent.test: New file.
* tests/ext2.test: New file. This bug is present in Automake 1.6.3
and was fixed by the change on variable_conditions_permutations
and invert_conditions on 2002-05-16.
* tests/Makefile.am (TESTS): Add ext2.test.
Reported by Ladislav Strojil.
* aclocal.in (parse_arguments): Add `dirlist' paths add the
very end of the search path, after aclocal-APIVERSION/ and
aclocal/.
* automake.texi (Macro search path): Adjust to reflect the
new ordering.
* tests/dirlist.test: Check for this.
2002-07-31 Charles Wilson <cwilson@ece.gatech.edu>
* aclocal.in (parse_arguments): Add support for extending
default macro search path, using a `dirlist' file within
the aclocal directory.
* automake.texi (Invoking aclocal): Move option descriptions into ...
(aclocal options): ... this new node.
(Macro search path): New node.
* tests/dirlist.test: New file.
* tests/Makefile.am (TESTS): Add dirlist.test.
* m4/dirlist: New file.
* m4/Makefile.am (EXTRA_DIST): Add dirlist.
* tests/defs: Honor any installed dirlist when searching for
libtool.m4 and gettext.m4.
Build info files in builddir instead of srcdir (for PR automake/168),
and prepare support for info files in subdirecties.
* automake.in (output_texinfo_build_rules): New function.
(handle_texinfo_helper): Use output_texinfo_build_rules, and
prepare to support subdir texinfos. Define am__TEXINFO_TEX_DIR.
* lib/am/texi-vers.am: Build version.texi and stamp-vti in the
current directory, not $(srcdir). Use %STAMPVTI% to name the stamp
file.
* lib/am/texibuild.am: Rewrite to output files in the current
directory, not $(srcdir). Also, support both generic and
non-generic output. Pass `-o $@' to makeinfo, texinfo, and
texi2dvi -- this is a partial fix for PR automake/339.
* tests/texinfo3.test: Make sure the `.texi:' rule is output.
* tests/texinfo10.test: Use set -e, so the checks are not ignored.
* tests/texinfo16.test: New file.
* tests/Makefile.am (TESTS): Add texinfo16.test.
* configure.in: Bump version to 1.6b.
* lib/config.guess, lib/config.sub, lib/Automake/XFile.pm: New
upstream versions.
* automake.in: Don't write @ALLOCA@ and @LIBOBJS@ in clear text,
since this file is processed by config.status.
* configure.in: Bump version to 1.6b.
* lib/config.guess, lib/config.sub, lib/Automake/XFile.pm: New
upstream versions.
* automake.in: Don't write @ALLOCA@ and @LIBOBJS@ in clear text,
since this file is processed by config.status.
* automake.in (read_am_file): Escaped newlines in comments are not
portable. If a comment line doesn't start with a `#', add it.
* tests/comment6.test: Ensure this is done.
Fix failures reported by Patrick Welche on NetBSD.
* tests/gnits2.test, tests/gnits3.test: Don't trust the exit
status of `make -k'.
* tests/obsolete.test: Source obs.1 and obs.2 from current
directory.
* tests/required2.test: New file.
* tests/Makefile.am (TESTS): Add required2.test.
* automake.in (initialize_per_input): Remove %require_file_found
setting. This reverts my change of 2002-04-19.
(require_file_internal): Use the full name of a file as a
key in %require_file_found, not only the basename.
Reported by Andrew Suffield.
* tests/gnits2.test: Use --program-prefix. Test for scripts too.
Replace the sed script by calls to grep, easier to debug.
* lib/am/progs.am (installcheck-%DIR%PROGRAMS): Honor nobase
and $(transform).
* lib/am/scripts.am (installcheck-%DIR%SCRIPTS): Likewise.
* lib/am/progs.am (install-%DIR%PROGRAMS, uninstall-%DIR%PROGRAMS):
Always strip the directory part before applying $(transform),
even for nobase_ targets.
* lib/am/scripts.am (install-%DIR%SCRIPTS, uninstall-%DIR%SCRIPTS):
Likewise.
* tests/nobase.test: Use --program-prefix while testing nobase
support.
Fix for PR automake/338:
* automake.in (seen_gettext_external): New variable.
(handle_gettext): Conditionalize the intl/ check on
$seen_gettext_external. Fix grep usage.
(scan_autoconf_traces): Set $seen_gettext_external if
`external' is passed to AM_GNU_GETTEXT.
* tests/gettext.test, tests/gettext2.test: New files.
* tests/Makefile.am (TESTS): Add gettext.test and gettext2.test.
* m4/header.m4 (_AM_DIRNAME, _AM_STAMP, _AM_CONFIG_HEADER,
_AM_CONFIG_HEADER_INSINUATE): Remove them all. Leave just ...
(AM_CONFIG_HEADER): ... this new definition for compatibility.
* m4/init.m4: Don't call _AM_CONFIG_HEADER_INSINUATE.
(_AC_AM_CONFIG_HEADER_HOOK): New macro.
* tests/confh5.tests: Delete.
* tests/Makefile.am (TESTS): Remove confh5.tests.
* automake.in: Register warning channel `gnu'.
(set_strictness): Turn on `gnu' in --gnu and --gnits.
(usage): Mention the `gnu' category.
(%var_is_am): Replace by ...
(%var_owner): ... this, which uses ...
(VAR_AUTOMAKE, VAR_CONFIGURE, VAR_MAKEFILE): ... these new constants.
Adjust all uses of %var_is_am.
(handle_languages): Warn about user variables being overriden.
(require_variables): Also check %configure_vars for the existence
of a required variable.
* automake.texi (Invoking Automake): Document -Wgnu.
* tests/yacc2.test, tests/yacc3.test: Use -Wno-gnu when
we test YFLAGS.
* tests/gnuwarn.test: New file.
* tests/Makefile.am (TESTS): Add gnuwarn.test.
Fix for PR automake/337:
* automake.in: Redefine the `flags' attribute of each language
as a list. List CPPFLAGS in `flags' when it is used.
(register_language): Set the default value of 'flags'.
(handle_single_transform_list): Adjust to treat `flags' as a list.
(handle_languages): Likewise. Don't bother defining the
configure variable for `c', this is always done since we trace
configure.ac.
* automake.texi (etags): Use per-executable _CPPFLAGS.
(Program and Library Variables): Mention maude_CPPFLAGS.
(Program variables): Likewise.
* tests/specflags8.test: Use _CPPFLAGS instead of _CFLAGS.
* tests/specflags9.test: New file.
* tests/Makefile.am (TESTS): Add specflag9.test.
* automake.texi: Use `variable' instead of `macro' everywhere it
designates a Makefile variable.
(Texinfo): `VERSION', `UPDATED', `EDITION', and `UPDATED-MONTH' are
`flags', not `macros'. `Macro' means something else in Texinfo.
Also show how to use these flags.
* automake.in (file_contents_internal): s/macro/variable/ in
error message.
* automake.in (parse_arguments): Call Getopt twice: once to catch
--help or --verbose, and once to process the other arguments.
(usage, verbose): Always exit 0, ignoring $exit_code (which anyway
should always be 0 because of the change to parse_arguments).
* tests/Makefile.am (TESTS): Add getopt.test.
* tests/getopt.test: New file.
* automake.texi (Invoking Automake): Document WARNINGS.
* automake.in (switch_warning, parse_WARNINGS): New function.
(setup_warnings): Rename to ...
(parse_warnings): ... this. Move most of the code to switch_warning.
Accept a comma separated list of categories.
* tests/vars2.test: Use a comma separated list of warning categories.
* m4/header.m4 (AM_CONFIG_HEADER): New macro.
* tests/confh5.test: Make sure that Autoconf complains if
AM_CONFIG_HEADER or AC_CONFIG_HEADERS is called before
AM_INIT_AUTOMAKE.
* lib/Automake/Channels.pm: New file.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add Channels.pm.
* automake.in: Use Automake::Channels and register some channels
for errors and warnings.
($exit_status): Remove, replaced by Channels::$exit_code.
(%required_variables): Remove, Channels will filter-out duplicates
itself.
(initialize_per_input): Call reset_local_duplicates.
(prog_error): Adjust to all `msg'.
(setup_warnings): New functions.
(parse_arguments): Accept -W CATEGORY and --warnings=CATEGORY,
call setup_warnings.
(usage): Update usage text accordingly.
(macro_dump, macros_dump): Return the dump as a string instead
of printing it.
(am_install_var) <$warned_about_extra>: Remove, Channels will
filter-out duplicates itself.
(set_strictness): Turn on/off channels for each stricness.
(err, fatal, err_var, err_target, err_am, err_ac, msg_var,
msg_target, msg_am, msg_ac, reject_var, reject_target, verb):
New functions, to replace ...
(print_error, am_error, file_error, macro_error, target_error,
conf_error, file_warning): ... these functions. Remove them.
Update all the code to use the new functions. The rough
correspondance is
am_error -> err_am
file_error -> err
macro_error -> err_var
target_error -> err_target
conf_error -> err_ac
die -> fatal
macro_error if defined -> reject_var
target_error if defined -> reject_target
verbose -> verb
* automake.texi (Invoking Automake): Document -W and --warnings.
Remove the documentation for --Werror and --Wno-error.
* tests/defs: Use -Werror, no --Werror.
* tests/exeext2.test: Test that the error message
is enabled with -Wobsolete.
* tests/output5.test: Rewrite to test that Automake complains
when there is no Makefile specified. (The original test was
succeeding for the wrong reason.)
* tests/seenc.test: Don't use --Wno-error, there is no reason now
that -Werror doesn't stop after the first error.
* tests/subobj.test: Use --add-missing, and check that
`compile' is installed and that Automake says so.
* tests/subobj2.test: Don't create `compile'.
* automake.in (am_macro_for_var): Add LIBTOOL.
(ac_macro_for_var): Add RANLIB.
(seen_libtool): Remove.
(handle_libtool, lang_c_finish, define_compiler_variable,
make_paragraphs): Use
variable_defined ('LIBTOOL') instead of $seen_libtool.
(handle_languages) <%transform>: Don't set 'LIBTOOL', it is
already done in make_paragraphs.
(handle_libraries): Simplify by requiring RANLIB with
&require_variables_for_macro.
(handle_ltlibraries): Simplify by requiring LIBTOOL with
&require_variables_for_macro.
(scan_autoconf_traces): Don't trace for AC_PROG_LIBTOOL and
AM_PROG_LIBTOOL.
* tests/libtool4.test, tests/library2.test: New files.
* tests/Makefile.in (TESTS): Add libtool4.test and library2.test.
Handle multiple suffix rules with the same input extension.
For PR automake/37.
* automake.in (suffix_rules_default): New variable.
(suffix_rules): Redefine as a hash of hashes of pairs.
(initialize_per_input): Setup suffix_rules_default from
suffix_rules on first call, an override suffix_rules
with suffix_rules_default on following calls.
(struct) <output_extensions>: New attribute.
(register_language): Set the default for output_extensions.
Call register_suffix_rule for each suffix.
(derive_suffix, handle_languages): Adjust to the new definition
of $suffix.
(register_suffix_rule): New function.
(rule_define): Call register_suffix_rule.
* tests/suffix8.test, tests/suffix9.test, tests/suffix10.test:
New files.
* tests/Makefile.am (TESTS): Add them.
* automake.in (am_macro_for_var, ac_macro_for_var,
required_variables): New variables.
(am_c_prototypes, seen_prog_lex, am_lispdir_location,
pythondir_location): Remove.
(initialize_per_input): Clear %required_variables.
(require_variables, require_variables_for_macro): New functions.
(handle_languages): Call &require_variables for $lang->config_vars.
(handle_compile): Call &require_variables_for_macro for the
ANSI2KNR and U variables.
(handle_emacs_lisp): Call &require_variables for EMACS and libdir.
(handle_python): Call &require_variables for PYTHON. Don't
explicitly allow `python' as a prefix for PYTHON.
(scan_autoconf_traces): Don't scan AC_PROG_LEX, AM_C_PROTOTYPES,
AM_PATH_LISPDIR, and AM_PATH_PYTHON.
(scan_autoconf_traces) <AC_SUBST>: Don't filter out ANSI2KNR and
AMDEPBACKSLASH here...
(define_configure_variable): ... do this here.
(am_primary_prefixes): Probe the existence of ${X}dir using
&require_variables_for_macro. If a standard prefix is not
legitimate, say so. Ignore all configure variables.
* tests/ansi8.test, tests/cxx2.test, tests/gcj5.test,
tests/lisp2.test, tests/python2.test: New files
* tests/Makefile.am (TESTS): Add them.
* tests/asm.test: Grep stderr.
* tests/lex2.test: Rewrite to test that Automake suggests AM_PROG_LEX.
* tests/python.test: Make sure py-compile is installed.
* aclocal.in: Add local variables so that Emacs setups GNU style
for perl-mode and cperl-mode.
* automake.in: Likewise.
(WHITE_PATTERN, RULE_PATTERN, SUFFIX_RULE_PATTERN, MACRO_PATTERN,
ASSIGNMENT_PATTERN, IF_PATTERN, ELSE_PATTERN, ENDIF_PATTERN,
INCLUDE_PATTERN, EXEC_DIR_PATTERN): Write $ as "$" to please
perl-mode.
* automake.in (required_targets): Add ps and ps-am.
(initialize_per_input): Reset them.
(handle_texinfo_helper): Fill @pss_list, and define the
PSS make variable.
* lib/am/texinfos.am (RECURSIVE_TARGETS): Add ps-recursive.
(ps, ps-am): New targets.
* automake.texi (Auxiliary Programs) <texinfo.tex>: Mention
`make ps' and `make pdf'.
(Texinfo): Document `make ps', `make pdf', and `make dvi'.
(Extending): The `ps' and `pdf' targets support a `-local' version.
* automake.in: Register &lang_lex_target_hook for lex and lexxx.
(lang_lex_target_hook): New function.
* tests/lex3.c: Complete to check that maintainer-clean erases
Lex's output.
Reported by Flavien Astraud. This was lost on 2001-06-23 too.
* automake.in (lang_yacc_target_hook): Add $output to
@maintainer_clean_files. This was lost on 2001-06-23.
* tests/yacc7.test, tests/yacc4.test: Complete to check
that maintainer-clean erases YACC's output files,
respectively with and without `-d'.
Reported by Flavien Astraud.