* automake.in (&variable_dump): If a variable is undefined, say
it.
(&check_ambiguous_conditional): Give finer error messages.
(¯o_define): Check that a `+=' variable is not set with `='.
Check for ambiguous definitions each time you _set_ (even with `+=')
a variable.
(&read_main_am_file): Perform a deep copy of %conditional.
* automake.in (&handle_source_transform): Use
&variable_conditions, don't read $conditional{$var}.
(&variable_conditions_sub): When the call is the top level call,
generate all the permutations of the conditions.
* depend2.am (@AMDEP@%FPFX%DEPMODE): Define it when GENERIC so
that it does not get noticed twice by automake, which now
complains for multiple definitions.
* tests/vartar.test: s/INSTALL/install/g, automake now complains
because we defined INSTALL.
* automake.in (&generate_makefile) Use macro_define to define
SOURCES and OBJECTS.
(&variable_defined): Don't check for $conditional{VAR}{COND} as
this would make perl create $condition{VAR}, which we don't want.
* automake.in (&variable_defined, &define_pretty_variable):
Simplify code which used to handle the cases where not all
variables were in %conditional.
(&define_variable): Use &define_pretty_variable.
(&variable_conditions_sub, &variable_value_as_list_worker)
(&variable_value_as_list, &rule_define): Simplify syntax.
(&read_main_am_file): Dump the guilty predefined variables.
* automake.in (&variable_conditions_sub)
(&variable_value_as_list_worker): Remove dead code which used to
handle the cases where not all variables were in %conditional.
Handle unconditional values of variables as conditioned by
`TRUE'.
* automake.in (%contents): Remove.
(&generate_makefile, &handle_ltlibraries, ¯o_define)
(&read_am_file, &variable_defined, &variable_conditions_sub)
(&variable_value, &variable_value_as_list_worker)
(&variable_value_as_list, &define_pretty_variable)
(&read_main_am_file): Use
$conditional, not %contents.
(&variable_conditions_permutations): Don't return TRUE and FALSE.
(&variable_conditionally_defined): New.
(&handle_dist): Use it.
(&check_ambiguous_conditional): When multiply defined, specify
under which condition.
(¯o_define): Use it.
(&variable_delete): New.
(&read_am_file): Use it.
(&am_install_var): Simplify, as all the variables are in
%conditional now.
Akim Demaille [Fri, 23 Mar 2001 17:54:04 +0000 (17:54 +0000)]
* automake.in (&variable_conditionally_defined): Rename as...
(&check_variable_unconditionally_defined): this.
(&variable_dump): Fix the output.
(&variable_defined, ¯o_define): Since conditions are
canonicalized, don't use a loop to look for a condition: read the
hash.
(¯o_define, &rule_define, &read_am_file, &file_contents):
Rename $cond_string as $cond.
* distdir.am (PACKAGE, VERSION): Remove; since they are already
discovered via AC_SUBST, they now trigger a `defined twice' error.
Akim Demaille [Fri, 23 Mar 2001 17:06:39 +0000 (17:06 +0000)]
* automake.in (¯o_define): Don't lose the location if we
redefine a variable.
Don't push all the variables in @var_list, let...
(&read_am_file, &file_contents): ... do it.
(&define_pretty_variable): Use macro_define.
(&am_install_var): Delete the value of variables being redefined
to pacify ¯o_define which checks that variables are not
doubly defined.
Akim Demaille [Fri, 23 Mar 2001 16:58:43 +0000 (16:58 +0000)]
* automake.in (&file_contents): Maintain $cond_string sync with
@cond_stack.
Output rules only if not under `FALSE'.
Define variables under $cond_string.
* scripts.am: For the time being if/endif does not work properly
with macros.
Akim Demaille [Fri, 23 Mar 2001 16:54:42 +0000 (16:54 +0000)]
* automake.in (IF_PATTERN): Unobfuscate the parens.
(ENDIF_PATTERN): Allow a condition to be specified.
(&file_contents): Use a @cond_stack.
(&transform): At least for an easy transition, also transform
%?FOO% and %!FOO%, as suggested by Lars.
* scripts.am: First test bed for static if/endif use.
Akim Demaille [Fri, 23 Mar 2001 16:45:53 +0000 (16:45 +0000)]
* automake.in (¯o_define): Don't rely on $1.
Initialize the variable.
Set its Automakism only if not defined or if given to the user.
When concatenating values, insert a separator only if the value
was not empty.
(&read_am_file): When dumping the @var_list, skip Automake
variables.
(&file_contents): Use macro_define.
Akim Demaille [Fri, 23 Mar 2001 16:27:18 +0000 (16:27 +0000)]
* automake.in (%am_var_defs): Replace with...
(%var_is_am): this.
(&handle_installdirs, &variable_value_as_list_worker, &read_am_file)
(&file_contents, am_primary_&prefixes): Adjust.
(&variable_defined, &define_variable): The actual semantics is
`user defined'.
(&read_main_am_file): Assert the var is user defined when
outputting @var_list.
Akim Demaille [Fri, 23 Mar 2001 16:23:51 +0000 (16:23 +0000)]
* automake.in (read_am_file): TRUE and FALSE are predefined
conditionals.
(&by_condition): Adjust.
(&conditional_string): Recognize `TRUE' and `FALSE'.
(&make_condition): Use it.
* m4/cond.m4: Reject TRUE and FALSE as conditionals.
* automake.texi (Conditionals): Adjust.
* tests/cond9.test: s/FALSE/WRONG/.
Pavel Roskin [Fri, 9 Mar 2001 22:24:20 +0000 (22:24 +0000)]
* Makefile.am (maintainer-check): Scan all *.am files and tests
for invocations of `rm' without `-f'.
* tests/mclean.test: Adjusted to prevent triggering the above
test.
Pavel Roskin [Fri, 9 Mar 2001 22:08:46 +0000 (22:08 +0000)]
* Makefile.am (maintainer-check): Scan all *.am files and tests
for invocations of `rm' without `-f'.
* tests/mclean.test: Strengthen to prevent triggering the above
test.
Akim Demaille [Fri, 9 Mar 2001 16:17:04 +0000 (16:17 +0000)]
* automake.in (&conditional_string): Produce a unique string
characterizing a condition stack.
(&conditional_same): Remove, comparing two strings is now enough.
(&variable_defined): Adjust.
(&read_am_file): Use conditional_string.
Akim Demaille [Thu, 8 Mar 2001 13:23:15 +0000 (13:23 +0000)]
* automake.in: Use -w.
Normalize all use of `$lang . '-foo'' into `"$lang-foo"'.
(&parse_arguments): Support --Werror and --Wno-error as a
temporary hack until --warning/-W is properly implemented.
(&handle_single_transform_list): Prototype.
Be sure to define $directory.
Use `exists' instead of testing the value of a maybe undefined
hash value.
(&add_depend2, &handle_configure, &handle_footer, &file_contents)
(&handle_factored_dependencies): Use defined values.
(&scan_one_autoconf_file): Save $_.
* tests/lex2.test, tests/sinclude.test, tests/suffix3.test:
Run automake with --Wno-error.
Akim Demaille [Wed, 7 Mar 2001 18:39:09 +0000 (18:39 +0000)]
* automake.in (&handle_merge_targets): Ventilate its non `all'
related content into...
(&generate_makefile): here.
(&handle_merge_targets): Rename as...
(&handle_all): this.
Remove a useless `if': `@all' is obviously not empty, since it
contains at least the `basename ($makefile)' which has just been
unshifted.
Pavel Roskin [Tue, 6 Mar 2001 00:48:20 +0000 (00:48 +0000)]
* tests/copy.test: Never use `rm' without `-f' - it may ask
questions, notably for read-only files during `make distcheck'.
* tests/insh.test: Likewise.
* tests/installsh.test: Likewise.
* tests/symlink.test: Likewise.
* tests/symlink2.test: Likewise.
* tests/symlink3.test: Likewise.
Akim Demaille [Mon, 5 Mar 2001 19:29:15 +0000 (19:29 +0000)]
* automake.in (&handle_options): Change the RE so that the third
part of the versions always exist.
(&file_contents): Don't pass uninitialized values to &transform.
Akim Demaille [Mon, 5 Mar 2001 18:56:44 +0000 (18:56 +0000)]
Always use hashes with &file_contents.
* automake.in (&handle_texinfo): texibuild.am does not need
TEXINFODIR.
texinfos.am wants only TEXICLEANS.
(&handle_dist, &add_depend2, &handle_clean): Replace $xform with
%transform.
* texinfos.am: Adjust.
Akim Demaille [Mon, 5 Mar 2001 15:02:58 +0000 (15:02 +0000)]
If OBJEXT and EXEEXT are not set, provide a default value, and use
them unconditionally.
* automake.in (&generate_makefile): Provide default values for
EXEEXT and OBJEXT.
(&get_object_extension, &finish_languages)
(&handle_single_transform_list, &handle_programs, &add_depend2)
(&check_cygnus, &lang_c_finish, am_install_var): Don't bother with
them, they are defined.
* compile.am, depend2.am, program.am, progs.am: Likewise.
* remake-hdr.am: Fix a typo.
* tests/cxxo.test, tests/fo.test, tests/implicit.test,
* tests/interp.test, tests/subobj.test, tests/subobj2.test,
* tests/suffix2.test: Adjust.
Akim Demaille [Mon, 5 Mar 2001 14:45:36 +0000 (14:45 +0000)]
Make the installation/uninstallation of Info pages follow the
regular am/recursive scheme.
* automake.in (%required_targets, %dependencies): Add
install-info.
(%dependencies): Add install-info, install-info-am, and
unstall-info.
(&handle_subdirs): Don't transform INSTALLINFO, which mapping was
reversed BTW. Does anybody use the option `no-installinfo'?
(&handle_merge_targets): Let the handling of info related targets
to...
(&handle_factored_dependencies): this.
* subdirs.am: Use ?INSTALL-INFO?.
* texinfos.am: Define the install-info, uninstall-info and
uninstall-info-am targets.
Akim Demaille [Mon, 5 Mar 2001 14:38:52 +0000 (14:38 +0000)]
* automake.in (&pretty_print_internal): Don't output useless
spaces.
(define_pretty_variable): Don't issue the space after the `=' sign
to avoid trailing spaces in Makefile.ins.
Akim Demaille [Mon, 5 Mar 2001 14:33:37 +0000 (14:33 +0000)]
* automake.in ($am_relative_dir): Global.
(&initialize_per_input): Init it.
(%make_list, @make_input_list): My them from
(&scan_autoconf_files): here.
(&require_file_internal): Mying changes.
Akim Demaille [Mon, 5 Mar 2001 14:30:28 +0000 (14:30 +0000)]
* automake.in (%am_vars, @var_list, %def_type): Globals.
(&initialize_per_input): Initialize them.
(&read_main_am_file): Don't local them.
(&get_object_extension): $objext is private.
(&handle_single_transform_list): $lang is.
(&handle_ltlibraries): $libname_rx is.
(&scan_autoconf_config_files): How about actually paying attention
to your arguments, instead of working on $_? (this is no Perl
variable, it's a Perl variable followed by a question mark).
(&file_contents): $contents and $separator are private.
(&am_install_var): Declare @condvals, not $condvals.
(%make_dirs): My.
Akim Demaille [Mon, 5 Mar 2001 13:21:33 +0000 (13:21 +0000)]
Let's make it run ten times faster...
* automake.in (&transform): Be sure to remove the `n' with ?FOO?
transformations.
(&file_contents): Let `$command' remove the Automake commands, and
normalize the series of `n'.
Slurp the file and apply $command in a single step.
No longer apply the `@MAINTAINER_MODE_TRUE@' transformation which
is already normalized to be handled by &transform.
Tom Tromey [Mon, 5 Mar 2001 07:49:42 +0000 (07:49 +0000)]
* automake.in (register_language): Add entry for `-pure'.
Added `pure=yes' entries for cxx, objc, f77, ppf77, ratfor, java.
(finish_languages): Use `-pure' field of language map.
Tom Tromey [Sun, 4 Mar 2001 21:05:09 +0000 (21:05 +0000)]
* tests/yaccvpath.test: No need to remove dummy files.
* tests/subobj3.test: No need to remove dummy files.
* tests/pr9.test: No need to remove dummy files.
* tests/pr87.test: No need to remove dummy files.
* tests/pr19.test: No need to remove dummy files.
* tests/install2.test: No need to remove dummy files.
* tests/defs: Actually copy in install-sh, mkinstalldirs, missing,
and depcomp.
Pavel Roskin [Sat, 3 Mar 2001 07:13:04 +0000 (07:13 +0000)]
* tests/yaccvpath.test: Add a delay to make parse.c really out
of date. Detect the problem earlier, after `make distdir'. Drop
dependency on flex. Always use the `-y' flag for bison. Comment
changes.
* tests/Makefile.am: Add yaccvpath.test to XFAIL_TESTS.
Akim Demaille [Wed, 28 Feb 2001 09:53:10 +0000 (09:53 +0000)]
* automake.in (&add_depend2): Transform `GENERIC'.
Get rid of the ad hoc transformation of `@EXT@.o:' which in
addition was broken by the `@ -> %' patch.
* depend2.am: Adjust to use ?GENERIC?.
Akim Demaille [Tue, 27 Feb 2001 09:12:41 +0000 (09:12 +0000)]
Distinguish automake substitutions from config.status
substitutions.
* automake.in (&add_depend2): Transform AMDEP.
(&handle_clean): Transform MCFILES and MFILES.
(&file_contents): Transform MAINTAINER_MODE.
(&transform, &am_install_var): Use `%', not `@'.
Adjust all the *.am files.
* clean.am: Use ?MFILES? instead of ad hoc MAINTAINERCLEAN.
* depend2.am: Display the double dependency on both ?AMDEP? and
@AMDEP@.