Re: automake/autoreconf: Incomprehensible error messages bugs
Bruce Korb [EMAIL PROTECTED] writes: On Tuesday 25 January 2005 01:47 pm, Alexandre Duret-Lutz wrote: ... Maybe the autoreconf documentation should point to the Gettext manual. Care to patch the Autoconf manual? Below. :-) Thanks. I rewrote it a bit, and added a proper cross reference and some index entries, and installed the following. 2005-02-01 Paul Eggert [EMAIL PROTECTED] * doc/autoconf.texi (autoreconf Invocation): Mention autopoint, with a cross reference. Derived from a suggestion by Bruce Korb. --- autoconf.texi.~1.870.~ 2005-01-31 16:36:10 -0800 +++ autoconf.texi 2005-02-01 12:41:54 -0800 @@ -1451,6 +1451,15 @@ method handles the timestamps of configu properly, but does not pass @[EMAIL PROTECTED] or @[EMAIL PROTECTED] [EMAIL PROTECTED] Gettext [EMAIL PROTECTED] @command{autopoint} +Gettext supplies the @command{autopoint} command to add translation +infrastructure to a source package. If you use @command{autopoint}, +your @file{configure.ac} should invoke both @code{AM_GNU_GETTEXT} and [EMAIL PROTECTED](@var{gettext-version})}. @xref{autopoint +Invocation,, Invoking the @code{autopoint} Program, gettext, GNU [EMAIL PROTECTED] utilities}, for further details. + @noindent @command{autoreconf} accepts the following options:
Re: automake/autoreconf: Incomprehensible error messages bugs
On Tuesday 25 January 2005 01:47 pm, Alexandre Duret-Lutz wrote: $ autoreconf autoreconf: configure.ac: AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION 1. The automake example of AM_GNU_GETTEXT does not show AM_GNU_GETTEXT_VERSION being used in conjunction with it. In fact, it isn't even documented at all. Bruce Um, okay, but if automake is going to emit the message, then it only Bruce makes sense (to me) that automake include the documentation. That would make sense to me too. However automake is not emitting the message, autoreconf does. Actually automake knows nothing about AM_GNU_GETTEXT_VERSION: it's none of its business. OK. autoreconf then:) # --- # # Running autopoint. # # --- # # Gettext is a bit of a problem: its macros are not necessarily # visible to aclocal, so if we start with a completely striped down # package (think of a fresh CVS checkout), running `aclocal' first # will fail: the Gettext macros are missing. # # Therefore, we can't use the traces to decide if we use Gettext or # not. I guess that once Gettext move to 2.5x we will be able to, # but in the meanwhile forget it. # # We can only grep for AM_GNU_GETTEXT_VERSION in configure.ac. You # might think this approach is naive, and indeed it is, as it # prevents one from embedding AM_GNU_GETTEXT_VERSION in another *.m4, but # anyway we don't limit the generality, since... that's what # autopoint does. Actually, it is even more restrictive, as it # greps for `^AM_GNU_GETTEXT_VERSION\('. We did this above, while # scanning configure.ac. Maybe the autoreconf documentation should point to the Gettext manual. Care to patch the Autoconf manual? Below. :-) Cheers, Bruce Index: autoconf.texi === RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v retrieving revision 1.868 diff -b -B -u -p -r1.868 autoconf.texi --- autoconf.texi 28 Jan 2005 21:55:57 - 1.868 +++ autoconf.texi 30 Jan 2005 17:47:44 - @@ -1436,10 +1436,10 @@ System in a fresh tree. @command{autoreconf} runs @command{autoconf}, @command{autoheader}, @command{aclocal}, @command{automake}, @command{libtoolize}, and [EMAIL PROTECTED] (when appropriate) repeatedly to update the [EMAIL PROTECTED] (when appropriate, see below) repeatedly to update the @acronym{GNU} Build System in the specified directories and their -subdirectories (@pxref{Subdirectories}). By default, it only remakes -those files that are older than their sources. +subdirectories (@pxref{Subdirectories}). By default, it only remakes those +files that are older than their sources. If you install a new version of some tool, you can make @command{autoreconf} remake @emph{all} of the files by giving it the @@ -1451,6 +1451,13 @@ method handles the timestamps of configu properly, but does not pass @[EMAIL PROTECTED] or @[EMAIL PROTECTED] [EMAIL PROTECTED] is GNU's gettext program to add the gettext +infrastructure necessary for a source package. @command{autopoint} will be +run if the macro [EMAIL PROTECTED]'' is found in the [EMAIL PROTECTED] file. That program relies on another macro [EMAIL PROTECTED](gtxt-ver)}'' which must @emph{also} be present in [EMAIL PROTECTED] See the GNU Gettext documentation for further details. + @noindent @command{autoreconf} accepts the following options:
Re: automake/autoreconf: Incomprehensible error messages bugs
On Sun, Jan 23, 2005 at 09:28:36AM -0800, Bruce Korb wrote: $ autoreconf autoreconf: configure.ac: AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION 1. The automake example of AM_GNU_GETTEXT does not show AM_GNU_GETTEXT_VERSION being used in conjunction with it. In fact, it isn't even documented at all. See the gettext documentation. `autopoint' uses AM_GNU_GETTEXT_VERSION (and fails without it), so `autoreconf' does not run `autopoint' if `configure.ac' does not call `AM_GNU_GETTEXT_VERSION'. This is not actually a fatal error; the message probably should begin ``autoreconf: warning: ...''. 2. Surely the message, cannot empty /tmp/ar0.4849: Is a directory can be made more meaningful. What _does_ it mean? (Besides being the error message rm will give you. :) The message is not meaningful because this Never Happens :) autoreconf tried to delete the contents of its temporary directory, and then the directory itself. The former failed silently, so the latter failed noisely. I hit this once before with a broken Perl (Slackware 3.3, 5.004_03 IIRC) where Perl's globbing mysteriously returned an empty list every time. You can try a simple `perl -e 'print *' in a nonempty directory; if it prints nothing, that is your problem, too. It certainly may be something entirely different, though. What type of system is this? What version of Perl?
Re: automake/autoreconf: Incomprehensible error messages bugs
On Tuesday 25 January 2005 01:37 am, Noah Misch wrote: On Sun, Jan 23, 2005 at 09:28:36AM -0800, Bruce Korb wrote: $ autoreconf autoreconf: configure.ac: AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION 1. The automake example of AM_GNU_GETTEXT does not show AM_GNU_GETTEXT_VERSION being used in conjunction with it. In fact, it isn't even documented at all. See the gettext documentation. `autopoint' uses AM_GNU_GETTEXT_VERSION (and fails without it), so `autoreconf' does not run `autopoint' if `configure.ac' does not call `AM_GNU_GETTEXT_VERSION'. This is not actually a fatal error; the message probably should begin ``autoreconf: warning: ...''. Um, okay, but if automake is going to emit the message, then it only makes sense (to me) that automake include the documentation. Also, if you're going to have a AM_GNU_GETTEXT example in the doc, wouldn't it also make sense to have a correct example? Which, of course, raises the question of why the two are not combined, but probably after I locate the gettext distribution, download it, build it, install it and read the doc, I'd probably know the answer. Uh, a bit heavy duty to just get an answer to the question, don't you think? ;-) 2. Surely the message, cannot empty /tmp/ar0.4849: Is a directory can be made more meaningful. What _does_ it mean? (Besides being the error message rm will give you. :) The message is not meaningful because this Never Happens :) Ah. Good. Then I didn't see it. :) autoreconf tried to delete the contents of its temporary directory, and then the directory itself. The former failed silently, so the latter failed noisely. I hit this once before with a broken Perl (Slackware 3.3, 5.004_03 IIRC) where Perl's globbing mysteriously returned an empty list every time. You can try a simple `perl -e 'print *' in a nonempty directory; if it prints nothing, that is your problem, too. It certainly may be something entirely different, though. What type of system is this? What version of Perl? $ uname -a Linux bach 2.6.5-7.97-default #1 Fri Jul 2 14:21:59 UTC 2004 i686 athlon i386 GNU/Linux $ cat /etc/[Ss]*release SUSE LINUX Enterprise Server 9 (i586) VERSION = 9 $ perl -e 'print *' ahAqZXRxam4t1e7x8Oam4tCpTneDam4tiZINdqam4tjiZAF1am4tu48Whq $ ls ahAqZXRx am4t1e7x8O am4tCpTneD am4tiZINdq am4tjiZAF1 am4tu48Whq $ perl --version This is perl, v5.8.3 built for i586-linux-thread-multi Copyright 1987-2003, Larry Wall In chasing this down, I also noticed that my /tmp directory was packed full of ah* am* cg* ar* directories left lying around. Full of stuff, too. Can I suppose that if I can find the cause of this problem I won't see this ditrius either? Thanks!! - Bruce
Re: automake/autoreconf: Incomprehensible error messages bugs
Bruce == Bruce Korb [EMAIL PROTECTED] writes: Bruce On Tuesday 25 January 2005 01:37 am, Noah Misch wrote: On Sun, Jan 23, 2005 at 09:28:36AM -0800, Bruce Korb wrote: $ autoreconf autoreconf: configure.ac: AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION 1. The automake example of AM_GNU_GETTEXT does not show AM_GNU_GETTEXT_VERSION being used in conjunction with it. In fact, it isn't even documented at all. See the gettext documentation. [...] Bruce Um, okay, but if automake is going to emit the message, then it only Bruce makes sense (to me) that automake include the documentation. That would make sense to me too. However automake is not emitting the message, autoreconf does. Actually automake knows nothing about AM_GNU_GETTEXT_VERSION: it's none of its business. Maybe the autoreconf documentation should point to the Gettext manual. Care to patch the Autoconf manual? Bruce Also, if you're going to have a AM_GNU_GETTEXT example Bruce in the doc, wouldn't it also make sense to have a Bruce correct example? Yes! I believe you are talking about the GNU Hello example included in the Automake manual. This example comes from a very old release of GNU Hello and is completely out of date. But there is an ongoing story behind this. Things are moving, but slowly. Please see (in that order): http://lists.gnu.org/archive/html/bug-gnu-utils/2004-11/msg00099.html http://lists.gnu.org/archive/html/bug-hello/2004-12/msg8.html http://www-src.lip6.fr/homepages/Alexandre.Duret-Lutz/autotools.html -- Alexandre Duret-Lutz
automake/autoreconf: Incomprehensible error messages bugs
$ autoreconf autoreconf: configure.ac: AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION autoreconf: cannot empty /tmp/ar0.4849: Is a directory $ find /tmp/ar0.4849 /tmp/ar0.4849 /tmp/ar0.4849/am4tu48Whq /tmp/ar0.4849/am4tCpTneD /tmp/ar0.4849/am4tiZINdq /tmp/ar0.4849/ahAqZXRx /tmp/ar0.4849/am4tjiZAF1 /tmp/ar0.4849/am4t1e7x8O 1. The automake example of AM_GNU_GETTEXT does not show AM_GNU_GETTEXT_VERSION being used in conjunction with it. In fact, it isn't even documented at all. 2. Surely the message, cannot empty /tmp/ar0.4849: Is a directory can be made more meaningful. What _does_ it mean? (Besides being the error message rm will give you. :) Thanks - Bruce