* 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.
Jim Meyering [Fri, 17 Jan 2003 14:50:42 +0000 (14:50 +0000)]
Accept --help and --version, and lots of syntactic clean-up.
Use consistent indentation, two spaces per level.
(scriptversion): New variable.
Change initializations like `variable=""' to `variable='.
(usage): New variable.
Use `test', not `['.
Use `test -z "$var"', not `[ x"$var" = x ]'.
Use `test -n "$var"', not `[ x"$var" != x ]'.
Alphabetize case entries.
Accept --help and --version options.
Remove unnecessary `else :' clauses.
Add a `Local variables' eval block to help emacs users update
the time-stamp variable added above.
Mostly from Karl Berry.
* m4/python.m4 (AM_PATH_PYTHON): Query distutils for `pythondir'
or `pyexecdir', for the sake of 64-bit distributions that usually
use lib64/ instead of lib/. Fall back to the default directory
if it doesn't work.
Suggested by Gwenole Beauchesne.
For PR automake/382:
* automake.texi (Yacc and Lex): Document `AM_YFLAGS = -d'.
Explain BUILT_SOURCES is usually needed in this case.
Reported by William S Fulton.
Rename some files for the sake of 8+3 file systems.
* tests/aclocali.test: Rename to tests/aclocal.test.
* tests/aclocali1.test: Rename to tests/aclocal2.test.
* tests/aclocalii.test: Rename to tests/aclocal3.test.
* tests/acoutput.test: Rename to tests/acoutpt.test.
* tests/acoutput2.test: Rename to tests/acoutpt2.test.
* tests/acouttbs.test: Rename to tests/acoutbs.test.
* tests/acouttbs2.test: Rename to tests/acoutbs2.test.
* tests/autoheader.test: Rename to tests/autohdr.test.
* tests/autoheader2.test: Rename to tests/autohdr2.test.
* tests/condincl.test: Rename to tests/condinc.test.
* tests/condincl2.test: Rename to tests/condinc2.test.
* tests/distcommon.test: Rename to tests/distcom.test.
* tests/distcommon2.test: Rename to tests/distcom2.test.
* tests/distcommon3.test: Rename to tests/distcom3.test.
* tests/installsh.test: Rename to tests/instsh.test.
* tests/installsh2.test: Rename to tests/instsh2.test.
* tests/instdata.test: Rename to tests/instdat.test.
* tests/instdata2.test: Rename to tests/instdat2.test.
* tests/libobj12b.test: Rename to tests/libobj13.test.
* tests/link_f_c.test: Rename to tests/link_fc.test.
* tests/link_f_c_cxx.test: Rename to tests/link_fccxx.test.
* tests/link_f_cxx.test: Rename to tests/link_fcxx.test.
* tests/nodefine.test: Rename to tests/nodef.test.
* tests/nodefine2.test: Rename to tests/nodef2.test.
* tests/required.test: Rename to tests/reqd.test.
* tests/required2.test: Rename to tests/reqd2.test.
* tests/sourcesub.test: Rename to tests/srcsub.test.
* tests/sourcesub2.test: Rename to tests/srcsub2.test.
* tests/specflags.test: Rename to tests/specflg.test.
* tests/specflags2.test: Rename to tests/specflg2.test.
* tests/specflags3.test: Rename to tests/specflg3.test.
* tests/specflags6.test: Rename to tests/specflg6.test.
* tests/specflags7.test: Rename to tests/specflg7.test.
* tests/specflags8.test: Rename to tests/specflg8.test.
* tests/specflags9.test: Rename to tests/specflg9.test.
* tests/subdircond.test: Rename to tests/subcond.test.
* tests/subdircond2.test: Rename to tests/subcond2.test.
* tests/subdircond3.test: Rename to tests/subcond3.test.
* tests/texinfo.test: Rename to tests/txinfo.test.
* tests/texinfo2.test: Rename to tests/txinfo2.test.
* tests/texinfo3.test: Rename to tests/txinfo3.test.
* tests/texinfo4.test: Rename to tests/txinfo4.test.
* tests/texinfo5.test: Rename to tests/txinfo5.test.
* tests/texinfo6.test: Rename to tests/txinfo6.test.
* tests/texinfo7.test: Rename to tests/txinfo7.test.
* tests/texinfo8.test: Rename to tests/txinfo8.test.
* tests/texinfo9.test: Rename to tests/txinfo9.test.
* tests/texinfo10.test: Rename to tests/txinfo10.test.
* tests/texinfo13.test: Rename to tests/txinfo13.test.
* tests/texinfo16.test: Rename to tests/txinfo16.test.
* tests/texinfo17.test: Rename to tests/txinfo17.test.
* tests/texinfo18.test: Rename to tests/txinfo18.test.
* tests/Makefile.am (TESTS): Adjust.
* ChangeLog.1996: Rename to ChangeLog.96.
* ChangeLog.1998: Rename to ChangeLog.98.
* ChangeLog.2000: Rename to ChangeLog.00.
* ChangeLog.2001: Rename to ChangeLog.01.
* Makefile.am (EXTRA_DIST): Adjust.
Reported by Richard Dawe.
* lib/am/distdir.am (distcheck): '=' is not valid in DOS filenames.
Use '_build' and '_inst' instead of '=build' and '=inst'.
* tests/man2.test: Reflect change automake: check for files in
'_build' and '_inst' directories instead of '=build' and '=inst'.
* lib/am/distdir.am (distcheck): '=' is not valid in DOS filenames.
Use '_build' and '_inst' instead of '=build' and '=inst'.
* tests/man2.test: Reflect change automake: check for files in
'_build' and '_inst' directories instead of '=build' and '=inst'.
Use `_dirstamp' when the file-system doesn't support `.dirstamp'.
* m4/lead-dot.m4: New file.
* m4/Makefile.am (dist_m4data_DATA): Add lead-dot.m4
* m4/init.m4 (AM_INIT_AUTOMAKE): Require AM_SET_LEADING_DOT.:
* m4/depend.m4 (AM_SET_DEPDIR): Require AM_SET_LEADING_DOT. Define
DEPDIR using am__leading_dot.
* automake.in (require_build_directory): Define am__dirstamp, a new
variable for the dirstamp basename, based on am__leading_dot.
* tests/subobj6.test: Move all `test -f' into Makefiles, so we can
use $(am__dirstamp).
Reported by Richard Dawe.
* tests/gnits2.test, tests/pr300-prog.test, tests/transform.test:
Move all `test -f' into Makefiles, so we can honor $(EXEEXT) when
testing for programs.
Reported by Richard Dawe.
* Makefile.am (maintainer-check): Suggest using $sleep instead of
sleep 2.
* tests/defs.in (sleep): New variable.
* tests/asm.test, tests/confsub.test, tests/lisp3.test,
tests/texinfo16.test, tests/warnopts.test, tests/yaccvpath.test:
Use $sleep instead of sleep 2, to work around timestamp
inconsistencies in Windows.
Reported by Richard Dawe.
* Makefile.am (maintainer-check): Do not require SHELL=/bin/sh
after $MAKE -e.
* tests/ansi3.test, tests/ansi5.test, tests/cond22.test,
tests/man2.test, tests/subobj3.test, tests/suffix8.test,
tests/suffix11.test: Do not set SHELL=/bin/sh after $MAKE -e.
$SHELL is overridden by tests/defs, so it won't hurt even
if $MAKE -e uses the $SHELL envvar.
* tests/ansi.test, tests/insh2.test, tests/texinfo.test,
tests/texinfo8.test: Use SHELL=$SHELL, not SHELL=/bin/sh.
Reported by Richard Dawe.
Build elisp files all at once instead of one by one.
* automake.in (handle_emacs_lisp): Define am__ELFILES. Add
elc-stamp to all's dependencies.
* lib/am/lisp.am (elc-stamp): New rule, build all *.elc files.
(.el.elc): Rewrite to call elc-stamp if $@ doesn't exist.
(clean-lisp): Clean elc-stamp.
* lib/elisp-comp: Reindent. Erase the temporatry directory
from a trap. Propagate Emacs's exit status.
* tests/lisp3.test: New file.
* tests/Makefile.am (TESTS): Add lisp3.test.
Reported by Ryan T. Sammartino.
* tests/defs.in: Substitute aclocaldir instead of running
the installed aclocal. Otherwise Libtool and Gettext
tests get skipped when aclocal doesn't preexist.
Reported by Imacat.
* tests/listval.test, tests/suffix2.test: Remove pointless -I
argument to aclocal.
* lib/Automake/ChannelDefs.pm: New file.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add ChannelDefs.pm.
* automake.in: Move all "register_channel" calls to ChannelDefs.pm.
(prog_error, error, fatal, verb, switch_warning, parse_WARNINGS,
parse_warnings): Move to ChannelDefs.pm.
(usage): Move the warning list to Automake::ChannelDefs::usage
and call it.
(set_strictness): Move channel setings to
Automake::ChannelDefs::set_strictness and call it.
* automake.texi (ANSI): Since Autoconf 2.54, LIBOBJ and LTLIBOBJ
no longer have to be rewritten in order to support deansification.
(Tests): Link to the DejaGnu manual.
(Optional): Comment out FIXME.
(Complete, A Library, LIBOBJS): Use $(LIBOBJ) and $(ALLOCA)
instead of @LIBOBJ@ and @ALLOCA@.
(Sources): Typo.
* lib/am/texinfos.am (install-info-am, uninstall-info-am): Strip
directories from info filenames.
* tests/texinfo13.test: Make sure main.info gets installed
as $(infodir)/main.info.
* automake.in (handle_dist): Do not define %GETTEXT% if the user
is using $seen_gettext_external, this distcheck won't run
`./configure' with a meaningless `--with-included-gettext'.
* tests/gettext.test: Make sure distcheck uses --with-included-gettext.
* tests/gettext2.test: Make sure distcheck does not use
--with-included-gettext.
* m4/ccstdc.m4: Define am_cv_prog_cc_stdc for backward
compatibility and diagnose the use of AM_PROG_CC_STDC.
* automake.texi (Public macros) <AM_PROG_CC_STDC>: Remove
documentation, this macro is no longer supported.
Reported by Kevin Ryde.
* automake.in (handle_languages): Test $objdir, not $srcdir, to
decides whether a _.c file is in a subdirectory and has to be
cleaned separately.
Reported by Kevin Ride.
* automake.texi (Options): Some English nits from Eric Siegerman.
(Sources): Rewrite the introduction and move the example to ...
(Built sources example): ... this separate node.
* tests/depcomp2.test: Pass CC='gcc' as an argument to ./configure
not in the environment. Otherwise the test will fail when
run with ksh and VERBOSE=x.
Reported by Paul Jarc.
* automake.in (macro_define): Do not strip escaped new lines
in Automake's +='ed variables. We don't know whether it will
be pretty printed or not at this point.
(variable_pretty_output): Do this here.
* tests/pluseq10.test: New file.
* tests/Makefile.am (TESTS): Add pluseq10.test.
Reported by Ralf Corsepius.
* automake.in (macro_define): Do not strip escaped new lines
in Automake's +='ed variables. We don't know whether it will
be pretty printed or not at this point.
(variable_pretty_output): Do this here.
* tests/pluseq10.test: New file.
* tests/Makefile.am (TESTS): Add pluseq10.test.
Reported by Ralf Corsepius.
For PR automake/379:
* automake.in (read_am_file): Do not complain about backslashes
before blank lines when the backslash is in a comment.
* tests/Makefile.am (TESTS): Add comment8.test.
* tests/comment8.test: New file.
* automake.texi (Options): Programs listed in
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT should have $(EXEEXT) appended.
* tests/gnits3.test (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT):
Append $(EXEEXT).
Reported by Charles Wilson.
* automake.in (lang_c_finish): Do not fill de_ansi_files
with subdirectory informations for %libsources files.
This revers part of a change from 2002-01-13.
* tests/ansi10.test: New file.
* tests/Makefile.am (TESTS): Add ansi10.test.
* configure.in: Do not use missing while checking for Autoconf's
version, otherwise we won't notice that Autoconf isn't installed.
Augment the error message with a few questions to help users.
* tests/gnits2.test, tests/gnits3.test: Move the greps inside the
Makefile, so we can honor $(EXEEXT). Otherwise these tests
fail under Cygwin.
Reported by Charles Wilson.
For PR automake/375 (Debian Bug #168671):
* automake.in (scan_texinfo_file): Erase all known index files, no
matter whether they are used at the top-level or not, because we
can never know if they are used in included files. The remaining
macros we recognize at the top-level of a Texi document are
@defindex, @defcodeindex, @synindex, and @syncodeindex.
* tests/texinfo18.test: New file.
* tests/Makefile.am (TESTS): Add texinfo18.test.
Reported by Simon Richter.
For PR automake/375 (Debian Bug #168671):
* automake.in (scan_texinfo_file): Erase all known index files, no
matter whether they are used at the top-level or not, because we
can never know if they are used in included files. The remaining
macros we recognize at the top-level of a Texi document are
@defindex, @defcodeindex, @synindex, and @syncodeindex.
* tests/texinfo18.test: New file.
* tests/Makefile.am (TESTS): Add texinfo18.test.
Reported by Simon Richter.
* automake.in (scan_texinfo_file): Honor only the first @setfilename.
* tests/texinfo17.test: New file.
* tests/Makefile.am (TESTS): Add texinfo17.test.
Reported by Karl Berry.
For PR automake/357:
* automake.in (require_file_internal): Don't complain a file is "not
found" when it is a target. Make sure "not found" files are otherwise
reported as error (they were reported as 'note').
* tests/distcommon3.test: Augment to test the above.
* tests/libobj12b.test: Touch ltmain.sh.
* tests/required2.test: Make sure Automake fails because ltmain.sh
has been removed.
Reported by Ronald Landheer.
* tests/texinfo3.test: Make sure we don't output single suffix
inference rules when building `.info'-less Info files (this
confuses Solaris make). Run distcheck to make sure the rules
work.
* automake.in (output_texinfo_build_rules): Define GENERIC_INFO
and SOURCE_INFO.
* lib/am/texibuild.am (%SOURCE_SUFFIX%%DEST_SUFFIX%,
%DEST_PREFIX%%DEST_SUFFIX%): Honor GENERIC_INFO and SOURCE_INFO.
For PR automake/359:
* automake.in (do_check_merge_target): Make `check' dependent on
$(BUILT_SOURCES) if the variable is defined. Run `check-am' or
`check-recursive' in a submake in this case.
* tests/check2.test, tests/check3.test: New files.
* tests/check.test: Make sure `check' depends on `check-am'.
* tests/Makefile.am (TESTS): Add check2.test and check3.test.
For PR automake/371 and PR automake/372:
* automake.in (rule_define): Honor inference rules with multiple
targets, and warn when they are used.
* tests/suffix11.test: New file.
* tests/Makefile.am (TESTS): Add suffix11.test.
Reported by Duncan Gibson.
For PR automake/370:
* automake.in (handle_languages): Don't prepend $U to $myext
since handle_single_transform_list now appends it to $obj.
Process the rule twice to handle deansified files in subdirectories.
Mark _.c files in subdirectories for cleaning.
(handle_single_transform_list): Append $U to $obj_sans_ext if
needed: before this dependencies were output foo.Po instead
of foo$U.Po. Don't output explicit dependencies for renamed
objects or sources in sub-directories: we already output
a full compile rule for them.
(lang_c_finish): Don't always use the full filename in the
.c -> _.c rule. This reverts part of my change of 2002-11-21.
* tests/ansi6.test, tests/ansi7.test: Make sure deansified
files are created in the right directory, and cleaned.
Reported by Kevin Ryde.
* automake.in (handle_single_transform_list): Don't strip the
directory from $full_ansi. This reverts my patch of 2002-10-16.
(lang_c_finish): Use the full filename, including the directory,
in the .c -> _.c rule. These two files must reside in the same
directory.
* tests/ansi6.test: Also try to compile without ansi2knr.
Reported by Andreas Schwab
* lib/Automake/Conditional.pm [SYNOPSIS]: Fix not's description.
* lib/Automake/ConditionalSet.pm (sub_conditions): New function.
(multiply): Also accept an Automake::Conditional as argument.
* automake.in (variable_not_always_defined_in_cond): Simplify,
using only Automake::ConditionalSet methods.
Suggested by Raja R Harinath.
* lib/Automake/ConditionalSet.pm (conds): Use value() to simplify.
(invert): Rewrite as a product-of-sums to sum-of-products converter.
(_multiply, multiply): New functions.
* lib/Automake/Conditional.pm (not): New function.
* lib/Automake/tests/ConditionalSet.pl (test_invert): Update.
* automake.in (condition_negate): Move ...
* lib/Automake/Conditional.pm (negate_condition): ... here.
Suggested by Raja R Harinath.
* lib/Automake/ConditionalSet.pm (_simplify, simplify): New methods.
(true): Cache return value, so _simplify can use it.
* lib/Automake/tests/ConditionalSet.pl (test_simplify): New function.
* automake.in (variable_not_always_defined_in_cond): Return
a simplified ConditionalSet.
(macro_define, require_variables): Adjust.
* tests/Makefile.am (TEST): Add library3.test.
* tests/library3.test: New file.
* tests/pluseq9.test: Adjust.
Thanks to Raja R Harinath.
* lib/Automake/ConditionalSet.pm (_permutations_worker): Ignore TRUE
conditions.
(permutations): Treat empty permutations as TRUE.
(invert): Simplify.
Suggested by Raja R Harinath.
* automake.in (variable_conditions): Split into ...
(variable_conditions, variable_sorted_conditions): ... these
functions, where variable_sorted_conditions has the semantic of
the old variable_condition.
(target_conditions): New function.
(msg_var, handle_lib_objects_cond, check_ambiguous_conditional,
variable_not_always_defined_in_cond, macro_define,
variable_defined, check_variable_defined_unconditionally,
variable_conditions_recursive_sub,
variable_conditions_permutations, variable_value_as_list,
variable_value_as_list_recursive_worker, append_exeext,
am_install_var, require_variables_for_macro): Use variable_conditions.
(msg_target, rule_define): Use target_conditions.
(define_objects_from_sources, macro_define, macro_dump,
variable_pretty_output): Use variable_sorted_conditions.
* automake.in: Don't declare TRUE and FALSE, import them from
Automake::Conditional.
* lib/Automake/Conditional.pm (TRUE, FALSE): New constants.
(new): Simplify using FALSE.
(reduce): New function, moved from ...
* automake.in (variable_conditions_reduce): ... here.
(variable_conditions_recursive_sub, invert_conditions):
Adjust calls to Automake::Conditional::reduce.
* tests/cond12.test: Adjust to use Automake::Conditional.
Jim Meyering [Sun, 10 Nov 2002 14:26:15 +0000 (14:26 +0000)]
Make install-sh work even when names contain spaces or
certain (but not all) shell metachars.
* lib/install-sh: Remove lots of unnecessary quoting.
Add double quotes where necessary.
Write diagnostics to stderr, not stdout.
Normalize spacing in diagnostics: use one space (not two,
and not a TAB) after the leading `install:'.
Remove trailing white space.
Remove unnecessary curly braces.
If removing the destination fails, also try to move it aside.
Use `trap' more portably.
Jim Meyering [Sun, 10 Nov 2002 14:24:00 +0000 (14:24 +0000)]
Make install-sh work even when names contain spaces or
certain (but not all) shell metachars.
* lib/install-sh: Remove lots of unnecessary quoting.
Add double quotes where necessary.
Write diagnostics to stderr, not stdout.
Normalize spacing in diagnostics: use one space (not two,
and not a TAB) after the leading `install:'.
Remove trailing white space.
Remove unnecessary curly braces.
If removing the destination fails, also try to move it aside.
Use `trap' more portably.
* tests/installsh2.test: New file, to test for the above fix.
* tests/Makefile.am (TESTS): Add installsh2.test.
Akim Demaille [Thu, 31 Oct 2002 11:55:25 +0000 (11:55 +0000)]
* tests/location.test (Makefile.am): Strengthen.
* lib/Automake/Channels.pm (_print_message): Be sure to flush
$partial when the message is output.
Thanks to Alexandre Duret-Lutz.
Akim Demaille [Thu, 31 Oct 2002 11:42:22 +0000 (11:42 +0000)]
* automake.in (&read_am_file): Use $last_where to register the
_first_ line of a variable definition as location instead of the
last one.
(&conditional_ambiguous_p): Don't forget to ->string the
Conditionals.
(&rule_define): Likewise.
* tests/location.test: Adjust to exercise this.
* tests/ansi6.test, tests/ansi7.test: Set ac_cv_prog_cc_stdc instead
of am_cv_prog_cc_stdc. This follows Akim's patch of 2002-10-09,
and reveals a bug in my patch of 2002-10-15.
* automake.in (handle_single_transform_list): Strip directory name
from $full_ansi if subdir-objects is not set.
* automake.in (handle_single_transform_list) <full_ansi>: New variable.
Use this to record correct dependencies about deansifiable files which
are using per-program flags or are in a subdirectory.
* tests/ansi9.test: New file.
* tests/Makefile.am (TESTS): Add ansi9.test.
Reported by Paul D. Smith
* aclocal.in (ac_defun_rx, ac_require_rx): If the macro name is
quoted, accept any character but `]'. This makes it possible
to define macros such as `AC_LANG_PREPROC(Fortran 90)'.
(scan_m4_files): Quote $key in the regex. Don't define $expr, it's
not used.
(add_file, scan_file): Adjust to the new definitions of $ac_defun_rx
and $ac_require_rx.
* tests/aclocal2.test: New file.
* tests/Makefile.am (TESTS): Add aclocal2.test.
Reported by Tamara L. Dahlgren and Tom Epperly.