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'.
Ralf Wildenhues [Thu, 11 May 2006 17:25:41 +0000 (17:25 +0000)]
* lib/am/java.am (class%DIR%.stamp): Do not assume `$?' has
the path of the prerequisite added; IRIX 6.5 make does not add
it, Solaris 2.6 make is inconsistent about adding it. Fixes
java.test failure.
Ralf Wildenhues [Wed, 10 May 2006 21:01:26 +0000 (21:01 +0000)]
* tests/longlin2.test: Do not use `grep' on Makefile.am:
it has long lines and is thus not a text file; AIX 5.1 grep
fails to scan non-plain patterns from long lines.
Ralf Wildenhues [Wed, 10 May 2006 20:59:29 +0000 (20:59 +0000)]
* tests/overrid.test: Change all regexes for warning messages to
match after a colon, so that the prepended file names do not
cause false matches. Tighten overrides regex. Fix typo
`cleam-am-local' -> `clean-am-local'.
Ralf Wildenhues [Wed, 10 May 2006 20:58:16 +0000 (20:58 +0000)]
* tests/java.test: `configure' uses a trap, so use `(exit 77);
exit 77' to portably set the exit status similar to AS_EXIT.
* tests/fn99.test: propagate nonzero exit status from subshell.
Ralf Wildenhues [Wed, 10 May 2006 20:57:01 +0000 (20:57 +0000)]
* tests/mkinst3.test: Fix `mkdir' wrapper to not be confused
if ``pwd`' contains the string `-p'. Create the wrapper in a
subdirectory so that `.' in $PATH does not lead to an endless
loop.
Ralf Wildenhues [Wed, 10 May 2006 20:55:34 +0000 (20:55 +0000)]
* lib/depcomp (ia64hp): Rename dependency style to..
(hp2): ..this, as it works with aCC on HPPA, too; adjust
comment. Report by Olivier Fourdan (PR automake/481).
* THANKS: Update.
Ralf Wildenhues [Wed, 10 May 2006 20:50:53 +0000 (20:50 +0000)]
* tests/aclocal7.test: Add `$sleep's between file touching
and automake resp aclocal+automake invocations, to ensure
they complete with a time stamp strictly later than the touched
file.
Ralf Wildenhues [Wed, 10 May 2006 20:47:36 +0000 (20:47 +0000)]
* lib/missing: Remove superfluous quotes. Replace all uses of
`[' by `test', for consistency, and for..
* tests/missing5.test: ..this new test.
* tests/Makefile.am: Update.
Ralf Wildenhues [Wed, 10 May 2006 20:37:36 +0000 (20:37 +0000)]
* lib/missing (sed_minuso, sed_output): New variables.
(autom4te, help2man, makeinfo): Use them. Unifies detection of
`-o FILE', `--output FILE', `--output=FILE', stricter regex.
Fixes `missing' to detect `--output' for help2man. Fixes
PR automake/483. Report by Dennis J. Linse.
(autom4te): Document in `missing --help'.
* THANKS: Update.
Paul Eggert [Mon, 24 Apr 2006 19:58:00 +0000 (19:58 +0000)]
* lib/install.sh: Handle --, and diagnose unknown options.
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): In the normal case, set
mkdir_p='mkdir -p', not to 'mkdir -p --', for consistency with
the other ways that mkdir_p might be set.
* m4/amversion.in (_AM_AUTOCONF_VERSION): New macro.
(AM_SET_CURRENT_AUTOMAKE_VERSION): Call it.
* aclocal.in (trace_used_macros): Trace _AM_AUTOCONF_VERSION.
(write_aclocal): Output a check for Autoconf's version in aclocal.m4.
Doing so ensures that users cannot build configure and Makefiles
with two different autoconf versions. Report from Noah Misch.
* tests/missing4.test: New file.
* tests/Makefile.am (TESTS): Add it.
* lib/am/dejagnu.am (check-DEJAGNU): Fail when at least one test
failed, instead of when the last one failed (PR automake/488).
Report from Paul Lunau.
* tests/dejagnu4.test: Update to expose this.
* THANKS: Update.
* lib/am/check.am (check-TESTS): Match XFAIL_TESTS delimited by
TABs as well as spaces. Fixes PR automake/490.
* tests/check6.test: New test.
* tests/Makefile.am, THANKS: Update.
Report from Diab Jerius <djerius@cfa.harvard.edu>.
* lib/Autom4te/FileUtils.pm (find_file): Fix a typo in the
description; eliminate the duplicate error message.
* doc/automake.texi (@direntry): `Invoking Automake' is the name
of the usage node for `automake'
* lib/Automake/Variable.pm (%_gen_varname): Fix typos in the
comment.