Paul Eggert wrote on 2006-07-09: > While bootstrapping Bison I noticed that gnulib-tool assumes Autoconf > versions 2.57 through 2.59. But Bison assumes 2.60. On the theory > that gnulib-tool should assume the latest stable version, and you > can copy onceonly by hand if you want an earlier one
This theory can damage acceptance of gnulib. Instead, I'm asking to leave people some choice, in order to leave them the freedom to decide _when_ they want to upgrade to a newer autoconf. > I installed this: > > 2006-07-08 Paul Eggert <[EMAIL PROTECTED]> > > * gnulib-tool (func_get_filelist): Don't echo m4/onceonly_2_57.m4, > for the benefit of people using Autoconf 2.60. If you want to > support older Autoconf versions you can copy m4/onceonly_2_57.m4 > (or m4/onceonly.m4, if pre-2.57) manually. I don't like this to be unconditional. So I added a --assume-autoconf command line options. You can use --assume-autoconf=2.60; 2.59 is the default for now. 2006-07-20 Bruno Haible <[EMAIL PROTECTED]> * 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. *** gnulib-tool 20 Jul 2006 14:22:07 -0000 1.118 --- gnulib-tool 20 Jul 2006 14:50:34 -0000 *************** *** 101,106 **** --- 101,108 ---- --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,252 **** --- 249,256 ---- # - 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,269 **** --- 268,274 ---- lgpl= libtool= macro_prefix= + autoconf_minversion= do_changelog=: doit=: symbolic= *************** *** 397,402 **** --- 402,417 ---- --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,442 **** 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 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 --- 451,457 ---- 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" || 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,451 **** --- 461,472 ---- 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,572 **** func_get_filelist () { sed -n -e "/^Files$sed_extract_prog" < "$gnulib_dir/modules/$1" ! #echo m4/onceonly.m4 ! #echo m4/onceonly_2_57.m4 } # func_get_dependencies module --- 586,597 ---- func_get_filelist () { sed -n -e "/^Files$sed_extract_prog" < "$gnulib_dir/modules/$1" ! case "$autoconf_minversion" in ! 2.59) ! #echo m4/onceonly.m4 ! echo m4/onceonly_2_57.m4 ! ;; ! esac } # func_get_dependencies module *************** *** 902,907 **** --- 927,933 ---- # - 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,922 **** --- 943,949 ---- 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,957 **** --- 979,987 ---- } /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,1039 **** --- 1064,1076 ---- 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,1283 **** --- 1315,1321 ---- 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,1336 **** --- 1369,1375 ---- 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,1914 **** --- 1948,1954 ---- 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,1954 **** --- 1989,1995 ---- 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