]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Provide a helpful message if autopoint or libtoolize do not exist.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Mon, 17 Mar 2008 05:58:49 +0000 (06:58 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Mon, 17 Mar 2008 05:59:44 +0000 (06:59 +0100)
* 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 <Ralf.Wildenhues@gmx.de>
ChangeLog
bin/autoreconf.in
lib/Autom4te/FileUtils.pm

index df83bceee38e214287d8144c4d32143329e1d008..b017fcb352f089ba439dca076284cc8a5427e13b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * 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.
+
 2008-03-14  Stepan Kasal  <kasal@ucw.cz>
 
        * lib/Autom4te/ChannelDefs.pm, tests/fortran.at,
index 66da78e3e1f21b47c393543634ca99d50156db11..4ff8fb955aedf1b0575e55bf96f9a85b66bb6c2b 100644 (file)
@@ -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
index 819a7c384d5761128d5f392b3f357d4969db6413..ac56fd3ef8cb7f5595a8eba83319f1b990d66e09 100644 (file)
@@ -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>.