]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
* lib/Automake/XFile.pm: Don't assume -j is solo.
authorAkim Demaille <akim@epita.fr>
Thu, 23 Oct 2003 14:29:22 +0000 (14:29 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 23 Oct 2003 14:29:22 +0000 (14:29 +0000)
Issue a more-informative diagnostic.
Problems reported by Eric Sunshine.

ChangeLog
lib/Automake/XFile.pm

index 79590306abe3b5496f927d7d801340dc96c6c660..eab12782639bc8acff46fd746bbc6e9fd2731300 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-23  Paul Eggert  <eggert@twinsun.com>
+
+       * lib/Automake/XFile.pm: Don't assume -j is solo.
+       Issue a more-informative diagnostic.
+       Problems reported by Eric Sunshine.
+
 2003-10-21  Alexandre Duret-Lutz  <adl@gnu.org>
 
        * m4/lispdir.m4 (AM_PATH_LISPDIR): Always check for Emacs.
index 8c719e30fd59ee8a17ba2d87aec7b8fd85e08dd2..279317b7c7ad50c079ac96f2843b07c748834d6f 100644 (file)
@@ -223,12 +223,15 @@ sub lock
   # perl was not built with -Ud_flock.  Normally, this problem is harmless,
   # so ignore the ENOLCK errors that are reported in that situation,
   # However, if the invoker is using "make -j", the problem is not harmless,
-  # so report it in that case.  Admittedly this is a bit of a hack.
+  # so report it in that case, by inspecting MAKEFLAGS and looking for
+  # any arguments indicating that the invoker used -j.
+  # Admittedly this is a bit of a hack.
   if (!flock ($fh, $mode)
-      && (!$!{ENOLCK} || " $ENV{'MAKEFLAGS'}" =~ / (-j|--jobs)/))
+      && (!$!{ENOLCK}
+         || " -$ENV{'MAKEFLAGS'}" =~ / (-[BdeikrRsSw]*j|---?jobs)/))
     {
       my $file = $fh->name;
-      fatal "cannot lock $file with mode $mode: $!";
+      fatal "cannot lock $file with mode $mode (perhaps you are running make -j on a lame NFS client?): $!";
     }
 }