changeset 6994:3484a8772427

Add option --assume-autoconf. Default is back to 2.59.
author Bruno Haible <bruno@clisp.org>
date Thu, 20 Jul 2006 14:51:57 +0000
parents dc8f2a1ff75f
children 9399237a75b5
files ChangeLog gnulib-tool
diffstat 2 files changed, 51 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-07-20  Bruno Haible  <bruno@clisp.org>
+
+	* gnulib-tool: Recognize new option --assume-autoconf.
+	(autoconf_minversion): New variable.
+	(func_get_filelist): Use it to decide whether to add onceonly_2_57.m4.
+
 2006-07-17  Bruno Haible  <bruno@clisp.org>
 
 	* modules/list: New file.
--- a/gnulib-tool
+++ b/gnulib-tool
@@ -22,7 +22,7 @@
 
 progname=$0
 package=gnulib
-cvsdatestamp='$Date: 2006-07-20 14:22:07 $'
+cvsdatestamp='$Date: 2006-07-20 14:51:57 $'
 last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
 version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
 
@@ -101,6 +101,8 @@
       --extract-tests-module       report the unit test module, if it exists
 
 Options:
+      --assume-autoconf=VERSION
+                            Assume a given autoconf version (or newer).
       --avoid=MODULE        Avoid including the given MODULE. Useful if you
                             have code that provides equivalent functionality.
                             This option can be repeated.
@@ -247,6 +249,8 @@
 # - avoidlist       list of modules to avoid, from --avoid
 # - lgpl            true if --lgpl was given, blank otherwise
 # - libtool         true if --libtool was given, blank otherwise
+# - macro_prefix    from --macro-prefix
+# - autoconf_minversion  minimum supported autoconf version
 # - do_changelog    false if --no-changelog was given, : otherwise
 # - doit            : if actions shall be executed, false if only to be printed
 {
@@ -264,6 +268,7 @@
   lgpl=
   libtool=
   macro_prefix=
+  autoconf_minversion=
   do_changelog=:
   doit=:
   symbolic=
@@ -397,6 +402,16 @@
       --macro-prefix=* )
         macro_prefix=`echo "X$1" | sed -e 's/^X--macro-prefix=//'`
         shift ;;
+      --assume-autoconf )
+        shift
+        if test $# = 0; then
+          func_fatal_error "missing argument for --assume-autoconf"
+        fi
+        autoconf_minversion="$1"
+        shift ;;
+      --assume-autoconf=* )
+        autoconf_minversion=`echo "X$1" | sed -e 's/^X--assume-autoconf=//'`
+        shift ;;
       --no-changelog | --no-changelo | --no-changel | --no-change | --no-chang | --no-chan | --no-cha | --no-ch | --no-c )
         do_changelog=false
         shift ;;
@@ -436,7 +451,7 @@
     if test -n "$supplied_libname" || test -n "$sourcebase" || test -n "$m4base" \
        || test -n "$docbase" || test -n "$testsbase" || test -n "$auxdir" \
        || test -n "$inctests" || test -n "$avoidlist" || test -n "$lgpl" \
-       || test -n "$macro_prefix"; then
+       || test -n "$macro_prefix" || test -n "$autoconf_minversion"; then
       echo "gnulib-tool: invalid options for 'update' mode" 1>&2
       echo "Try 'gnulib-tool --help' for more information." 1>&2
       echo "If you really want to modify the gnulib configuration of your project," 1>&2
@@ -446,6 +461,12 @@
     do_changelog=false
   fi
 
+  DEFAULT_AUTOCONF_MINVERSION="2.59"
+  case "$autoconf_minversion" in
+    1.* | 2.[0-4]* | 2.5[0-8]*)
+      func_fatal_error "minimum supported autoconf version is 2.59" ;;
+  esac
+
   # Remove trailing slashes from the directory names. This is necessary for
   # m4base (to avoid an error in func_import) and optional for the others.
   sed_trimtrailingslashes='s,\([^/]\)//*$,\1,'
@@ -565,8 +586,12 @@
 func_get_filelist ()
 {
   sed -n -e "/^Files$sed_extract_prog" < "$gnulib_dir/modules/$1"
-  #echo m4/onceonly.m4
-  #echo m4/onceonly_2_57.m4
+  case "$autoconf_minversion" in
+    2.59)
+      #echo m4/onceonly.m4
+      echo m4/onceonly_2_57.m4
+      ;;
+  esac
 }
 
 # func_get_dependencies module
@@ -902,6 +927,7 @@
 # - libtool         true if libtool will be used, blank otherwise
 # - guessed_libtool true if the configure.ac file uses libtool, blank otherwise
 # - macro_prefix    prefix of gl_EARLY, gl_INIT macros to use
+# - autoconf_minversion  minimum supported autoconf version
 # - doit            : if actions shall be executed, false if only to be printed
 # - symbolic        true if files should be symlinked, copied otherwise
 func_import ()
@@ -917,6 +943,7 @@
   cached_lgpl=
   cached_libtool=
   cached_macro_prefix=
+  cached_autoconf_minversion=
   cached_files=
   if test -f "$destdir"/$m4base/gnulib-cache.m4; then
     my_sed_traces='
@@ -952,6 +979,9 @@
       }
       /gl_MACRO_PREFIX(/ {
         s,^.*gl_MACRO_PREFIX([[ ]*\([^])]*\).*$,cached_macro_prefix="\1",p
+      }
+      /gl_AUTOCONF_MINVERSION(/ {
+        s,^.*gl_AUTOCONF_MINVERSION([[ ]*\([^])]*\).*$,cached_autoconf_minversion="\1",p
       }'
     eval `sed -n -e "$my_sed_traces" < "$destdir"/$m4base/gnulib-cache.m4`
     if test -f "$destdir"/$m4base/gnulib-comp.m4; then
@@ -1034,6 +1064,13 @@
       func_fatal_error "missing --macro-prefix option"
     fi
   fi
+  # The autoconf_minversion defaults to the cached one.
+  if test -z "$autoconf_minversion"; then
+    autoconf_minversion="$cached_autoconf_minversion"
+    if test -z "$autoconf_minversion"; then
+      autoconf_minversion="$DEFAULT_AUTOCONF_MINVERSION"
+    fi
+  fi
 
   # Canonicalize the list of specified modules.
   specified_modules=`for m in $specified_modules; do echo $m; done | LC_ALL=C sort | LC_ALL=C uniq`
@@ -1278,6 +1315,7 @@
     actioncmd="$actioncmd --libtool"
   fi
   actioncmd="$actioncmd --macro-prefix=$macro_prefix"
+  actioncmd="$actioncmd --assume-autoconf=$autoconf_minversion"
   actioncmd="$actioncmd `echo $specified_modules`"
 
   # Create lib/Makefile.am.
@@ -1331,6 +1369,7 @@
     test -z "$lgpl" || echo "gl_LGPL"
     test -z "$libtool" || echo "gl_LIBTOOL"
     echo "gl_MACRO_PREFIX([$macro_prefix])"
+    echo "gl_AUTOCONF_MINVERSION([$autoconf_minversion])"
   ) > "$tmpfile"
   if test -f "$destdir"/$m4base/gnulib-cache.m4; then
     if cmp "$destdir"/$m4base/gnulib-cache.m4 "$tmpfile" > /dev/null; then
@@ -1909,6 +1948,7 @@
         test -n "$docbase" || docbase="doc"
         test -n "$testsbase" || testsbase="tests"
         test -n "$macro_prefix" || macro_prefix="gl"
+        test -n "$autoconf_minversion" || autoconf_minversion="$DEFAULT_AUTOCONF_MINVERSION"
       fi
       func_import "$*"
     else
@@ -1949,6 +1989,7 @@
         test -n "$docbase" || docbase="doc"
         test -n "$testsbase" || testsbase="tests"
         test -n "$macro_prefix" || macro_prefix="gl"
+        test -n "$autoconf_version" || autoconf_version="$DEFAULT_AUTOCONF_MINVERSION"
         func_import "$*"
       else
         if test $m4dirs_count = 1; then