Jim Meyering wrote: ... > Much of slurp is now obsolete. It was working around problems > in gnulib that have been resolved. > > For example, as far as I can see, removing the following blocks > induces no change in coreutils' build process. > > diff --git a/bootstrap b/bootstrap > index 5ab4cf7..8d15081 100755 > --- a/bootstrap > +++ b/bootstrap > @@ -1,6 +1,6 @@ > #! /bin/sh > # Print a version string. > -scriptversion=2010-07-06.10; # UTC > +scriptversion=2010-09-02.20; # UTC > > # Bootstrap this package from checked-out sources. > > @@ -666,33 +666,12 @@ slurp() { > for excluded_file in $excluded_files; do > test "$dir/$file" = "$excluded_file" && continue 2 > done > - if test $file = Makefile.am && test "X$gnulib_mk" != XMakefile.am; then > - copied=$copied${sep}$gnulib_mk; sep=$nl > - remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g" > - sed "$remove_intl" $1/$dir/$file | cmp - $dir/$gnulib_mk > /dev/null > || { > - echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." && > - rm -f $dir/$gnulib_mk && > - sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk > - } > - elif { test "${2+set}" = set && test -r $2/$dir/$file; } || > + if { test "${2+set}" = set && test -r $2/$dir/$file; } ||
Actually, I cannot remove the above block for three reasons: * modules/gettext inserts this line in Makefile.am (sometimes aka gnulib.mk) AM_CPPFLAGS += -I$(top_builddir)/intl and the above code comments that out. That commenting-out is required for any project that does not provide an intl/ directory. Otherwise, gcc fails with this: cc1: error: ../intl: No such file or directory For example, coreutils has no "intl" directory, and I was unwilling to distribute (or create) an empty intl/ directory solely to avoid this problem. * The other part of that sed transformation (involving bt_regex) is required in order to make changes like this: - < $(top_srcdir)/build-aux/unused-parameter.h \ + < $(top_srcdir)/._bootmp/build-aux/unused-parameter.h \ * Perhaps most importantly, without that block, bootstrap would fail to update coreutils/lib/gnulib.mk to reflect changes in gnulib.