coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] build: move non-recursive-gnulib-prefix-hack to gnulib; update


From: Jim Meyering
Subject: [PATCH] build: move non-recursive-gnulib-prefix-hack to gnulib; update
Date: Thu, 20 Sep 2012 18:10:53 +0200

FYI, no semantic change:

>From 958bef88f9a0471544d2ff4826e7e6d0483e9b1b Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Thu, 20 Sep 2012 17:47:25 +0200
Subject: [PATCH] build: move non-recursive-gnulib-prefix-hack to gnulib;
 update

I've moved the non-recursive-gnulib-prefix-hack module to
gnulib, with two small improvements, so remove it from here
and update gnulib to the latest.
* gl/build-aux/prefix-gnulib-mk: Remove file.
* gl/m4/non-recursive-gnulib-prefix-hack.m4: Remove file.
* gl/modules/non-recursive-gnulib-prefix-hack: Remove file.
* gnulib: Update to latest.
---
 gl/build-aux/prefix-gnulib-mk               | 243 ----------------------------
 gl/m4/non-recursive-gnulib-prefix-hack.m4   |  35 ----
 gl/modules/non-recursive-gnulib-prefix-hack |  25 ---
 gnulib                                      |   2 +-
 4 files changed, 1 insertion(+), 304 deletions(-)
 delete mode 100755 gl/build-aux/prefix-gnulib-mk
 delete mode 100644 gl/m4/non-recursive-gnulib-prefix-hack.m4
 delete mode 100644 gl/modules/non-recursive-gnulib-prefix-hack

diff --git a/gl/build-aux/prefix-gnulib-mk b/gl/build-aux/prefix-gnulib-mk
deleted file mode 100755
index f0806d7..0000000
--- a/gl/build-aux/prefix-gnulib-mk
+++ /dev/null
@@ -1,243 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
-  & eval 'exec perl -wS "$0" $argv:q'
-    if 0;
-
-use strict;
-use IO::File;
-use Getopt::Long;
-use File::Basename; # for dirname
-
-my $VERSION = '2012-01-21 17:13'; # UTC
-(my $ME = $0) =~ s|.*/||;
-
-my $prefix;
-my $lib_name;
-
-sub usage ($)
-{
-  my ($exit_code) = @_;
-  my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
-  if ($exit_code != 0)
-    {
-      print $STREAM "Try '$ME --help' for more information.\n";
-    }
-  else
-    {
-      print $STREAM <<EOF;
-Usage: $ME --lib-name=NAME FILE
-   or: $ME [--help|--version]
-Rewrite a gnulib-tool-generated FILE like lib/gnulib.mk to work with
-automake's subdir-objects.
-
-OPTIONS:
-
-This option must be specified:
-
-   --lib-name=NAME    library name, often "lib\$project"
-
-The following are optional:
-
-   --help             display this help and exit
-   --version          output version information and exit
-
-EOF
-    }
-  exit $exit_code;
-}
-
-# contents ($FILE_NAME)
-# ---------------------
-sub contents ($)
-{
-  my ($file) = @_;
-  local $/;                     # Turn on slurp-mode.
-  my $f = new IO::File "< $file" or die "$file";
-  my $contents = $f->getline or die "$file";
-  $f->close;
-  return $contents;
-}
-
-# prefix_word ($WORD)
-# -------------------
-# Do not prefix special words such as variable dereferences.  Also,
-# "Makefile" is really "Makefile", since precisely there is no
-# lib/Makefile.
-sub prefix_word ($)
-{
-  local ($_) = @_;
-  $_ = $prefix . $_
-    unless (/^-/ || m{^\$\(\w+\)} || $_ eq "Makefile" || $_ eq '\\'
-            || $_ eq '@ALLOCA@');
-  return $_;
-}
-
-
-# prefix_words ($TEXT)
-# --------------------
-sub prefix_words ($)
-{
-  local ($_) = @_;
-  s{(\S+)}{prefix_word($1)}gem;
-  return $_;
-}
-
-
-# prefix_assignment ($LHS-AND-ASSIGN-OP, $RHS)
-# --------------------------------------------
-sub prefix_assignment ($$)
-{
-  my ($lhs_and_assign_op, $rhs) = @_;
-  my $res;
-
-  # Some variables are initialized by gnulib.mk, and we don't want
-  # that.  Change '=' to '+='.
-  if ($lhs_and_assign_op =~ /^GPERF =$/)
-    {
-      # Do not change the RHS, which specifies the GPERF program.
-    }
-  elsif ($lhs_and_assign_op =~
-      /^(SUBDIRS|EXTRA_DIST|BUILT_SOURCES|SUFFIXES|MOSTLYCLEANFILES
-         |CLEANFILES|DISTCLEANFILES|MAINTAINERCLEANFILES|AM_CFLAGS
-         |AM_CPPFLAGS|AM_GNU_GETTEXT)\ =/x)
-    {
-      $lhs_and_assign_op =~ s/=/+=/;
-    }
-  # We don't want to inherit gnulib's AUTOMAKE_OPTIONS, comment them.
-  elsif ($lhs_and_assign_op =~ /^AUTOMAKE_OPTIONS =/)
-    {
-      $lhs_and_assign_op =~ s/^/# /;
-    }
-  elsif ($lhs_and_assign_op =~ /^SUFFIXES /)
-    {
-      # Elide any SUFFIXES assignment or concatenation.
-      $lhs_and_assign_op =~ s/^/# /;
-    }
-  # The words are (probably) paths to files in lib/: prefix them.
-  else
-    {
-      $rhs = prefix_words($rhs)
-    }
-
-  # Variables which name depend on the location: libbison_a_SOURCES =>
-  # lib_libbison_a_SOURCES.
-  $lhs_and_assign_op =~ s/($lib_name)/lib_$1/g;
-
-  return $lhs_and_assign_op . $rhs;
-}
-
-# prefix $CONTENTS
-# ----------------
-# $CONTENTS is a Makefile content.  Post-process it so that each file-name
-# is prefixed with $prefix (e.g., "lib/").
-#
-# Relies heavily on the regularity of the file generated by gnulib-tool.
-sub prefix ($)
-{
-  # Work on $_.
-  local ($_) = @_;
-
-  # 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.*)$}
-   {prefix_words($1)}gem;
-
-  # Prefix files in variables.
-  s{^([\w.]+\s*\+?=)(.*)$}
-   {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;
-  # Unfortunately, as a result we sometimes have lib/lib.
-  s{($prefix){2}}{$1}g;
-
-  # lib_libcoreutils_a_SOURCES += \
-  #   imaxtostr.c \
-  #   inttostr.c \
-  #   offtostr.c \
-  #   uinttostr.c \
-  #   umaxtostr.c
-  # The above are not handled since they're on continued lines, so
-  # deal with them manually:
-  s{^  ((?:[ui]max|u?int|off)tostr\.c(:? \\)?)$}{  $prefix$1}gm;
-
-  # $(srcdir)/ is actually $(top_srcdir)/$prefix/.
-  # The trailing slash is required to avoid matching this rule:
-  #   test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile
-  s{\$\(srcdir\)/}{\$(top_srcdir)/$prefix}g;
-
-  # Sometimes, t-$@ is used instead of $@-t, which, of course, does
-  # 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 $_;
-}
-
-# process ($IN)
-# -------------
-sub process ($)
-{
-  my ($file) = @_;
-  my ($bak) = "$file.bak";
-  rename ($file, $bak) or die;
-  my $contents = contents ($bak);
-  $contents = prefix ($contents);
-  my $out = new IO::File(">$file") or die;
-  print $out $contents;
-}
-
-{
-  GetOptions
-    (
-     'lib-name=s' => \$lib_name,
-     help => sub { usage 0 },
-     version => sub { print "$ME version $VERSION\n"; exit },
-    ) or usage 1;
-
-  my $fail = 0;
-  defined $lib_name
-    or (warn "$ME: no library name; use --lib-name=NAME\n"), $fail = 1;
-
-  # There must be exactly one argument.
-  @ARGV == 0
-    and (warn "$ME: missing FILE argument\n"), $fail = 1;
-  1 < @ARGV
-    and (warn "$ME: too many arguments:\n", join ("\n", @ARGV), "\n"),
-      $fail = 1;
-  $fail
-    and usage 1;
-
-  my $file = $ARGV[0];
-  $prefix = (dirname $file) . '/';
-  warn "prefix=$prefix\n";
-
-  process $file;
-}
-
-### Setup "GNU" style for perl-mode and cperl-mode.
-## Local Variables:
-## perl-indent-level: 2
-## perl-continued-statement-offset: 2
-## perl-continued-brace-offset: 0
-## perl-brace-offset: 0
-## perl-brace-imaginary-offset: 0
-## perl-label-offset: -2
-## cperl-indent-level: 2
-## cperl-brace-offset: 0
-## cperl-continued-brace-offset: 0
-## cperl-label-offset: -2
-## cperl-extra-newline-before-brace: t
-## cperl-merge-trailing-else: nil
-## cperl-continued-statement-offset: 2
-## eval: (add-hook 'write-file-hooks 'time-stamp)
-## time-stamp-start: "my $VERSION = '"
-## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
-## time-stamp-time-zone: "UTC"
-## time-stamp-end: "'; # UTC"
-## End:
diff --git a/gl/m4/non-recursive-gnulib-prefix-hack.m4 
b/gl/m4/non-recursive-gnulib-prefix-hack.m4
deleted file mode 100644
index aeb0cc4..0000000
--- a/gl/m4/non-recursive-gnulib-prefix-hack.m4
+++ /dev/null
@@ -1,35 +0,0 @@
-dnl Copyright (C) 2012 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl gl_NON_RECURSIVE_GNULIB_PREFIX_HACK LIB_DIR
-dnl Adjust configure-set $gl_LIBOBJS and each AC_SUBST'd *_H variable
-dnl with a value ending in ".h" to reflect that these files are located
-dnl in the directory specified by LIB_DIR.
-AC_DEFUN([gl_NON_RECURSIVE_GNULIB_PREFIX_HACK],
-[
-  # Tell AC_LIBSOURCES where to find source files like alloca.c.
-  AC_CONFIG_LIBOBJ_DIR([lib])
-
-  # This hack originated in bison.  It is required when using non-recursive
-  # automake rules to build from gnulib-provided lib/ sources.  Hence, LIB_DIR
-  # is usually simply "lib".  Those rules use the list of names like "fchdir.o"
-  # and "strstr.o" in gl_LIBOBJS.  With non-recursive make, we must prefix each
-  # such file name with the "lib/" prefix.  See also 
build-aux/prefix-gnulib-mk.
-  gl_LIBOBJS=`echo "$gl_LIBOBJS" | sed -e 's, , $1/,g'`
-
-  # Listing the names of the variables to prefix is error-prone.
-  # Rather, adjust each AC_SUBST'd variable whose name ends in '_H'
-  # and whose value ends in '.h'.
-  for ac_var in $ac_subst_vars
-  do
-    eval "ac_val=\$$ac_var"
-    case $ac_var:$ac_val in
-      (*_H:*.h) eval "$ac_var=$1/\$$ac_var";;
-    esac
-  done
-
-  # If $ALLOCA is not empty, prefix its value with "lib/".
-  test -n "$ALLOCA" && ALLOCA="lib/$ALLOCA"
-])
diff --git a/gl/modules/non-recursive-gnulib-prefix-hack 
b/gl/modules/non-recursive-gnulib-prefix-hack
deleted file mode 100644
index 26cd914..0000000
--- a/gl/modules/non-recursive-gnulib-prefix-hack
+++ /dev/null
@@ -1,25 +0,0 @@
-Description:
-Compute a good buffer size for dealing with two files.
-
-Files:
-build-aux/prefix-gnulib-mk
-m4/non-recursive-gnulib-prefix-hack.m4
-
-Depends-on:
-
-configure.ac:
-dnl Run our hack near the end, just before config.status creation.
-dnl It must happen late, i.e., after gl_LIBOBJS has been finalized.
-AC_CONFIG_COMMANDS_PRE([
-  gl_NON_RECURSIVE_GNULIB_PREFIX_HACK([lib])
-  ])
-
-Makefile.am:
-
-Include:
-
-License:
-unlimited
-
-Maintainer:
-Jim Meyering
diff --git a/gnulib b/gnulib
index 3ff028f..0e9bac3 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 3ff028fd56c2aa14ce5e380e81b91e27a0bf8e2c
+Subproject commit 0e9bac3a27f8e956911b787329bec6bf81d9c004
--
1.7.12.1.382.gb0576a6



reply via email to

[Prev in Thread] Current Thread [Next in Thread]