Akim Demaille [Fri, 23 Feb 2001 15:03:51 +0000 (15:03 +0000)]
* automake.in (&handle_man_pages): Let install-man and
uninstall-man be handled by the dependency tracker.
(&initialize_per_input): Let %dependencies track them.
* mans.am: Add the needed hooks with the proper dependencies.
Akim Demaille [Wed, 21 Feb 2001 08:35:51 +0000 (08:35 +0000)]
* dist-vars.am: Remove, merge into...
* distdir.am: this.
* automake.in (dirname, basename, backname): Move at the top of
the file so that prototypes are checked,
Use them without `&'.
(&handle_dist): Adjust.
Akim Demaille [Wed, 21 Feb 2001 08:35:02 +0000 (08:35 +0000)]
* automake.in (&check_ambiguous_conditional, &read_main_am_file):
Use a uniform naming scheme.
("e_cond_val, &unquote_cond_val): Delete, dead code.
(&read_am_file): Fix conditioned definition of backslash continued
items.
Akim Demaille [Wed, 21 Feb 2001 08:32:03 +0000 (08:32 +0000)]
Change the handling of conditionals: instead of using an ad-hoc
encoding to store a hash in a string, use hashes.
* automake.in (&conditional_dump): New.
(&check_ambiguous_conditional, &variable_defined)
(&variable_conditions_sub, &variable_value_as_list_worker)
(&define_variable, read_am_file, &read_main_am_file): Be sure to
handle `$conditional{$vars}' as a hash instead of a plain string.
Akim Demaille [Wed, 21 Feb 2001 08:31:40 +0000 (08:31 +0000)]
* automake.in (&conditional_true_when): Modernize, simplify.
Warning: `$comp' is now private (my), while it used to be
`inherited' from a `local' elsewhere in the code. AFAICT it was
wrong, but some dirty side effect might show up.
(&conditionals_true_when): New.
(&variable_conditions_sub, &variable_conditions_reduce): Use it.
Akim Demaille [Wed, 21 Feb 2001 08:30:55 +0000 (08:30 +0000)]
* automake.in ($top_builddir): Remove, used in one place.
(&define_standard_variables): Adjust.
Move the definition of triplet variables into...
* header-vars.am: here.
Akim Demaille [Wed, 21 Feb 2001 08:30:39 +0000 (08:30 +0000)]
* automake.in (&initialize_global_constants): Don't define $USAGE.
(&usage): Handle the former content of $USAGE.
Don't pretend autoconf cares about Makefile.in.
Classify the options.
(&handle_tests): Formatting and mying changes.
Akim Demaille [Wed, 21 Feb 2001 08:28:02 +0000 (08:28 +0000)]
* automake.in (&handle_tests_dejagnu): Move the definition of a
default `site.exp' into...
* dejagnu.am (site.exp): here.
Use DOS compliant file names.
Akim Demaille [Wed, 21 Feb 2001 08:26:34 +0000 (08:26 +0000)]
* dist.am: Remove, merge into...
* distdir.am: here. Use the neat sed snippet for banners.
BTW, distcheck is phony.
* automake.in (&handle_dist_worker): Remove, merge into...
(&handle_dist): this.
(&file_contents): Strip leading new lines.
Be sure to end comments with new lines.
Akim Demaille [Wed, 21 Feb 2001 08:20:39 +0000 (08:20 +0000)]
* distdir.am (distdir): Be sure to have permissive rights on its
contents.
(dist-all, dist-bzip2, dist-zip, dist-tarZ): New conditional
targets.
And BTW, all these guys are phony.
* automake.in (&handle_dist_worker): As its name doesn't indicate,
output distributions.
(&handle_dist): As its name doesn't indicate, don't.
(&initialize_global_constants): Don't define variables which
content is now handled by distdir.am.
But register `dist-all' as a factored target.
(&handle_factored_dependencies): Don't output empty targets.
Tom Tromey [Mon, 19 Feb 2001 00:12:15 +0000 (00:12 +0000)]
* m4/strip.m4 (AM_PROG_INSTALL_STRIP): Don't call AM_PROG_STRIP.
Set INSTALL_STRIP_PROGRAM_ENV to `$(STRIP)', not `$STRIP'.
(AM_PROG_STRIP): Commented out.
Tom Tromey [Sun, 18 Feb 2001 00:35:18 +0000 (00:35 +0000)]
2001-02-17 Tom Tromey <tromey@redhat.com>
* automake.in (handle_merge_targets): Use double quotes around
setting of INSTALL_STRIP_PROGRAM.
* m4/strip.m4 (AM_PROG_INSTALL_STRIP): Set INSTALL_STRIP_PROGRAM
to absolute path at runtime.
(AM_PROG_STRIP): Don't explicitly test $STRIP.
* m4/strip.m4: New file.
* m4/Makefile.am (m4data_DATA): Add strip.m4.
* m4/init.m4: Call AM_PROG_INSTALL_STRIP.
* m4/missing.m4 (AM_AUX_DIR_EXPAND): New function.
(AM_MISSING_INSTALL_SH, AM_MISSING_HAS_RUN): Use $am_aux_dir instead
of $ac_aux_dir, and require AM_AUX_DIR_EXPAND.
* m4/depend.m4 (AM_DEP_TRACK): Likewise.
* automake.in (handle_merge_targets): In the install-strip rule,
set INSTALL_PROGRAM to INSTALL_STRIP_PROGRAM, and INSTALL_PROGRAM_ENV
to INSTALL_STRIP_PROGRAM_ENV; don't use INSTALL_STRIP_FLAG.
* progs.am (install-@DIR@PROGRAMS): Adapt to use INSTALL_PROGRAM_ENV,
don't use INSTALL_STRIP_FLAG any longer.
* header-vars.am (INSTALL_STRIP_FLAG): Remove.
(INSTALL_PROGRAM_ENV): New variable.
* automake.in (unquote_m4_arg): New function.
(scan_one_configure_file): Call unquote_m4_arg on
AM_CONFIG_HEADER argument, so that AM_CONFIG_HEADER([foobar.h])
works.
Tom Tromey [Fri, 16 Feb 2001 06:16:27 +0000 (06:16 +0000)]
* tests/subobj3.test: Exit with status 77 if gcc not found.
* tests/pr9.test: Exit with status 77 if gzip not found.
* tests/pr87.test: Exit with status 77 if gcc not found.
* tests/pr19.test: Exit with status 77 if gzip or gcc not found.
* tests/install2.test: Exit with status 77 if gzip not found.
* tests/exsource.test: Exit with status 77 if GNU make not found.
* tests/ansi3.test: Exit with status 77 if gcc not found.
* tests/target-cflags.test: Require GNU make. Exit with status 77
if gcc or make not found. Fixes PR automake/121.
Tom Tromey [Mon, 12 Feb 2001 16:49:52 +0000 (16:49 +0000)]
2001-02-12 Tom Tromey <tromey@redhat.com>
Fix for subdirbuiltsources.test:
* automake.in (initialize_per_input): [all_target] Initialize to
empty string.
(handle_merge_targets): Use all-redirect target to handle built
sources.
(do_one_merge_target): Don't generate all-redirect rule.
2001-02-11 Peter Muir <iyhi@yahoo.com>
* tests/subdirbuiltsources.test: New file.
* tests/Makefile.am (TESTS): Added new file.
Tom Tromey [Sat, 10 Feb 2001 19:04:24 +0000 (19:04 +0000)]
2001-02-10 Lars J. Aas <larsa@sim.no>
* automake.in ($MACRO_PATTERN): Include '@' in name regex.
(&canonicalize): New. Includes '@' in canonical range.
(&check_canonical_spelling, &handle_programs, &handle_libraries,
&handle_ltlibraries, &handle_texinfo): Use &canonicalize.
Akim Demaille [Fri, 9 Feb 2001 03:38:15 +0000 (03:38 +0000)]
* automake.in (&transform): Use `my', not `local'.
(&transform_cond): New.
(&get_object_extension, &handle_texinfo, &handle_tags)
(&handle_dist_worker, &handle_dist, &add_depend2, &handle_clean)
(&handle_tests_dejagnu): Use it.
* texinfos.am, lisp.am, header.am, dist.am, distdir.am, depend2.am
* dejagnu.am, data.am, clean.am: Adjust to the new syntax.
Akim Demaille [Fri, 9 Feb 2001 02:48:24 +0000 (02:48 +0000)]
* automake.in: Various formatting changes, and modernization of
Perl constructs.
(&backname): New.
(&handle_configure, define_standard_variables): Use it.
Tom Tromey [Thu, 8 Feb 2001 05:48:09 +0000 (05:48 +0000)]
* automake.in (handle_dependencies): Use _am_include, not
AMINCLUDE.
* tests/exsource.test: Use _am_include, not AMINCLUDE.
* m4/make.m4 (AM_MAKE_INCLUDE): Use _am_include, not AMINCLUDE.
Akim Demaille [Tue, 6 Feb 2001 10:17:56 +0000 (10:17 +0000)]
* subdirs.am: This file is the exception: clean recursive targets
are called by the clean targets, not the clean-am targets.
Otherwise we have a circular dependency: clean -> clean-am ->
clean-recursive -> clean.
* automake.in (handle_clean): Bind `-local' targets to `-am'
targets, not top targets.
Don't declare -recursive dependencies of the clean targets:
`subdirs.am' did it. Less hard coded knowledge, transfered
into...
* clean.am: here.
Akim Demaille [Tue, 6 Feb 2001 09:09:36 +0000 (09:09 +0000)]
Monstro unsplitable patch.
The aim is to remove hard coded knowledge about clean targets from
automake.in, leaving them in the *.am files.
In addition to the mechanic needed to factor some dependencies, it
appears some rules (most notably distclean and maintainer-clean)
need factored actions. So first, be ready to catch factored
rules.
* automake.in (&file_contents): For the time being, use an extended
$RULE_PATTERN which is able to match any kind of rules, with or
without dependency, with or without actions.
Handle all the rules uniformly, storing in %actions the factored
actions.
(&flatten, &target_cmp): New.
(&handle_factored_dependencies): Output the %actions.
No longer special case `clean'.
Output the rules in alphabetical order, but keeping `.PHONY' last.
Now we must not use &push_phony_cleaners, which is doing all sort
of magic to push a bit of everything in all the clean targets.
The biggest problem being that, making a Cartesian product, it
requires many useless targets. The `*.am' file know better.
But first, register the new factored rules.
* automake.in (&initialize_per_input): Include clean, mostlyclean,
maintainer-clean, distclean and their `*-am' counterpart in
%dependencies.
Initialize %actions.
(get_object_extension, handle_texinfo, handle_tags, handle_multilib)
handle_dependencies, handle_subdirs, handle_configure, handle_clean)
(handle_emacs_lisp, handle_python): Don't play with
&push_phony_cleaners nor &depend and `clean'.
* texinfos.am, texi-vers.am, tags-clean.am:
* subdirs.am,python-clean.am, multilib.am, lisp-clean.am:
* libtool.am, kr-extra.am, depend.am, compile.am, clean.am:
* clean-kr.am, clean-hdr.am: Do it.
Whenever a target is empty, just remove it, it will no longer be
called.
There is still some magic about clean to hard code. But really,
that's the end of &do_one_clean_target.
* automake.in (&do_one_clean_target): Kaboom out.
(&handle_clean): Rewrite the magic code.
(&am_install_var): No longer use &push_phony_cleaners, nor depend
on `clean'.
(&push_phony_cleaners): Kaboom too.
Akim Demaille [Mon, 5 Feb 2001 09:09:16 +0000 (09:09 +0000)]
* Makefile.am (perl4-check): Remove, we now require Perl 5.
(maintainer-check): Don't be silent when you find a problem, and
actually, even specify the locations.
Also check that @_ is assigned to arrays.
Akim Demaille [Sun, 4 Feb 2001 14:43:00 +0000 (14:43 +0000)]
* automake.in (@clean): Remove, replaced by...
($dependencies{'clean'}): this.
Use `&depend' instead of push'ing into @clean.
(handle_factored_dependencies): For the time being, skip 'clean'.
(do_one_clean_target): Don't ask for argument 1 and 4 as they are
always `clean', and `@clean'.
Akim Demaille [Sun, 4 Feb 2001 14:42:36 +0000 (14:42 +0000)]
* automake.in (%dependencies): Don't be initialize globally for
all the files, but in...
(&initialize_per_input): here.
(&depend): New.
(@phony): Replace all occurrences with the corresponding &depend
invocation.