docbase: fix info filename; don't remove doc/updated-stamp
[gnulib.git] / build-aux / prefix-gnulib-mk
index 9b23245..4d0518f 100755 (executable)
@@ -147,7 +147,11 @@ sub prefix ($)
    {prefix_assignment($1, $2)}gem;
 
   # These three guys escape all the other regular rules.
-  s{(charset\.alias|ref-add\.sed|ref-del\.sed)}{$prefix$1}g;
+  # Require the leading white space to avoid inserting the prefix
+  # on a line like this:
+  # charset_alias = $(DESTDIR)$(libdir)/charset.alias
+  # With $(libdir), it would be erroneous.
+  s{(\s)(charset\.alias|ref-add\.sed|ref-del\.sed)}{$1$prefix$2}g;
   # Unfortunately, as a result we sometimes have lib/lib.
   s{($prefix){2}}{$1}g;
 
@@ -185,10 +189,11 @@ sub process ($)
 {
   my ($file) = @_;
   my ($bak) = "$file.bak";
-  rename ($file, $bak) or die;
+  rename ($file, $bak) or die "$ME: rename $file $bak failed: $!\n";
   my $contents = contents ($bak);
   $contents = prefix ($contents);
-  my $out = new IO::File(">$file") or die;
+  my $out = new IO::File(">$file")
+    or die "$ME: $file: failed to open for writing: $!\n";
   print $out $contents;
 }