X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/11c073b7e53fb82c67f1adf8cd7c2e60b7518729..85ad742d4e94345d5ac07755f6722344cfd49603:/etc/prefix-gnulib-mk diff --git a/etc/prefix-gnulib-mk b/etc/prefix-gnulib-mk index 08d22f28..4debcb93 100755 --- a/etc/prefix-gnulib-mk +++ b/etc/prefix-gnulib-mk @@ -10,7 +10,7 @@ my $prefix = "lib/"; sub contents ($) { my ($file) = @_; - local $/; # Turn on slurp-mode. + local $/; # Turn on slurp-mode. my $f = new IO::File "< $file" or die "$file"; my $contents = $f->getline or die "$file"; $f->close; @@ -26,7 +26,7 @@ sub prefix_word ($) { local ($_) = @_; $_ = $prefix . $_ - unless m{^\$\(\w+\)} || $_ eq "Makefile"; + unless /^-/ || m{^\$\(\w+\)} || $_ eq "Makefile" || $_ eq '\\'; return $_; } @@ -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.]+ *: *\S.*)$} {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.