Paul Eggert [Tue, 26 Dec 2006 05:20:51 +0000 (05:20 +0000)]
* lib/install-sh (initialize_posix_glob): New var.
Use it instead of setting posix_glob inline.
(posix_glob): Use '?'/''/: instead of ''/yes/no, for convenience.
(cmpprog, CMPPROG): New vars, since we use cmp rather than the diff
of Akim's patch.
Use LC_ALL before invoking 'ls' when we depend on its output format.
Don't use awk; just use the shell's builtin features.
Clean up $dsttmp -C detects no installation is needed.
* tests/defs.in (is_newest): Renamed from is_younger; the new
name is more accurate. All uses changed.
(old_timestamp): New var.
* tests/instsh2.test: Rewrite to avoid the need for sleeping.
2006-12-25 Akim Demaille <akim@epita.fr>
* lib/install-sh: Implement install-sh -C.
(This patch is the remaining part of the patch proposed in
<http://lists.gnu.org/archive/html/automake-patches/2006-10/msg00077.html>.)
(usage): Document it.
(copy_on_change): New var.
* tests/defs.in (is_younger): New function.
* tests/instsh2.test: Check install-sh -C.
Paul Eggert [Mon, 25 Dec 2006 06:30:27 +0000 (06:30 +0000)]
* lib/install-sh: Fix typo in previous patch for handling --.
Use more-consistent style for ';;'.
Prefer || to if-then-else-:.
* tests/install2.test: Rework to avoid set -e problems.
2006-12-24 Akim Demaille <akim@epita.fr>
Simplify install-sh and its test. This shouldn't change any behavior.
(This patch is a subset of the patch proposed in
<http://lists.gnu.org/archive/html/automake-patches/2006-10/msg00077.html>.)
* lib/install-sh (usage): Use usual GNU style.
(dstarg): Rename as...
(dst_arg): this for consistency.
Simplify quoting of assignments.
Sort them.
Don't use '\' to continue commands: && suffices.
Remove useless "continue" in the argument processing,
and factor the shifts.
* tests/defs.in: Some improvements to make it set -e clean.
Use the traditional ":" trick to protect loops from being empty.
Remove an empty straightforward piece of code prepared to define
additional variables.
Use test instead of [], for consistency.
* tests/install2.test: Use set -e, to simplify code.
Ralf Wildenhues [Sun, 12 Nov 2006 18:02:41 +0000 (18:02 +0000)]
* doc/Makefile.am: Use $(MAKE) $(AM_MAKEFLAGS) for building
amhello, to prevent gmake from invoking make with MAKEFLAGS
it does not understand.
Report by Patrick Welche.
Ralf Wildenhues [Mon, 16 Oct 2006 05:24:17 +0000 (05:24 +0000)]
* lib/am/depend2.am (%SOURCEFLAG%): New substitution, goes
right before the expanded source file name.
* automake.in (%sourceflags): New global: per-extension flag
to denote that the next compiler argument is the source file.
(scan_autoconf_traces): Trace AC_FC_SRCEXT; initialize
%sourceflags accordingly.
(handle_single_transform): Store source file extension in...
(%lang_specific_files): ...this and...
(handle_languages): ...adjust here. Pass flag in SOURCEFLAG.
* doc/automake.texi (Optional): Add AC_FC_SRCEXT.
(Fortran 9x Support): Update.
* tests/fort2.test: New test.
* tests/Makefile.am: Adjust.
* NEWS, THANKS: Update.
Suggested by Steven G. Johnson.
Ralf Wildenhues [Mon, 16 Oct 2006 05:13:01 +0000 (05:13 +0000)]
For PR automake/480.
* automake.in (lang_f77_rewrite, lang_fc_rewrite)
(lang_ppfc_rewrite, lang_ppf77_rewrite, lang_ratfor_rewrite):
return `lang_sub_obj' to support subdir-object mode for the
Fortran dialects.
* tests/fort4.test, tests/fort5.test: New tests.
* tests/Makefile.am: Update.
* NEWS, THANKS: Update.
Report by Davyd Madeley and Shannon L. Brown.
Ralf Wildenhues [Sat, 14 Oct 2006 17:33:27 +0000 (17:33 +0000)]
* automake.in: For preprocessed assembler, add `$(DEFS)
$(DEFAULT_INCLUDES) $(INCLUDES)' to the compile rule.
* doc/automake.texi (Assembly Support): Update.
* NEWS: Update.
Suggested by Thomas Schwinge and Ralf Corsepius.
Ralf Wildenhues [Sat, 14 Oct 2006 17:26:42 +0000 (17:26 +0000)]
For PR automake/492.
* automake.in (output_flag): Set to `-o' for Assembler and
preprocessed Assembler, assuming that all understand `-c -o'.
* THANKS, NEWS: Update.
* tests/subobj10.test: New test.
* tests/Makefile.am: Update.
Report by Thomas Schwinge.
Ralf Wildenhues [Sat, 14 Oct 2006 17:20:35 +0000 (17:20 +0000)]
* automake.in (%_macro_for_cond): New variable.
(cond_stack_if): Use it for better error message about
missing dependency tracking conditionals.
* tests/asm2.test: New test, modeled after asm.test.
* tests/Makefile.am: Adjust.
Report by Ralf Corsepius.
Ralf Wildenhues [Sat, 14 Oct 2006 17:17:22 +0000 (17:17 +0000)]
* doc/automake.texi (Options): `no-dependencies' is similar
to `--ignore-deps', not `--include-deps'.
* m4/as.m4 (AM_PROG_AS): If `no-dependencies', do not invoke
_AM_DEPENDENCIES.
* tests/nodep2.test: New test.
* tests/Makefile.am: Adjust.
Ralf Wildenhues [Sat, 14 Oct 2006 17:12:50 +0000 (17:12 +0000)]
* automake.in (handle_LIBOBJS_or_ALLOCA): If we are in the
LIBOBJDIR, then we should not add a DEPDIR prefix.
* tests/pr401.test: Update test.
* tests/pr401b.test: Likewise.
* tests/pr401c.test: Likewise.
Report by Jim Meyering and Eric Blake.
Ralf Wildenhues [Sat, 14 Oct 2006 17:10:39 +0000 (17:10 +0000)]
* lib/depcomp (gcc3): Put dependency extraction flags before the
`-c' flag, so they appear at the same position as in %FASTDEP%
mode in depend2.am. Fixes build failure for FreeBSD's c89,
which ignores unknown options only after the first non-option.
Bug report against M4 by Nelson H. F. Beebe.
Ralf Wildenhues [Sat, 14 Oct 2006 17:02:12 +0000 (17:02 +0000)]
* automake.in ($seen_gettext_intl): New variable.
(handle_gettext): Consider it.
(scan_autoconf_traces): Add AM_GNU_GETTEXT_INTL_SUBDIR to the list.
Set $seen_gettext_intl when it is seen.
* doc/automake.texi (gettext, Optional): Update.
* tests/gettext3.test: New test.
* tests/Makefile.am: Update.
* lib/install-sh (posix_mkdir): Reject FreeBSD 6.1 mkdir -p -m,
which incorrectly sets the mode of an existing destination
directory. In some cases the unpatched install-sh could do the
equivalent of "chmod 777 /" or "chmod 0 /" on a buggy FreeBSD
system. We hope this is rare in practice, but it's clearly worth
fixing. Problem reported by Alex Unleashed in
<http://lists.gnu.org/archive/html/bug-autoconf/2006-10/msg00012.html>.
Also, don't bother to check for -m bugs unless we're using -m;
suggested by Stepan Kasal.
* lib/install-sh (posix_mkdir): Reject FreeBSD 6.1 mkdir -p -m,
which incorrectly sets the mode of an existing destination
directory. In some cases the unpatched install-sh could do the
equivalent of "chmod 777 /" or "chmod 0 /" on a buggy FreeBSD
system. We hope this is rare in practice, but it's clearly worth
fixing. Problem reported by Alex Unleashed in
<http://lists.gnu.org/archive/html/bug-autoconf/2006-10/msg00012.html>.
Also, don't bother to check for -m bugs unless we're using -m;
suggested by Stepan Kasal.
* lib/am/check.am (check-TESTS): Fix matching of XFAIL_TESTS
against currently running test for the first and last element
of $(TESTS): add spacing so Solaris make does VPATH expansion
on these words, too.
* tests/check6.test: Update.
Paul Eggert [Thu, 31 Aug 2006 04:49:24 +0000 (04:49 +0000)]
* lib/am/depend2.am (?GENERIC?%EXT%.o, ?!GENERIC?%OBJ%): Likewise.
Abbreviate output a bit by not bothering to quote the .Po file
name (the quoting doesn't suffice in general anyway), and by not
bothering to remove junk .Tpo files (as they'll be removed later).
This also lets 'make' run faster by avoiding a subshell.
Ralf Wildenhues [Wed, 30 Aug 2006 20:35:56 +0000 (20:35 +0000)]
* automake.in: Fortran 77 and Fortran should require variables
F77 resp. FC to be defined, and suggest the respective Autoconf
macros otherwise.
* tests/fort1.test: New test.
* tests/Makefile.am: Update.
For PR automake/500:
* automake.in (handle_compile) <$default_includes>: Do not output
the same -I twice. Use @am__isrc@ instead of ` -I$(srcdir)'.
* m4/init.m4: Define am__isrc as ` -I$(srcdir)' only in
non-VPATH builds since we always have `-I.'.
* tests/subpkg.test: Make sure config headers are found in VPATH
and non-VPATH builds.
* lib/am/lex.am, lib/am/yacc.am: Drop the inline rules, always use
ylwrap. Suggested by Akim Demaille long ago, to ease maintenance.
* automake.in (handle_languages): Do not define MORE-THAN-ONE.
(yacc_lex_finish_helper, lang_yacc_finish, lang_lex_finish): Always
require ylwrap.
* doc/automake.texi (Auxiliary Programs, Yacc and Lex): Update the
documentation of ylwrap.
* tests/lex.test, tests/lex4.test, tests/mmodely.test,
tests/yacc.test, tests/yacc2.test, tests/yacc3.test,
tests/yaccpp.test: Adjust.
* Makefile.am (SUBDIRS): Build lib first, for lib/Automake/Config.pm.
* configure.ac (ACLOCAL): Use --acdir=m4 in addition to
-I m4. Running aclocal during the rebuild rules will fail
if the default acdir does not exist.
* doc/automake.texi: Fix some typos in the introduction,
adjust some spacing; spell `GNU Build System' consistently.
(menu): Unify node naming.
(Standard Directory Variables): Clarify that this list is not
exhaustive.
(DESTDIR): Fix example.
* m4/init.m4: Suggest fixing the call to AC_INIT when
AC_PACKAGE_NAME or AC_PACKAGE_VERSION is undefined. This is for
newcomers who call AC_INIT and AM_INIT_AUTOMAKE without arguments.
* tests/init.test: New file.
* tests/Makefile.am (TESTS): Add it.
* doc/automake.texi (Conditionals): Split in two sections, "Usage"
and "Portability", and add a third one, "Limits" to explain how
conditional definitions inside multi-lines definitions can be
handled.
* automake.in (handle_options): Do not assume that
AUTOMAKE_OPTIONS is defined in TRUE, but diagnose conditional
definitions of AUTOMAKE_OPTIONS.
Report from Bas Wijnen.
* tests/amopt.test: New test.
* tests/Makefile.am (TESTS): Add it.
* aclocal.in (install_file): Cannot use /dev/null while diffing
new files, because Tru64's diff do not handle /dev/null. So
create an empty destination file before running diff on a new
file, and erase it afterward. Fall back to using /dev/null only
if we cannot create this file.
Report and initial patch from Ralf Wildenhues.
(unlink_tmp): New function.
* test/acloca18.test: Make sure the empty file has been erased.
* automake.in (handle_LIBOBJS_or_ALLOCA): With subdir-objects,
do not prefix `$(top_builddir)/' aka `./' to nonempty LIBOBJDIR,
to help BSD Make find the files also in a VPATH build.
Also return the same path, possibly prefixed, for correct
depdir computation.
* tests/pr401.test: Update to expose wrong depdir computation.
Rewrite to not use the same file name for library object and
main program.
* tests/pr401b.test, tests/pr401c.test: Likewise.
Paul Eggert [Sun, 9 Jul 2006 16:09:31 +0000 (16:09 +0000)]
* lib/install-sh: Don't incorrectly claim that this implementation
can install only one file at a time.
(doit_exec): New var, for using 'exec' if possible, to save a process.
(test_mode, intermediate_mode): Remove.
(mode): Check for IFS or globbing characters in mode, since they might
cause weird behavior with the other changes below. All later uses
of '"$mode"' changed to '$mode', since the ""s no longer matter.
Use octal modes if the invoker specifies an octal mode, and use
octal umask values if 'umask' outputs octal values; this is more
likely to work with older operating systems since Automake uses
octal modes, and also works around a bug with HP-UX 11.23
'mkdir -p -m u=rwx,g=rx,o=rx,u+wx' reported by Ralf Wildenhues in
<http://lists.gnu.org/archive/html/bug-automake/2006-06/msg00024.html>.
(cp_umask, mkdir_umask): New variables, to avoid
temporarily creating files or directories with too-permissive modes.
(mkdir_mode): Use the FreeBSD 'install' method for computing modes of
intermediate directories; this is safer.
(posix_mkdir): Also test mkdir -p -m ... by making a directory in
/tmp and checking the resulting mode with 'ls', to catch a bug in
HP-UX 11.23 and IRIX 6.5 mkdir reported by Ralf in the same message.
Use ':' for true, not 'true'; this is a bit faster on
traditional implementations.
* tests/defs.in (AUTOMAKE_run): Redirect stdout before stderr,
for consistency with the recommendation prompted by this report:
<http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00225.html>.
Ralf Wildenhues [Sat, 24 Jun 2006 05:35:43 +0000 (05:35 +0000)]
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): Set `mkdir_p' to
`'$(MKDIR_P)'', so that it retains the per-directory value
computed by config.status.
* lib/am/distdir.am (distdir): do not use `$(mkdir_p)' from
a changed directory. Bugs reported by Ralf Menzel.
* THANKS: Update.
Ralf Wildenhues [Tue, 6 Jun 2006 21:10:24 +0000 (21:10 +0000)]
* lib/am/distdir.am: Do not call $(mkdir_p) for each
distributed file, collect them and create them in one run,
and strip $(srcdir) and $(top_srcdir) all at once.
Fix some comment typos.
Ralf Wildenhues [Tue, 6 Jun 2006 20:55:44 +0000 (20:55 +0000)]
* m4/depend.m4 (_AM_DEPENDENCIES): The IRIX MIPSpro compiler
7.4.4m may omit the first included header dependency information
with `-MDupdate'. Refine test to catch this.
Ralf Wildenhues [Tue, 6 Jun 2006 20:49:09 +0000 (20:49 +0000)]
* tests/gettext.test: AM_PROG_GETTEXT of gettext >= 0.14.3
requires `config.rpath' to be present, and automake now enforces
this. Test this, but only if the gettext installation works and
is recent enough to provide this diagnosis.
* tests/gettext.test: Provide a dummy `config.rpath' for all
subsequent checks.
* tests/gettext2.test, tests/subcond.test: Likewise.
Ralf Wildenhues [Tue, 6 Jun 2006 20:42:36 +0000 (20:42 +0000)]
* tests/pr401.test: Replace "perl -i" with sed and mv, for
MinGW perl.
* tests/pr401b.test, tests/pr401c.test, tests/python11.test,
* tests/yacc6.test, tests/yacc8.test: Likewise.
Ralf Wildenhues [Tue, 6 Jun 2006 20:39:22 +0000 (20:39 +0000)]
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Do not use
plain `grep' on the Makefile, as its line length may exceed that
for grep. Bug report against coreutils by Sam Sirlin.
* THANKS: Update.
Ralf Wildenhues [Thu, 25 May 2006 10:21:45 +0000 (10:21 +0000)]
* lib/Automake/XFile.pm (lock): Allow EOPNOTSUPP, besides
ENOLCK. Only mention `make -j' when applicable. Only raise
fatal errors when `make -j' is involved. Improve error message.
Paul Eggert [Thu, 11 May 2006 19:52:07 +0000 (19:52 +0000)]
* lib/install-sh: Sync from Autoconf, as follows:
Don't use 'path' to talk about file names,
as per GNU coding standards. Close a race condition reported by Ralf
Wildenhues and Stepan Kasal. There is still a race condition
on hosts that predate Posix 1003.1-1992, but we can't help this.
Don't mishandle weird characters like space on pre-Posix hosts.
Invoke mkdir at most once per dir arg on pre-Posix hosts.
Ralf Wildenhues [Thu, 11 May 2006 17:33:31 +0000 (17:33 +0000)]
* tests/missing.test, tests/missing2.test: Do not require
GNUmake.
* Makefile.am (maintainer-check): Make sure `required=' does not
follow `. ./defs' in the tests.
Ralf Wildenhues [Thu, 11 May 2006 17:29:34 +0000 (17:29 +0000)]
* tests/ansi10.test: Use AC_PROG_CC_STDC. Fix test that
ac_cv_prog_cc_stdc isn't just used by Automake code in
`configure'.
* tests/ansi6.test, tests/ansi7.test: Likewise.
* tests/ansi9.test: Likewise. Do not override by setting
$U and $(ANSI2KNR) at `make' time; that will be fragile.
* tests/libobj8.test: Use AC_PROG_CC_STDC.
* tests/subobj3.test: Likewise. Use `set -e'.