X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=gnulib-tool;h=68531a5e987f027c0eacef32944bdb70e883b2cf;hb=6b9a46e46b9eef8b3fbe92496c9db57ea64d6044;hp=4b66367af67ad793cf1ef8cdc055946f5b0ca8ab;hpb=fd0d369d2cab8949e3627f0a2e6e43bcc896dccb;p=gnulib.git diff --git a/gnulib-tool b/gnulib-tool index 4b66367af..68531a5e9 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -63,20 +63,33 @@ if test -z "${AUTOPOINT}" || test -n "${GETTEXTPATH}"; then AUTOPOINT="${GETTEXTPATH}autopoint" fi +# You can set MAKE. +if test -z "${MAKE}"; then + MAKE=make +fi + # When using GNU sed, turn off as many GNU extensions as possible, # to minimize the risk of accidentally using non-portable features. # However, do this only for gnulib-tool itself, not for the code that # gnulib-tool generates, since we don't want "sed --posix" to leak -# into makefiles. -if (alias) > /dev/null 2>&1 && echo | sed --posix -e d >/dev/null 2>&1; then +# into makefiles. And do it only for sed versions 4.2 or newer, +# because "sed --posix" is buggy in GNU sed 4.1.5, see +# . +if (alias) > /dev/null 2>&1 \ + && echo | sed --posix -e d >/dev/null 2>&1 \ + && case `sed --version | sed -e 's/^[^0-9]*//' -e 1q` in \ + [1-3]* | 4.[01]*) false;; \ + *) true;; \ + esac \ + ; then # Define sed as an alias. # It is not always possible to use aliases. Aliases are guaranteed to work # if the executing shell is bash and either it is invoked as /bin/sh or # is a version >= 2.0, supporting shopt. This is the common case. # Two other approaches (use of a variable $sed or of a function func_sed # instead of an alias) require massive, fragile code changes. - # An other approach (use of function sed) requires `which sed` - but 'which' - # is hard to emulate, due to missing "test -x" on some platforms. + # An other approach (use of function sed) requires `which sed` - but + # 'which' is hard to emulate, due to missing "test -x" on some platforms. if test -n "$BASH_VERSION"; then shopt -s expand_aliases >/dev/null 2>&1 fi @@ -411,7 +424,7 @@ fi # removes the given prefix from the value of the shell variable var. # var should be the name of a shell variable. # Its value should not contain a newline and not start or end with whitespace. -# prefix should not contain the characters "$`\{}|. +# prefix should not contain the characters "$`\{}[]^|. if ( foo=bar; eval 'test "${foo#b}" = ar' ) >/dev/null 2>&1; then func_remove_prefix () { @@ -423,6 +436,12 @@ else { eval "value=\"\$$1\"" prefix="$2" + case "$prefix" in + *.*) + sed_escape_dots='s/\([.]\)/\\\1/g' + prefix=`echo "$prefix" | sed -e "$sed_escape_dots"` + ;; + esac value=`echo "$value" | sed -e "s|^${prefix}||"` eval "$1=\"\$value\"" } @@ -433,7 +452,7 @@ fi # removes the given suffix from the value of the shell variable var. # var should be the name of a shell variable. # Its value should not contain a newline and not start or end with whitespace. -# suffix should not contain the characters "$`\{}|. +# suffix should not contain the characters "$`\{}[]^|. if ( foo=bar; eval 'test "${foo%r}" = ba' ) >/dev/null 2>&1; then func_remove_suffix () { @@ -445,6 +464,12 @@ else { eval "value=\"\$$1\"" suffix="$2" + case "$suffix" in + *.*) + sed_escape_dots='s/\([.]\)/\\\1/g' + suffix=`echo "$suffix" | sed -e "$sed_escape_dots"` + ;; + esac value=`echo "$value" | sed -e "s|${suffix}\$||"` eval "$1=\"\$value\"" } @@ -1366,6 +1391,7 @@ func_get_filelist () { func_lookup_file "modules/$1" sed -n -e "/^Files$sed_extract_prog" < "$lookedup_file" + echo m4/00gnulib.m4 echo m4/gnulib-common.m4 case "$autoconf_minversion" in 2.59) @@ -1379,8 +1405,8 @@ func_get_filelist () # elements starting with prefix and ending with suffix are considered. # Processing: removed_prefix and removed_suffix are removed from each element, # added_prefix and added_suffix are added to each element. -# removed_prefix, removed_suffix should not contain the characters "$`\{}|. -# added_prefix, added_suffix should not contain the characters \|. +# removed_prefix, removed_suffix should not contain the characters "$`\{}[]^|. +# added_prefix, added_suffix should not contain the characters \|&. func_filter_filelist () { if test "$2" != "$nl" \ @@ -1408,7 +1434,7 @@ func_filter_filelist () esac done else - sed_fff_filter="s|^$6\(.*\)$7\\$|$8\\1$9|" + sed_fff_filter="s|^$6\(.*\)$7\$|$8\\1$9|" ffflist=`for fff in $3; do case "$fff" in "$4"*"$5") echo "$fff" ;; @@ -1911,6 +1937,7 @@ func_emit_lib_Makefile_am () if test -z "$makefile_name"; then echo echo "AM_CPPFLAGS =" + echo "AM_CFLAGS =" fi echo if LC_ALL=C grep "^[a-zA-Z0-9_]*_${perhapsLT}LIBRARIES *+\{0,1\}= *$libname\\.$libext\$" allsnippets.tmp > /dev/null; then @@ -3366,9 +3393,6 @@ s,//*$,/,' if test -n "$uses_subdirs"; then echo " AC_REQUIRE([AM_PROG_CC_C_O])" fi - if grep AC_GNU_SOURCE "$destdir"/$m4base/*.m4 >/dev/null 2>/dev/null; then - echo " AC_REQUIRE([AC_GNU_SOURCE])" - fi for module in $final_modules; do func_verify_module if test -n "$module"; then @@ -3557,7 +3581,7 @@ s,//*$,/,' echo "Updating $destdir/$dir$ignore (backup in $destdir/$dir${ignore}~)" mv -f "$destdir/$dir$ignore" "$destdir/$dir$ignore"~ { sed -e 's,/,\\/,g' -e 's,^,/^,' -e 's,$,\$/d,' < "$tmp"/ignore-removed - if test -n "$anchor"; then sed -e 's,/,\\/,g' -e "s,^,/^${doubly_escaped_anchor}," -e 's,$,\$/d,' < "$tmp"/ignore-removed; fi + if test -n "$anchor"; then sed -e 's,/,\\/,g' -e "s,^,/^${doubly_escaped_anchor}," -e 's,$,$/d,' < "$tmp"/ignore-removed; fi } > "$tmp"/sed-ignore-removed { cat "$destdir/$dir$ignore"~ sed -e "s|^|$anchor|" < "$tmp"/ignore-added @@ -3907,10 +3931,6 @@ func_create_testdir () echo "AC_PROG_MAKE_SET" echo "AC_PROG_RANLIB" echo - if grep AC_GNU_SOURCE "$testdir/$m4base"/*.m4 >/dev/null 2>/dev/null; then - echo "AC_GNU_SOURCE" - echo - fi for module in $modules; do func_verify_module if test -n "$module"; then @@ -4040,10 +4060,6 @@ func_create_testdir () echo "AM_PROG_CC_C_O" echo fi - if grep AC_GNU_SOURCE "$testdir/$m4base"/*.m4 >/dev/null 2>/dev/null; then - echo "AC_GNU_SOURCE" - echo - fi for module in $modules; do func_verify_nontests_module if test -n "$module"; then @@ -4182,9 +4198,9 @@ func_create_testdir () ./configure || func_exit 1 cd "$sourcebase" echo 'built_sources: $(BUILT_SOURCES)' >> Makefile - make built_sources || func_exit 1 + $MAKE built_sources || func_exit 1 cd .. - make distclean || func_exit 1 + $MAKE distclean || func_exit 1 ) || func_exit 1 fi } @@ -4237,6 +4253,7 @@ func_create_megatestdir () -e 's,^\([0-9]*\) \([0-9]*\) \([0-9]*\),\3\2\1,'` (echo '#!/bin/sh' echo "CVSDATE=$cvsdate" + echo ": \${MAKE=make}" echo "test -d logs || mkdir logs" echo "for module in $megasubdirs; do" echo " echo \"Working on module \$module...\"" @@ -4248,7 +4265,7 @@ func_create_megatestdir () echo " : autobuild revision... cvs-\$CVSDATE-000000" echo " : autobuild timestamp... \`date \"+%Y%m%d-%H%M%S\"\`" echo " : autobuild hostname... \`hostname\`" - echo " cd \$module && ./configure \$CONFIGURE_OPTIONS && make && make check && make distclean" + echo " cd \$module && ./configure \$CONFIGURE_OPTIONS && \$MAKE && \$MAKE check && \$MAKE distclean" echo " echo rc=\$?" echo " ) 2>&1 | { if test -n \"\$AUTOBUILD_SUBST\"; then sed -e \"\$AUTOBUILD_SUBST\"; else cat; fi; } > logs/\$safemodule" echo "done" @@ -4460,9 +4477,9 @@ case $mode in mkdir build cd build ../configure || func_exit 1 - make || func_exit 1 - make check || func_exit 1 - make distclean || func_exit 1 + $MAKE || func_exit 1 + $MAKE check || func_exit 1 + $MAKE distclean || func_exit 1 remaining=`find . -type f -print` if test -n "$remaining"; then echo "Remaining files:" $remaining 1>&2 @@ -4483,9 +4500,9 @@ case $mode in mkdir build cd build ../configure - make - make check - make distclean + $MAKE + $MAKE check + $MAKE distclean remaining=`find . -type f -print` if test -n "$remaining"; then echo "Remaining files:" $remaining 1>&2