Re: conditional += doesn't work as suggested by documentation
Hi Richard, * Richard Brooksby wrote on Fri, May 12, 2006 at 06:00:47PM CEST: At http://sources.redhat.com/automake/automake.html it says: 7.1.3.2 Conditional compilation using Automake conditionals *snip* This documents Automake version 1.9.6. If your program uses a lot of files, you will probably prefer a conditional +=. bin_PROGRAMS = hello hello_SOURCES = hello-common.c if LINUX hello_SOURCES += hello-linux.c else hello_SOURCES += hello-generic.c endif The former works, the latter does not. I'm running automake 1.6.3 on Mac OS X 10.4. Try putting the attached minimal files in a directory and running aclocal followed by automake. Current is 1.9.6. Use that instead of 1.6.3, which is several years old. I think the bug you report was fixed in 1.7, but I wasn't using Automake back in those times. Oodles of other bugs have been fixed since. Cheers, Ralf
Re: conditional += doesn't work as suggested by documentation
On 2006-05-13, at 09:06, Ralf Wildenhues wrote: This documents Automake version 1.9.6. ... Current is 1.9.6. Use that instead of 1.6.3, which is several years old. I think the bug you report was fixed in 1.7, but I wasn't using Automake back in those times. Oodles of other bugs have been fixed since. Doh! Thanks for pointing that out. FWIW, it appears that automake 1.6.3 is installed by default on Mac OS X 10.4 as part of the BSD subsystem, so there are potentially a lot of automake 1.6.3 users out there, unfortunately.
Re: conditional += doesn't work as suggested by documentation
Hi Richard, * Richard Brooksby wrote on Sat, May 13, 2006 at 12:24:26PM CEST: FWIW, it appears that automake 1.6.3 is installed by default on Mac OS X 10.4 as part of the BSD subsystem, so there are potentially a lot of automake 1.6.3 users out there, unfortunately. It'd be great if you could encourage them to ship with a newer version. Other than that, you can always just download and install your own (but then the usual caveats about paths where aclocal finds third-party macro files apply). Cheers, Ralf
IRIX compiler omits some dependencies with -MDupdate
Somehow, IRIX64 6.5 cc and CC, presenting themselves as MIPSpro Compilers: Version 7.4.4m have a quite buggy `-MDupdate' mechanism; it more or less randomly forgets to list some headers included with double quotes; or maybe only the first one, I don't know. For example, the test in m4/depend.m4 leads to this dependency file: | sub/conftest.o : \ | sub/conftst4.h sub/conftst5.h sub/conftst6.h sub/conftst2.h sub/conftst3.h Weird, huh? Note it also forgets to add the .c file, but that may be intended, and I don't think it breaks dependency tracking, due to the inference rules Automake puts in place. Anyway, the new depcomp6.test exposes this failure -- so at least adding that paid out already. :-) For lack of more knowledge, how about this check to diagnose and skip this depcomp method? This will make depcomp fall back to depmode `none', or `dashmstdout' (if --enable-dependency-tracking was given). It'd probably be good if someone with a support contract could file a bug... Cheers, Ralf * 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. Index: m4/depend.m4 === RCS file: /cvs/automake/automake/m4/depend.m4,v retrieving revision 1.36 diff -u -r1.36 depend.m4 --- m4/depend.m49 Apr 2006 07:46:55 - 1.36 +++ m4/depend.m413 May 2006 09:22:39 - @@ -99,6 +99,7 @@ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ /dev/null 2conftest.err + grep sub/conftst1.h sub/conftest.Po /dev/null 21 grep sub/conftst6.h sub/conftest.Po /dev/null 21 grep sub/conftest.${OBJEXT-o} sub/conftest.Po /dev/null 21 ${MAKE-make} -s -f confmf /dev/null 21; then
FYI: fix some typos
I have taken liberty to apply this patch, fixing typos and some wording in comments and inline documentation, in the hope that that was ok. Cheers, Ralf * lib/Automake/Channels.pm, lib/Automake/Condition.pm, lib/Automake/DisjConditions.pm, lib/Automake/Options.pm, lib/Automake/VarDef.pm, lib/Automake/Wrap.pm: Fix some typos. Index: lib/Automake/Channels.pm === RCS file: /cvs/automake/automake/lib/Automake/Channels.pm,v retrieving revision 1.11 diff -u -r1.11 Channels.pm --- lib/Automake/Channels.pm14 May 2005 20:28:51 - 1.11 +++ lib/Automake/Channels.pm13 May 2006 09:27:24 - @@ -1,4 +1,4 @@ -# Copyright (C) 2002, 2004 Free Software Foundation, Inc. +# Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -43,7 +43,7 @@ # Treat all warnings as errors. $warnings_are_errors = 1; - # Exit with the greater exist code encountered so far. + # Exit with the greatest exit code encountered so far. exit $exit_code; =head1 DESCRIPTION @@ -108,7 +108,7 @@ =item CUP_NONE, CUP_TEXT, CUP_LOC_TEXT -Possible values for the Cuniq_part options. This select the part +Possible values for the Cuniq_part options. This selects the part of the message that should be considered when filtering out duplicates. If CUP_LOC_TEXT is used, the location and the explanation message are used for filtering. If CUP_TEXT is used, only the explanation @@ -126,10 +126,10 @@ Possible values for the Cuniq_scope options. Use CUS_GLOBAL for error messages that should be printed only -once in the run of the program, CUS_LOCAL for message that +once during the execution of the program, CUS_LOCAL for message that should be printed only once per file. (Actually, CChannels does not -now when files are changed, it relies on you calling Creset_local_duplicates -when this happens.) +do this now when files are changed, it relies on you calling +Creset_local_duplicates when this happens.) =cut @@ -143,7 +143,7 @@ Channels accept the options described below. These options can be passed as a hash to the Cregister_channel, Csetup_channel, and Cmsg -functions. The possible keys, with there default value are: +functions. The possible keys, with their default value are: =over @@ -352,7 +352,7 @@ =item Cchannel_type ($name) Returns the type of channel C$name if it has been registered. -Returns The empty string otherwise. +Returns the empty string otherwise. =cut @@ -478,7 +478,7 @@ =item Cmsg ($channel, $location, $message, [%options]) -Emit a message on C$channel, overriding some options of the channel with +Emit a message on C$channel, overriding some options of the channel with those specified in C%options. Obviously C$channel must have been registered with Cregister_channel. @@ -496,10 +496,10 @@ foo.c:10: unused variable `mumble' C$location can also be an instance of CAutomake::Location. In this -case the stack of contexts will be displayed in addition. +case, the stack of contexts will be displayed in addition. If C$message contains newline characters, C$location is prepended -to each line. For instance +to each line. For instance, msg 'error', 'somewhere', 1st line\n2nd line; @@ -646,8 +646,8 @@ This backlog of messages is processed when Cflush_messages is called, with the current channel options (not the options in effect, -at the time of Cmsg). So for instance if some channel was silenced -in the meantime, messages to this channels will not be print. +at the time of Cmsg). So for instance, if some channel was silenced +in the meantime, messages to this channel will not be printed. Cflush_messages cancels the effect of Cbuffer_messages. Following calls to Cmsg are processed immediately as usual. Index: lib/Automake/Condition.pm === RCS file: /cvs/automake/automake/lib/Automake/Condition.pm,v retrieving revision 1.5 diff -u -r1.5 Condition.pm --- lib/Automake/Condition.pm 14 May 2005 20:28:51 - 1.5 +++ lib/Automake/Condition.pm 13 May 2006 09:27:25 - @@ -1,4 +1,4 @@ -# Copyright (C) 1997, 2001, 2002, 2003 Free Software Foundation, Inc. +# Copyright (C) 1997, 2001, 2002, 2003, 2006 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -123,8 +123,8 @@ Another point worth to mention is that each CCondition object is unique with respect to its conditionals. Two CCondition objects -created for the same set of conditionals will have the same adress. -This makes it easy to compare CConditions, just compare the +created for the same set of conditionals will have the same address. +This makes it
FYI: improved gnupload
Hi Werner, * Werner LEMBERG wrote on Fri, May 12, 2006 at 11:03:37PM CEST: * lib/gnupload: Add support for savannah.gnu.org and savannah.nongnu.org. Thanks! I installed that. Cheers, Ralf
Re: make distcheck not finding custom code generation script
On Saturday 13 May 2006 10:23, Ralf Wildenhues wrote: The concept that is probably new to you is when source tree and build tree are not the same. You can achieve that yourself (without distcheck) by something like this: mkdir build cd build ../source-tree/configure [OPTIONS] make Ralf, thank you too very, very much for another great explanation! That concept was indeed new to me (autotools newbie), but now I understand well enough I think, which I am very happy about :) BTW, what a well-written bug report! Why, thank you :) It got me at least two great answers so it was definately worth writing it. Thanks, once again! Andreas -- Andreas daff Ntaflos daff AT dword DOT org Vienna, Austria GPG Fingerprint:6234 2E8E 5C81 C6CB E5EC 7E65 397C E2A8 090C A9B4 GPG Public Key ID: 090CA9B4 GPG Public Key: http://daffit.meownz.info/publickey/andreas_ntaflos.asc
state of CVS Automake
I ran a round of tests of CVS Automake, posting some bug fixes along the way ... could you have guessed? ;-) With those, CVS Automake as of the last couple of months fares as follows on a number of systems. The list is sorted by OS then CPU; duplicate entries denote different computers. I've been trying to use native tools only, as present, esp. I did usually _not_ have GNU make in $PATH if the native one is different; GNU m4 everywhere, and varying CVS Autoconf versions from during the last few weeks; usually I did not try to ensure that a GCC version was in PATH, even on systems that had it installed somewhere. Systems from the HP testdrive project are marked as such; some of those exhibit issues not found on other installations of similar systems, i.e., same or similar $host value. If some of these can be shown to be system configuration issues, it'd be good to sort them out and report them. Anyways, kudos to HP for providing this service! Logs with VERBOSE=x are available, in case you're interested; most issues should have been reported on one of the automake lists, however. Items marked `fixed' have been fixed since the test run, for issues marked `patch pending', surprisingly, a patch has been posted since. I realize that, because GNU make, gcc, libtool and some other tools required by some of the test are not installed on those systems or need special configuration flags to be accessible, the test suite exposure is less complete that it could have been. Oh well. Cheers, Ralf (*) denotes issues for which no separate report has been posted (yet). powerpc-ibm-aix4.3.3.0 = 2 of 455 tests failed (136 tests were not run) = longlin2fixed mkinst3 fixed powerpc-ibm-aix5.1.0.0 = 2 of 454 tests failed (137 tests were not run) = automake.test fixed longlin2.test fixed powerpc-ibm-aix5.2.0.0 = 1 of 454 tests failed (137 tests were not run) = automake.test fixed powerpc-ibm-aix5.3.0.0 === All 454 tests behaved as expected (3 expected failures) (137 tests were not run) === i686-pc-cygwin = 11 of 552 tests failed (39 tests were not run) = txinfo3.test txinfo13.test txinfo16.test txinfo18.test txinfo21.test txinfo22.test txinfo23.test txinfo24.test txinfo25.test txinfo28.test version7.test These failures are similar to what Markus Elfring reported here: http://lists.gnu.org/archive/html/bug-automake/2006-04/msg00017.html http://lists.gnu.org/archive/html/bug-automake/2006-05/msg1.html presumably because the Cygwin TeX installation seems broken. powerpc-apple-darwin8.2.0 === All 536 tests behaved as expected (3 expected failures) (55 tests were not run) === i386-unknown-freebsd5.4 === All 497 tests behaved as expected (3 expected failures) (94 tests were not run) === i386-unknown-freebsd5.4 (testdrive) === All 502 tests behaved as expected (3 expected failures) (89 tests were not run) === ia64-unknown-freebsd6.0 (testdrive) = 1 of 497 tests failed (94 tests were not run) = remake4.testNFS oddity? alpha-unknown-freebsd6.0 === All 502 tests behaved as expected (3 expected failures) (89 tests were not run) === hppa2.0-hp-hpux10.20 = 1 of 453 tests failed (138 tests were not run) = distdir.testfixed hppa2.0w-hp-hpux11.00 = 1 of 453 tests failed (138 tests were not run) = distdir.testfixed hppa2.0w-hp-hpux11.11 = 1 of 458 tests failed (133 tests were not run) = distdir.testfixed hppa2.0w-hp-hpux11.23 = 1 of 453 tests failed (138 tests were not run) = distdir.testfixed ia64-hp-hpux11.23 = 1 of 453 tests failed (138 tests were not run) = distdir.testfixed