X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=gnulib-tool;h=4b814de11884fa88bd77ba2a11aa7a3df00ae253;hb=b0d3c1545196ae640d1f6de6c084f15812a9650a;hp=22b3e82750709b0b1d66f54e31fc5cb13ec04b8a;hpb=f8bbf85b40c600eba6fa9b6ec91db9b48f842755;p=gnulib.git diff --git a/gnulib-tool b/gnulib-tool index 22b3e8275..4b814de11 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -22,7 +22,7 @@ progname=$0 package=gnulib -cvsdatestamp='$Date: 2006-07-11 12:58:27 $' +cvsdatestamp='$Date: 2006-07-29 13:10:38 $' last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'` version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'` @@ -100,23 +100,29 @@ Operation modes: --extract-maintainer report the maintainer(s) inside gnulib --extract-tests-module report the unit test module, if it exists -Options: - --dir=DIRECTORY specify the target directory +General options: + --dir=DIRECTORY Specify the target directory. For --import, this specifies where your configure.ac can be found. Defaults to current directory. + --assume-autoconf=VERSION + Assume a given autoconf version (or newer). + If VERSION is 'latest-stable', assume the latest + stable version. + +Options for --import: --lib=LIBRARY Specify the library name. Defaults to 'libgnu'. --source-base=DIRECTORY - Directory relative --dir where source code is - placed (default \"lib\"), for --import. - --m4-base=DIRECTORY Directory relative --dir where *.m4 macros are - placed (default \"m4\"), for --import. + Directory relative to --dir where source code is + placed (default \"lib\"). + --m4-base=DIRECTORY Directory relative to --dir where *.m4 macros are + placed (default \"m4\"). + --doc-base=DIRECTORY Directory relative to --dir where doc files are + placed (default \"doc\"). --tests-base=DIRECTORY - Directory relative --dir where unit tests are - placed (default \"tests\"), for --import. - --doc-base=DIRECTORY Directory relative --dir where doc files are - placed (default \"doc\"), for --import. - --aux-dir=DIRECTORY Directory relative --dir where auxiliary build + Directory relative to --dir where unit tests are + placed (default \"tests\"). + --aux-dir=DIRECTORY Directory relative to --dir where auxiliary build tools are placed (default \"build-aux\"). --with-tests Include unit tests for the included modules. --avoid=MODULE Avoid including the given MODULE. Useful if you @@ -124,10 +130,12 @@ Options: This option can be repeated. --lgpl Abort if modules aren't available under the LGPL. Also modify license template from GPL to LGPL. - --libtool Use libtool rules, for --import. + --libtool Use libtool rules. --macro-prefix=PREFIX Specify the prefix of the macros 'gl_EARLY' and 'gl_INIT'. Default is 'gl'. --no-changelog don't update or create ChangeLog files + +Options for --import and --update: --dry-run For --import, only print what would have been done. -s, --symbolic, --symlink Make symbolic links instead of copying files. @@ -240,13 +248,15 @@ func_ln_if_changed () # - libname, supplied_libname from --lib # - sourcebase from --source-base # - m4base from --m4-base -# - testsbase from --tests-base # - docbase from --doc-base +# - testsbase from --tests-base # - auxdir from --aux-dir # - inctests true if --with-tests was given, blank otherwise # - 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 { @@ -256,6 +266,7 @@ func_ln_if_changed () supplied_libname= sourcebase= m4base= + docbase= testsbase= auxdir= inctests= @@ -263,6 +274,7 @@ func_ln_if_changed () lgpl= libtool= macro_prefix= + autoconf_minversion= do_changelog=: doit=: symbolic= @@ -337,16 +349,6 @@ func_ln_if_changed () --m4-base=* ) m4base=`echo "X$1" | sed -e 's/^X--m4-base=//'` shift ;; - --tests-base ) - shift - if test $# = 0; then - func_fatal_error "missing argument for --tests-base" - fi - testsbase=$1 - shift ;; - --tests-base=* ) - testsbase=`echo "X$1" | sed -e 's/^X--tests-base=//'` - shift ;; --doc-base ) shift if test $# = 0; then @@ -357,6 +359,16 @@ func_ln_if_changed () --doc-base=* ) docbase=`echo "X$1" | sed -e 's/^X--doc-base=//'` shift ;; + --tests-base ) + shift + if test $# = 0; then + func_fatal_error "missing argument for --tests-base" + fi + testsbase=$1 + shift ;; + --tests-base=* ) + testsbase=`echo "X$1" | sed -e 's/^X--tests-base=//'` + shift ;; --aux-dir ) shift if test $# = 0; then @@ -396,6 +408,16 @@ func_ln_if_changed () --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 ;; @@ -433,9 +455,9 @@ func_ln_if_changed () exit 1 fi if test -n "$supplied_libname" || test -n "$sourcebase" || test -n "$m4base" \ - || test -n "$testsbase" || test -n "$auxdir" || test -n "$inctests" \ - || test -n "$docbase" \ - || test -n "$avoidlist" || test -n "$lgpl" || test -n "$macro_prefix"; then + || 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 @@ -445,6 +467,12 @@ func_ln_if_changed () 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,' @@ -454,12 +482,12 @@ func_ln_if_changed () case "$m4base" in */ ) m4base=`echo "$m4base" | sed -e "$sed_trimtrailingslashes"` ;; esac - case "$testsbase" in - */ ) testsbase=`echo "$testsbase" | sed -e "$sed_trimtrailingslashes"` ;; - esac case "$docbase" in */ ) docbase=`echo "$docbase" | sed -e "$sed_trimtrailingslashes"` ;; esac + case "$testsbase" in + */ ) testsbase=`echo "$testsbase" | sed -e "$sed_trimtrailingslashes"` ;; + esac case "$auxdir" in */ ) auxdir=`echo "$auxdir" | sed -e "$sed_trimtrailingslashes"` ;; esac @@ -564,8 +592,12 @@ func_get_description () 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 @@ -892,8 +924,8 @@ func_emit_tests_Makefile_am () # - libname library name # - sourcebase directory relative to destdir where to place source code # - m4base directory relative to destdir where to place *.m4 macros -# - testsbase directory relative to destdir where to place unit test code # - docbase directory relative to destdir where to place doc files +# - testsbase directory relative to destdir where to place unit test code # - auxdir directory relative to destdir where to place build aux files # - inctests true if --with-tests was given, blank otherwise # - avoidlist list of modules to avoid, from --avoid @@ -901,6 +933,7 @@ func_emit_tests_Makefile_am () # - 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 () @@ -910,12 +943,13 @@ func_import () cached_avoidlist= cached_sourcebase= cached_m4base= - cached_testsbase= cached_docbase= + cached_testsbase= cached_libname= cached_lgpl= cached_libtool= cached_macro_prefix= + cached_autoconf_minversion= cached_files= if test -f "$destdir"/$m4base/gnulib-cache.m4; then my_sed_traces=' @@ -934,12 +968,12 @@ func_import () /gl_M4_BASE(/ { s,^.*gl_M4_BASE([[ ]*\([^])]*\).*$,cached_m4base="\1",p } - /gl_TESTS_BASE(/ { - s,^.*gl_TESTS_BASE([[ ]*\([^])]*\).*$,cached_testsbase="\1",p - } /gl_DOC_BASE(/ { s,^.*gl_DOC_BASE([[ ]*\([^])]*\).*$,cached_docbase="\1",p } + /gl_TESTS_BASE(/ { + s,^.*gl_TESTS_BASE([[ ]*\([^])]*\).*$,cached_testsbase="\1",p + } /gl_LIB(/ { s,^.*gl_LIB([[ ]*\([^])]*\).*$,cached_libname="\1",p } @@ -951,6 +985,9 @@ func_import () } /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 @@ -993,6 +1030,13 @@ func_import () func_fatal_error "missing --source-base option" fi fi + # The docbase defaults to the cached one. + if test -z "$docbase"; then + docbase="$cached_docbase" + if test -z "$docbase"; then + func_fatal_error "missing --doc-base option. --doc-base has been introduced on 2006-07-11; if your last invocation of 'gnulib-tool --update' is before that date, you need to run 'gnulib-tool --update' once, with a --doc-base option." + fi + fi # The testsbase defaults to the cached one. if test -z "$testsbase"; then testsbase="$cached_testsbase" @@ -1000,13 +1044,6 @@ func_import () func_fatal_error "missing --tests-base option" fi fi - # The docbase defaults to the cached one. - if test -z "$docbase"; then - docbase="$cached_docbase" - if test -z "$docbase"; then - func_fatal_error "missing --doc-base option" - fi - fi # The libname defaults to the cached one. if test -z "$supplied_libname"; then libname="$cached_libname" @@ -1033,6 +1070,13 @@ func_import () 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` @@ -1089,6 +1133,17 @@ func_import () echo "Create directory $destdir/$m4base" fi fi + docfiles=`echo "$files" | sed -n -e 's,^doc/,,p'` + if test -n "$docfiles"; then + if test ! -d "$destdir/$docbase"; then + if $doit; then + echo "Creating directory $destdir/$docbase" + mkdir "$destdir/$docbase" || func_fatal_error "failed" + else + echo "Create directory $destdir/$docbase" + fi + fi + fi if test -n "$inctests"; then if test ! -d "$destdir/$testsbase"; then if $doit; then @@ -1099,14 +1154,6 @@ func_import () fi fi fi - if test ! -d "$destdir/$docbase"; then - if $doit; then - echo "Creating directory $destdir/$docbase" - mkdir "$destdir/$docbase" || func_fatal_error "failed" - else - echo "Create directory $destdir/$docbase" - fi - fi if test ! -d "$destdir/$auxdir"; then if $doit; then echo "Creating directory $destdir/$auxdir" @@ -1277,6 +1324,7 @@ func_import () 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. @@ -1324,12 +1372,13 @@ func_import () echo "gl_AVOID([$avoidlist])" echo "gl_SOURCE_BASE([$sourcebase])" echo "gl_M4_BASE([$m4base])" - echo "gl_TESTS_BASE([$testsbase])" echo "gl_DOC_BASE([$docbase])" + echo "gl_TESTS_BASE([$testsbase])" echo "gl_LIB([$libname])" 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 @@ -1905,9 +1954,10 @@ case $mode in # First use of gnulib in the given m4base. test -n "$supplied_libname" || supplied_libname=true test -n "$sourcebase" || sourcebase="lib" - test -n "$testsbase" || testsbase="tests" 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 @@ -1945,9 +1995,10 @@ case $mode in test -n "$supplied_libname" || supplied_libname=true test -n "$sourcebase" || sourcebase="lib" m4base="m4" - test -n "$testsbase" || testsbase="tests" 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