X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=gnulib-tool;h=4fb7d5e62ac8012de3e0a1014c4474631973fca4;hb=d0fe5568668882bc8f9682aa40efda822f8f9c94;hp=7a71916fa18615c2bd8b674b17e720968c367b48;hpb=de37c14fffd3132478c19b8eb4be6026338d974a;p=gnulib.git diff --git a/gnulib-tool b/gnulib-tool index 7a71916fa..4fb7d5e62 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -22,7 +22,7 @@ progname=$0 package=gnulib -cvsdatestamp='$Date: 2006-09-18 17:03:47 $' +cvsdatestamp='$Date: 2006-10-07 14:54:51 $' last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'` version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'` nl=' @@ -157,11 +157,12 @@ Report bugs to ." func_version () { year=`echo "$last_checkin_date" | sed -e 's,/.*$,,'` - echo "$progname (GNU $package) $version" - echo "Copyright (C) $year Free Software Foundation, Inc. + echo "\ +$progname (GNU $package) $version +Copyright (C) $year Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - echo "Written by" "Bruno Haible" "and" "Simon Josefsson" +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +Written by" "Bruno Haible" "and" "Simon Josefsson" } # func_emit_copyright_notice @@ -179,6 +180,13 @@ func_emit_copyright_notice () echo "# Generated by gnulib-tool." } +# func_exit STATUS +# exit with status +func_exit () +{ + (exit $1); exit $1 +} + # func_tmpdir # creates a temporary directory. # Sets variable @@ -206,7 +214,7 @@ func_tmpdir () } || { echo "$0: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } + func_exit 1 } } @@ -232,7 +240,7 @@ func_fatal_error () { echo "gnulib-tool: *** $1" 1>&2 echo "gnulib-tool: *** Stop." 1>&2 - exit 1 + func_exit 1 } # func_readlink SYMLINK @@ -567,10 +575,10 @@ func_relconcat () shift ;; --help | --hel | --he | --h ) func_usage - exit 0 ;; + func_exit $? ;; --version | --versio | --versi | --vers | --ver | --ve | --v ) func_version - exit 0 ;; + func_exit $? ;; -- ) # Stop option processing shift @@ -578,7 +586,7 @@ func_relconcat () -* ) echo "gnulib-tool: unknown option $1" 1>&2 echo "Try 'gnulib-tool --help' for more information." 1>&2 - exit 1 ;; + func_exit 1 ;; * ) break ;; esac @@ -590,7 +598,7 @@ func_relconcat () 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 echo "you need to use 'gnulib --import' - at your own risk!" 1>&2 - exit 1 + func_exit 1 fi if test -n "$local_gnulib_dir" || test -n "$supplied_libname" \ || test -n "$sourcebase" || test -n "$m4base" \ @@ -601,7 +609,7 @@ func_relconcat () 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 echo "you need to use 'gnulib --import' - at your own risk!" 1>&2 - exit 1 + func_exit 1 fi do_changelog=false fi @@ -704,7 +712,16 @@ done gnulib_dir=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'` func_tmpdir -trap 'rm -rf "$tmp"' 0 1 2 3 15 +trap 'exit_status=$? + if test "$signal" != 0; then + echo "caught signal $signal" >&2 + fi + rm -rf "$tmp" + exit $exit_status' 0 +for signal in 1 2 3 13 15; do + trap '{ signal='$signal'; func_exit 1; }' $signal +done +signal=0 # func_lookup_file file # looks up a file in $local_gnulib_dir or $gnulib_dir, or combines it through @@ -1067,8 +1084,9 @@ func_emit_lib_Makefile_am () else libext=a perhapsLT= - sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d' + sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d' fi + echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!" echo "## Process this file with automake to produce Makefile.in." func_emit_copyright_notice if test -n "$actioncmd"; then @@ -1076,8 +1094,7 @@ func_emit_lib_Makefile_am () fi echo if test -z "$makefile_name"; then - # No need to generate dependencies since the sources are in gnulib, not here. - echo "AUTOMAKE_OPTIONS = 1.5 gnits no-dependencies" + echo "AUTOMAKE_OPTIONS = 1.5 gnits" fi echo ( @@ -1180,9 +1197,10 @@ func_emit_tests_Makefile_am () sed_eliminate_LDFLAGS= else libext=a - sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d' + sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d' fi testsbase_inverse=`echo "$testsbase" | sed -e 's,/$,,' | sed -e 's,[^/][^/]*,..,g'` + echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!" echo "## Process this file with automake to produce Makefile.in." func_emit_copyright_notice echo @@ -1674,11 +1692,11 @@ func_import () | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" > "$tmp"/added-files { # Rearrange file descriptors. Needed because "while ... done < ..." # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh. - exec 5<&1 < "$tmp"/added-files + exec 5<&0 < "$tmp"/added-files while read g f; do func_add_or_update done - exec 1<&5 5<&- + exec 0<&5 5<&- } # Then the files that are in new-files and in old-files: already_present=true @@ -1687,11 +1705,11 @@ func_import () | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" > "$tmp"/kept-files { # Rearrange file descriptors. Needed because "while ... done < ..." # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh. - exec 5<&1 < "$tmp"/kept-files + exec 5<&0 < "$tmp"/kept-files while read g f; do func_add_or_update done - exec 1<&5 5<&- + exec 0<&5 5<&- } # Command-line invocation printed in a comment in generated gnulib-cache.m4. @@ -1830,6 +1848,7 @@ func_import () # Create m4/gnulib-comp.m4. func_dest_tmpfilename $m4base/gnulib-comp.m4 ( + echo "# DO NOT EDIT! GENERATED AUTOMATICALLY!" func_emit_copyright_notice echo "#" echo "# This file represents the compiled summary of the specification in" @@ -1870,6 +1889,7 @@ func_import () echo " gl_libdeps=" echo " gl_ltlibdeps=" fi + echo " gl_source_base='$sourcebase'" if test "$auxdir" != "build-aux"; then sed_replace_build_aux=' :a @@ -2081,7 +2101,7 @@ func_create_testdir () > "$tmp"/files { # Rearrange file descriptors. Needed because "while ... done < ..." # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh. - exec 5<&1 < "$tmp"/files + exec 5<&0 < "$tmp"/files while read g f; do func_lookup_file "$f" if test -n "$lookedup_tmp"; then @@ -2095,7 +2115,7 @@ func_create_testdir () fi fi done - exec 1<&5 5<&- + exec 0<&5 5<&- } # Create $sourcebase/Makefile.am. @@ -2165,6 +2185,7 @@ func_create_testdir () echo "gl_libdeps=" echo "gl_ltlibdeps=" fi + echo "gl_source_base='$testsbase'" # Wrap the set of autoconf snippets into an autoconf macro that is then # invoked. This is needed because autoconf does not support AC_REQUIRE # at the top level: @@ -2273,6 +2294,7 @@ func_create_testdir () echo "gl_libdeps=" echo "gl_ltlibdeps=" fi + echo "gl_source_base='$sourcebase'" # Wrap the set of autoconf snippets into an autoconf macro that is then # invoked. This is needed because autoconf does not support AC_REQUIRE # at the top level: @@ -2362,8 +2384,9 @@ func_create_megatestdir () func_append megasubdirs "$onemodule " done # Then, all modules all together. + # Except config-h, which breaks all modules which use HAVE_CONFIG_H. # Except fnmatch-posix, which conflicts with fnmatch-gnu. FIXME. - allmodules=`for m in $allmodules; do if test $m != fnmatch-posix; then echo $m; fi; done` + allmodules=`for m in $allmodules; do if test $m != config-h && test $m != fnmatch-posix; then echo $m; fi; done` func_create_testdir "$megatestdir/ALL" "$allmodules" func_append megasubdirs "ALL" @@ -2532,7 +2555,7 @@ case $mode in # local_gnulib_dir, avoidlist, sourcebase, m4base, docbase, # testsbase, libname, lgpl, makefile_name, libtool, macro_prefix # don't propagate from one directory to another. - (func_import) || exit 1 + (func_import) || func_exit 1 done else # Really ambiguous. @@ -2579,7 +2602,7 @@ case $mode in if test -n "$remaining"; then echo "Remaining files:" $remaining 1>&2 echo "gnulib-tool: *** Stop." 1>&2 - exit 1 + func_exit 1 fi cd .. cd .. @@ -2602,7 +2625,7 @@ case $mode in if test -n "$remaining"; then echo "Remaining files:" $remaining 1>&2 echo "gnulib-tool: *** Stop." 1>&2 - exit 1 + func_exit 1 fi cd .. cd .. @@ -2705,12 +2728,12 @@ esac rm -rf "$tmp" # Undo the effect of the previous 'trap' command. Some shellology: -# We cannot use "trap - 0 1 2 3 15", because Solaris sh would attempt to +# We cannot use "trap - 0 1 2 3 13 15", because Solaris sh would attempt to # execute the command "-". "trap '' ..." is fine only for signal 0 (= normal # exit); for the others we need to call 'exit' explicitly. The value of $? is # 128 + signal number and is set before the trap-registered command is run. trap '' 0 -trap 'exit $?' 1 2 3 15 +trap 'func_exit $?' 1 2 3 13 15 exit 0