X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=gnulib-tool;h=4b814de11884fa88bd77ba2a11aa7a3df00ae253;hb=b0d3c1545196ae640d1f6de6c084f15812a9650a;hp=4f782cc1d7837241fa37e8702f91ed3f1329550e;hpb=0e4068587aebac729a06ce96e8dc6d0cf71f881e;p=gnulib.git diff --git a/gnulib-tool b/gnulib-tool index 4f782cc1d..4b814de11 100755 --- 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-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,36 +100,44 @@ Operation modes: --extract-maintainer report the maintainer(s) inside gnulib --extract-tests-module report the unit test module, if it exists -Options: +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 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 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 have code that provides equivalent functionality. This option can be repeated. - --dry-run For --import, only print what would have been done. --lgpl Abort if modules aren't available under the LGPL. Also modify license template from GPL to LGPL. - --lib=LIBRARY Specify the library name. Defaults to 'libgnu'. - --libtool Use libtool rules, for --import. - --macro-prefix=PREFIX Specify the prefix of the macros gl_EARLY and - gl_INIT. Default is "gl". + --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 - -s, --symbolic, --symlink Make symbolic links instead of copying files. - --with-tests Include unit tests for the included modules. -Directory options: - --dir=DIRECTORY specify the target directory - For --import, this specifies where your - configure.ac can be found. Defaults to current - directory. - --aux-dir=DIRECTORY Directory relative to --dir where auxiliary build - tools are placed (default \"build-aux\"). - --doc-base=DIRECTORY Directory relative to --dir where doc files are - placed (default \"doc\"), for --import. - --m4-base=DIRECTORY Directory relative to --dir where *.m4 macros are - placed (default \"m4\"), for --import. - --source-base=DIRECTORY Directory relative to --dir where source code is - placed (default \"lib\"), for --import. - --tests-base=DIRECTORY Directory relative to --dir where unit tests are - placed (default \"tests\"), for --import. +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. Report bugs to ." } @@ -247,6 +255,8 @@ func_ln_if_changed () # - 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 +274,7 @@ func_ln_if_changed () lgpl= libtool= macro_prefix= + autoconf_minversion= do_changelog=: doit=: symbolic= @@ -397,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 ;; @@ -436,7 +457,7 @@ func_ln_if_changed () 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 +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,' @@ -565,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 @@ -902,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 () @@ -917,6 +949,7 @@ func_import () 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 +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 @@ -998,7 +1034,7 @@ func_import () if test -z "$docbase"; then docbase="$cached_docbase" if test -z "$docbase"; then - func_fatal_error "missing --doc-base option" + 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. @@ -1034,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` @@ -1090,12 +1133,15 @@ func_import () echo "Create directory $destdir/$m4base" 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" + 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 @@ -1278,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. @@ -1331,6 +1378,7 @@ func_import () 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 +1957,7 @@ case $mode in 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 +1998,7 @@ case $mode in 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