autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Can't exec "autopoint": No such file or directory


From: Ralf Wildenhues
Subject: Re: Can't exec "autopoint": No such file or directory
Date: Mon, 17 Mar 2008 07:12:51 +0100
User-agent: Mutt/1.5.17+20080114 (2008-01-14)

Hi Bruce,

* Bruce Korb wrote on Mon, Mar 17, 2008 at 12:24:04AM CET:
> On Sun, Mar 16, 2008 at 5:26 AM, Ralf Wildenhues <address@hidden> wrote:
> >
> >  You're fully right in expecting better.  What about this?  OK to apply?
> 
> It is excellent, modulo a typo.  Thank you!  It will be excellent!

> >  -      xsystem ($libtoolize);
> >  +      xsystem ("libtoolize is needed because this package uses Libtool", 
> > $libtoolize);
> "xsystem_hint", yes?

Yes, I fixed that, together with comment fixes in FileUtils.pm.
And I did put changes to the latter into Automake first, and pulled from
there.

Cheers, and thanks for the review,
Ralf

    Provide a helpful message if autopoint or libtoolize do not exist.
    
    * lib/Autom4te/FileUtils.pm (handle_exec_errors): New argument
    $hint, show if the executing program does not exist.
    (xsystem_hint): New function, like xsystem but allows to pass
    a hint.
    * bin/autoreconf.in: Use xsystem_hint for spawning autopoint and
    libtoolize.
    Report by Bruce Korb.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index 66da78e..4ff8fb9 100644
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -364,7 +364,7 @@ sub autoreconf_current_directory ()
     }
   else
     {
-      xsystem "$autopoint";
+      xsystem_hint ("autopoint is needed because this package uses Gettext", 
"$autopoint");
     }
 
 
@@ -528,7 +528,7 @@ sub autoreconf_current_directory ()
        {
          $libtoolize .= " --ltdl";
        }
-      xsystem ($libtoolize);
+      xsystem_hint ("libtoolize is needed because this package uses Libtool", 
$libtoolize);
       $rerun_aclocal = 1;
     }
   else
diff --git a/lib/Autom4te/FileUtils.pm b/lib/Autom4te/FileUtils.pm
index 819a7c3..ac56fd3 100644
--- a/lib/Autom4te/FileUtils.pm
+++ b/lib/Autom4te/FileUtils.pm
@@ -1,4 +1,4 @@
-# Copyright (C) 2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008  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
@@ -47,7 +47,7 @@ use vars qw (@ISA @EXPORT);
 @EXPORT = qw (&open_quote &contents
              &find_file &mtime
              &update_file &up_to_date_p
-             &xsystem &xqx &dir_has_case_matching_file &reset_dir_cache);
+             &xsystem &xsystem_hint &xqx &dir_has_case_matching_file 
&reset_dir_cache);
 
 
 =item C<open_quote ($file_name)>
@@ -231,23 +231,32 @@ sub up_to_date_p ($@)
 }
 
 
-=item C<handle_exec_errors ($command, [$expected_exit_code = 0])>
+=item C<handle_exec_errors ($command, [$expected_exit_code = 0], [$hint])>
 
 Display an error message for C<$command>, based on the content of
 C<$?> and C<$!>.  Be quiet if the command exited normally
-with C<$expected_exit_code>.
+with C<$expected_exit_code>.  If C<$hint> is given, display that as well
+if the command failed to run at all.
 
 =cut
 
-sub handle_exec_errors ($;$)
+sub handle_exec_errors ($;$$)
 {
-  my ($command, $expected) = @_;
+  my ($command, $expected, $hint) = @_;
   $expected = 0 unless defined $expected;
+  if (defined $hint)
+    {
+      $hint = "\n" . $hint;
+    }
+  else
+    {
+      $hint = '';
+    }
 
   $command = (split (' ', $command))[0];
   if ($!)
     {
-      fatal "failed to run $command: $!";
+      fatal "failed to run $command: $!" . $hint;
     }
   else
     {
@@ -316,6 +325,25 @@ sub xsystem (@)
 }
 
 
+=item C<xsystem_hint ($msg, @argv)>
+
+Same as C<xsystem>, but allows to pass a hint that will be displayed
+in case the command failed to run at all.
+
+=cut
+
+sub xsystem_hint (@)
+{
+  my ($hint, @command) = @_;
+
+  verb "running: @command";
+
+  $! = 0;
+  handle_exec_errors "@command", 0, $hint
+    if system @command;
+}
+
+
 =item C<contents ($file_name)>
 
 Return the contents of C<$file_name>.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]