Tom Tromey [Sun, 30 Dec 2001 20:07:35 +0000 (20:07 +0000)]
For PR automake/220:
* tests/Makefile.am (TESTS): Added pr220.test.
* tests/pr220.test: New file.
* m4/cond.m4 (AM_CONDITIONAL): Cause config.status to fail if
conditional was never run.
Tom Tromey [Sun, 30 Dec 2001 00:19:41 +0000 (00:19 +0000)]
For PR automake/266:
* tests/Makefile.am (TESTS): Added pr266.test.
* tests/pr266.test: New file.
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Handle
non-standard name for makefile.
Tom Tromey [Sat, 29 Dec 2001 23:58:06 +0000 (23:58 +0000)]
For PR automake/279:
* automake.in (conditional_ambiguous_p): New sub.
(handle_lib_objects_cond): Use it.
(check_ambiguous_conditional): Use it.
* tests/Makefile.am (TESTS): Added pr279.test, pr279-2.test.
* tests/pr279.test: New file.
* tests/pr279-2.test: New file.
* m4/python.m4 (AM_PATH_PYTHON): Check all known Python interpreters
in loop until we find one the satisfies the user supplied version.
Add python2 to the list of known interpreters. Don't use
changequote. Cache the calculation of PYTHON_VERSION and
PYTHON_PLATFORM.
(AM_PYTHON_CHECK_VERSION): New function, extracted from
AM_PATH_PYTHON and modernized.
* m4/runlog.m4: New file.
* m4/Makefile.am (m4data_DATA): Add it.
* automake.in (handle_dist): Distribute common files which
do not exist but are target of a Makefile rule.
* automake.texi (Dist): Update.
* test/builtcommon3.test: New file.
* test/Makefile.am (TESTS): Add distcommon3.test.
* automake.in (append_comments): New. Extracted from
read_am_file. Match 'n' with a regexp, don't use substr (the
perlport man page says 'n' is not always one byte wide).
(read_am_file): Use it. Always chomp $_.
(file_contents_internal): Use append_comments.
(macro_define): Don't treat the trailing 'n' with substr, use
a regexp or chomp.
Akim Demaille [Mon, 26 Nov 2001 15:30:33 +0000 (15:30 +0000)]
* automake.in (¯o_define): Use $where when reporting an error,
not the place where the macro was first defined since (i) if this
is the first definition, then obviously it was not defined before,
and (ii) anyway, the error is with the new definition, not the
first.
* automake.in (scan_one_autoconf_file): Parenthesize qw// in
foreach invocation, otherwise Perl5.005_03 complains about a
syntax error. Reported by Yann Droneaud.
* automake.in (SUFFIX_RULE_PATTERN): Add '_(){}$@' to the
set of accepted characters in extensions.
(rule_define): Convert '.o' and '.obj' into '$(OBJEXT)' for
internall use.
* tests/suffix6.test: Ensure that `.o' is handled like `.$(OBJEXT)'.
* automake.in (rule_define): Use $KNOWN_EXTENSIONS_PATTERN
to match suffix rules for known extensions, or call
accept_extensions on suffixe rules for unknown extensions.
(var_SUFFIXES_trigger): New function.
(macro_define): Call var_VAR_trigger when $VAR is updated.
* tests/suffix6.test, tests/suffix7.test: New files.
* tests/Makefile.am (TESTS): Add suffix6.test and suffix7.test.
* automake.in (KNOWN_EXTENSIONS_PATTERN, known_extensions_list):
New variables.
(handle_single_transform_list, lang_yacc_target_hook): Use
KNOWN_EXTENSIONS_PATTERN.
(accept_extension): New function.
(register_language): Call it.
At every place where an "$extension" is used, include the leading
dot in the extension, don't hardcode it when building the filename.
That will make any support for a dot-less extension easier to add.
* automake.in (SUFFIX_RULE_PATTERN): Include extension dots in
backref groups.
("main"): Prepend a '.' to the supported extensions of all
languages (e.g. 'c' becomes '.c').
(handle_languages, handle_single_transform_list,
handle_lib_objects_cond, handle_headers, derive_suffix,
rule_define): Do not add a dot
before extensions, and include dots in matching groups.
* lib/am/depend2.am (.%EXT%.o, .%EXT%.obj, .%EXT%.lo): Rename as ...
(%EXT%.o, %EXT%.obj, %EXT%.lo): ... these.
* lib/am/lex.am (.%EXT%.%DERIVED-EXT%): Rename as ...
(%EXT%%DERIVED-EXT%): ... this.
* lib/am/yacc.am: Likewise.
Akim Demaille [Mon, 12 Nov 2001 08:55:49 +0000 (08:55 +0000)]
* m4/make.m4 (AM_MAKE_INCLUDE): Serial 2.
Use `"#"' and `"""', which
Autoconf mode prefers over `'#'' and `'"''.
* m4/missing.m4 (AM_MISSING_HAS_RUN): Serial 3.
Rely on AC_MSG 2.50's quotation.
* lib/am/distdir.am (distdir): Also look for directory in build
directory first. (See 2001-05-14.)
* tests/Makefile.am (TESTS): Add extra5.test.
* tests/extra5.test: New file.
From Dean Povey.
Fix for distcommon2.test:
* automake.in (automake_needs_to_reprocess_all_files): New
variable.
("main"): Process all Makefiles a second time if
$automake_needs_to_reprocess_all_files is set.
(maybe_push_required_file): Return 1 or 0 whether the file is
pushed or not.
(require_file_internal): Set $automake_needs_to_reprocess_all_files
if an added file can't be pushed.
* test/distcommon2.test: New file.
* test/Makefile.am (TESTS): Add distcommon2.test.
From Pavel Roskin.
Fix for nobase.test:
* lib/am/header-vars.am (install_sh_DATA): New.
* lib/am/data.am (install-%DIR%%PRIMARY%): Declare and use
%DIR%%PRIMARY%_INSTALL, and set it to $(install_sh_DATA) instead
of $(INSTALL_DATA) for nobase_ targets.
* lib/am/lisp.am (install-%DIR%LISP): Likewise.
* lib/am/python.am (install-%DIR%PYTHON): Likewise.
* tests/nobase.test (configure.in): Append AC_OUTPUT.
* tests/Makefile.am (XFAIL_TESTS): Remove nobase.test.
Paul Eggert [Mon, 5 Nov 2001 19:53:59 +0000 (19:53 +0000)]
* lib/am/distdir.am (am__remove_distdir):
New macro. Do not change permission of non-directories.
Change only user permission, as there's no point to changing group
or other permission.
(distdir, dist, dist-bzip2, dist-tarZ, dist-shar, dist-zip, dist-all,
distcheck): Use it.
Paul Eggert [Mon, 5 Nov 2001 19:52:57 +0000 (19:52 +0000)]
(am__remove_distdir):
New macro. Do not change permission of non-directories.
Change only user permission, as there's no point to changing group
or other permission.
(distdir, dist, dist-bzip2, dist-tarZ, dist-shar, dist-zip, dist-all,
distcheck): Use it.
* lib/am/python.am: Cleanup the cleaning section.
* automake.texi (Python): Remove documentation for PYCFILES
and PYOFILES. Update the first paragraphes.
* automake.in (handle_single_transform_list): Pass $nonansi_obj to
derive_suffix. Don't use an hardcoded 'o' for object extensions.
(derive_suffix): Accept $OBJ as a second argument, don't
hardcode 'o'.
* tests/suffix5.test: New test.
* tests/Makefile.am (TESTS): Add suffix5.test.
Reported by Arkadiusz Miskiewicz <misiek@pld.ORG.PL>.
Akim Demaille [Mon, 5 Nov 2001 09:24:01 +0000 (09:24 +0000)]
* automake.in (@common_sometimes, &handle_configure): No longer
use stamp-hin.
* lib/am/remake-hdr.am: Adjust.
* tests/confh.test: There is no stamp.hin.
Akim Demaille [Thu, 1 Nov 2001 17:39:39 +0000 (17:39 +0000)]
* lib/am/lex.am, lib/am/yacc.am: Use the output file name in
`#line' and multiple inclusion guards.
* lib/ylwrap: Remove debugging code.
(input_dir, input_rx): Move where used.
Use the output file name in `#line'.
Akim Demaille [Tue, 30 Oct 2001 16:31:17 +0000 (16:31 +0000)]
* automake.in ($verbose): Remove, inherited from
Automake::General.
(&variable_delete): Rename as...
(¯o_delete): this, for consistency.
(&variable_assert): New.
(&variable_value_as_list, &variable_value_as_list_recursive_worker):
Use it.
Akim Demaille [Sun, 28 Oct 2001 14:01:40 +0000 (14:01 +0000)]
* automake.in (am_primary_prefixes): Now, in accordance with its
comment, return the list of prefixes actually used, not all the
possible prefixes for a primary.
(&handle_libraries, &handle_ltlibraries, &handle_java)
(&am_install_var): Adjust.
* Makefile.am (maintainer-check): Allow `local $_;'.
Akim Demaille [Sun, 28 Oct 2001 14:00:59 +0000 (14:00 +0000)]
* automake.in (&am_primary_prefixes): Now returns a list, not a
hash.
(&handle_libraries, &handle_ltlibraries, &handle_java)
(&am_install_var): Adjust.
Akim Demaille [Sun, 28 Oct 2001 14:00:09 +0000 (14:00 +0000)]
* automake.in (&scan_autoconf_traces): Use eq for equality.
Anchor regexps.
Remove dead comment.
(&initialize_per_input): Don't initialize several times the same
vars.
Akim Demaille [Fri, 26 Oct 2001 10:01:04 +0000 (10:01 +0000)]
* tests/stamph2.test: Strengthen.
* tests/confh2.test, tests/confh3.test: Remove.
These are bad tests: they don't check the effects, but some
internal details in Makefile.
And they are covered by stamph2.test.
Akim Demaille [Fri, 26 Oct 2001 09:59:57 +0000 (09:59 +0000)]
Now that stamp-h's are created by config.status, we don't need to
handle them in Makefile's.
* lib/am/remake-hdr.am (%STAMP%): Just run config.status.
* m4/header.m4 (_AM_STAMP): New.
(_AM_CONFIG_HEADER): Use it.
Akim Demaille [Fri, 26 Oct 2001 09:58:39 +0000 (09:58 +0000)]
* automake.in (@config_fullnames, @config_names): Remove.
(@config_headers): Now contains the actual spec used in
AC_CONFIG_HEADERS.
(&split_config_file_spec): New.
(&handle_tags, &handle_configure, &handle_all, &scan_autoconf_traces)
(&scan_one_autoconf_file): Adjust.
(&scan_one_autoconf_file): Pff, don't think _AM_CONFIG_HEADER is
AM_CONFIG_HEADER.
Akim Demaille [Fri, 26 Oct 2001 09:56:40 +0000 (09:56 +0000)]
* automake.in (&handle_configure): Use the config.status 2.50
invocation syntax for config files and headers.
autoheader needs the name of the file to create, not from what it
must be created, hence CONFIG_HEADER_FULL is $one_name, not
$one_fullname.
* lib/am/configure.am, lib/am/remake-hdr.am: Likewise.
* tests/confsub.test (SUBDIRS): Adjust to the new config.status
invocation.
Strengthen: Use the non-default config.hin source.
Strengthen: Make sure config.h is properly updated when config.hin
is changed.
Akim Demaille [Fri, 26 Oct 2001 09:56:05 +0000 (09:56 +0000)]
* automake.in (&handle_configure): Seeing Automake files in
@other_input_files is a programming error, not merely something to
ignore.
Factor slightly the code.
* lib/am/python.am (install-%DIR%PYTHON, uninstall-%DIR%PYTHON):
Have the basename step optional and use %NDIR% instead of %DIR% in
filenames in order to support 'nobase_'.
* automake.in (handle_languages, handle_single_transform_list,
lang_c_rewrite): Use require_conf_file instead of
require_config_file to require depcomp or compile from
Makefile.am. (This is a part of my patch of 2001-10-15 which got
mistakenly reverted.)
Akim Demaille [Sun, 21 Oct 2001 21:54:01 +0000 (21:54 +0000)]
* automake.in ($ac_output_location): Replace with...
($ac_config_files_location): this.
(&scan_autoconf_traces): We don't need $file and $line, $here is
enough.
(&scan_one_autoconf_file): Use `$in_ac_output' to store the macro
name (AC_OUTPUT or AC_CONFIG_FILES) for error messages.