]> git.saurik.com Git - bison.git/commitdiff
gnulib: improve prefixing.
authorAkim Demaille <demaille@gostai.com>
Wed, 1 Jul 2009 09:53:29 +0000 (11:53 +0200)
committerAkim Demaille <demaille@gostai.com>
Wed, 12 Aug 2009 14:30:43 +0000 (16:30 +0200)
* configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
change the value of...
(gl_LIBOBJS): this.
Adjust more variables.
* etc/prefix-gnulib-mk (prefix_assignment): Don't rename
gl_LIBOBJS.
(prefix): Also transform rules whose targets have slashes.
Use $prefix liberally.
Map @MKDIR_P@ to $(MKDIR_P).
Prefix directories that are mkdir'd.

ChangeLog
configure.ac
etc/prefix-gnulib-mk

index 6fb1ae22e320e03ececf1bc8414da02322bd6bd6..5668c7217ac8e3d9ff1d2662f9a29e38a6a4788e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+       gnulib: improve prefixing.
+       * configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
+       change the value of...
+       (gl_LIBOBJS): this.
+       Adjust more variables.
+       * etc/prefix-gnulib-mk (prefix_assignment): Don't rename
+       gl_LIBOBJS.
+       (prefix): Also transform rules whose targets have slashes.
+       Use $prefix liberally.
+       Map @MKDIR_P@ to $(MKDIR_P).
+       Prefix directories that are mkdir'd.
+
 2009-08-12  Akim Demaille  <demaille@gostai.com>
 
        build: fix paths.
index 871b0df35739e7e678d2868722f635d9cf6a5875..fa2a8e296f78e6b24b1b3bda14fb457d5c838fca 100644 (file)
@@ -145,11 +145,13 @@ AC_SUBST([O0CXXFLAGS], [`echo $CXXFLAGS | sed 's/-O[[0-9]] *//'`])
 gt_JAVACOMP([1.3], [1.4])
 gt_JAVAEXEC
 
-AC_SUBST([gl_PREFIXED_LIBOBJS],
-         [$(echo "$gl_LIBOBJS" | sed -e 's, , lib/,g')])
-for ac_var in ERRNO_H GETOPT_H INTTYPES_H STDBOOL_H STDINT_H WCHAR_H WCTYPE_H
+# We use gnulib, but from lib/local.mk instead of lib/Makefile.am.
+# So prefix paths with lib/.  See also etc/prefix-gnulib-mk.
+gl_LIBOBJS=`echo "$gl_LIBOBJS" | sed -e 's, , lib/,g'`
+for ac_var in ALLOCA_H ERRNO_H FCNTL_H GETOPT_H INTTYPES_H \
+              STDBOOL_H STDINT_H SYS_WAIT_H WCHAR_H WCTYPE_H
 do
-  eval "$ac_var=lib/\$$ac_var"
+  eval "test 'x$ac_var' = x || $ac_var=lib/\$$ac_var"
 done
 AC_CONFIG_FILES([Makefile
                 po/Makefile.in
index 08d22f288d9433a236fff9bf3f19dc553198ccd3..e969663df485ed10a1a0629d6f711c98b247aa31 100755 (executable)
@@ -73,9 +73,6 @@ sub prefix_assignment ($$)
   # lib_libbison_a_SOURCES.
   $lhs_and_assign_op =~ s/(libbison)/lib_$1/g;
 
-  # Do not use gl_LIBOBJS, but its prefixed version.
-  $rhs =~ s/gl_LIBOBJS/gl_PREFIXED_LIBOBJS/g;
-
   return $lhs_and_assign_op . $rhs;
 }
 
@@ -93,7 +90,7 @@ sub prefix ($)
   # Prefix all the occurrence of files in rules.  If there is nothing
   # after in the :, it's probably a phony target, or a suffix rule.
   # Don't touch it.
-  s{^([\w.]+ *: *\w.*)$}
+  s{^([\w./]+ *: *\w.*)$}
    {prefix_words($1)}gem;
 
   # Prefix files in variables.
@@ -103,7 +100,7 @@ sub prefix ($)
   # These three guys escape all the other regular rules.
   s{(charset\.alias|ref-add\.sed|ref-del\.sed)}{$prefix$1}g;
   # Unfortunately, as a result we sometimes have lib/lib.
-  s{lib/lib/}{lib/}g;
+  s{($prefix){2}}{$1}g;
 
   # $(srcdir) is actually $(top_srcdir)/lib.
   s{\$\(srcdir\)}{\$(top_srcdir)/lib}g;
@@ -112,6 +109,12 @@ sub prefix ($)
   # not work when we have a $@ with a directory in it.
   s{t-\$\@}{\$\@-t}g;
 
+  # Some AC_SUBST patterns remain and would better be Make macros.
+  s{\@(MKDIR_P)\@}{\$($1)}g;
+
+  # Adjust paths in mkdir.
+  s{(\$\(MKDIR_P\))\s*(\w+)}{$1 $prefix$2}g;
+
   return $_;
 }
 
@@ -128,7 +131,7 @@ sub process ($)
   print $out $contents;
 }
 
-process ("lib/gnulib.mk")
+process ("${prefix}gnulib.mk")
 
 
 ### Setup "GNU" style for perl-mode and cperl-mode.