X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/e69807f074a9889e8a7243a20b40722a8710b008..0ec99547cd2d9fa684f874b8a9b3fd0193868e31:/ltmain.sh diff --git a/ltmain.sh b/ltmain.sh index 09bbad64d..e9350b3fa 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -1,6 +1,7 @@ # ltmain.sh - Provide generalized library-building support services. -# Generated automatically from ltmain.sh.in by configure. -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# NOTE: Changing this file will not affect anything until you rerun ltconfig. +# +# Copyright (C) 1996-1998 Free Software Foundation, Inc. # Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify @@ -22,51 +23,26 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -echo=echo -if test X`$echo '\t'` = 'X\t'; then : -else - # The Solaris and AIX default echo program unquotes backslashes. - # This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # So, we emulate echo with printf '%s\n' - echo='printf %s\\n' - if test X`$echo '\t'` = 'X\t'; then : - else - # Oops. We have no working printf. Try to find a not-so-buggy echo. - echo=echo - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - save_PATH="$PATH" - PATH="$PATH":/usr/ucb - for dir in $PATH; do - if test -f $dir/echo && test X`$dir/echo '\t'` = 'X\t'; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - PATH="$save_PATH" - fi -fi - # The name of this program. progname=`$echo "$0" | sed 's%^.*/%%'` +modename="$progname" # Constants. PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.0b +VERSION=1.2 default_mode= help="Try \`$progname --help' for more information." magic="%%%MAGIC variable%%%" mkdir="mkdir" mv="mv -f" -objdir=.libs rm="rm -f" # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([\\"$]\)/\\\1/g' +Xsed='sed -e s/^X//' +sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' # NLS nuisances. # Only set LANG and LC_ALL to C if already set. @@ -76,15 +52,14 @@ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "$LTCONFIG_VERSION" != "$VERSION"; then - $echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi -# if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - $echo "$progname: not configured to build any kind of library" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$modename: not configured to build any kind of library" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi @@ -105,7 +80,7 @@ do shift case "$arg" in - -*=*) optarg=`$echo "$arg" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac @@ -132,7 +107,7 @@ do ;; --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION" + echo "$PROGRAM (GNU $PACKAGE) $VERSION" exit 0 ;; @@ -141,16 +116,16 @@ do ;; --features) - $echo "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" + echo "enable shared libraries" else - $echo "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $echo "enable static libraries" + echo "enable static libraries" else - $echo "disable static libraries" + echo "disable static libraries" fi exit 0 ;; @@ -170,7 +145,7 @@ do ;; -*) - $echo "$progname: unrecognized option \`$arg'" 1>&2 + $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -183,7 +158,7 @@ do done if test -n "$prevopt"; then - $echo "$progname: option \`$prevopt' requires an argument" 1>&2 + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -193,7 +168,7 @@ if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then case "$nonopt" in - *cc) + *cc | *++ | gcc* | *-gcc*) mode=link for arg do @@ -208,7 +183,7 @@ if test -z "$show_help"; then *db | *dbx) mode=execute ;; - *install*|cp) + *install*|cp|mv) mode=install ;; *rm) @@ -221,9 +196,9 @@ if test -z "$show_help"; then # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then - $echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else - $echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; @@ -232,20 +207,20 @@ if test -z "$show_help"; then # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$progname: unrecognized option \`-dlopen'" 1>&2 + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." + help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case "$mode" in # libtool compile mode compile) - progname="$progname: compile" + modename="$modename: compile" # Get the compilation command and the source file. base_compile= lastarg= @@ -254,12 +229,20 @@ if test -z "$show_help"; then for arg do - # The only flag that cannot be specified is the output filename. - if test "X$arg" = "X-o"; then - $echo "$progname: you cannot specify the output filename with \`-o'" 1>&2 + # Accept any command-line options. + case "$arg" in + -o) + $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 $echo "$help" 1>&2 exit 1 - fi + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + esac # Accept the current argument as the source file. lastarg="$srcfile" @@ -270,7 +253,7 @@ if test -z "$show_help"; then # Backslashify any backslashes, double quotes, and dollar signs. # These are the only characters that are still specially # interpreted inside of double-quoted scrings. - lastarg=`$echo "$lastarg" | sed "$sed_quote_subst"` + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly in scan @@ -290,11 +273,15 @@ if test -z "$show_help"; then done # Get the name of the library object. - libobj=`$echo "$srcfile" | sed -e 's%^.*/%%'` + libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` # Recognize several different file suffixes. - xform='[cCFSfm]' + xform='[cCFSfms]' case "$libobj" in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.cpp) xform=cpp ;; @@ -303,18 +290,18 @@ if test -z "$show_help"; then *.for) xform=for ;; esac - libobj=`$echo "$libobj" | sed -e "s/\.$xform$/.lo/"` + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case "$libobj" in - *.lo) obj=`$echo "$libobj" | sed -e 's/\.lo$/.o/'` ;; + *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;; *) - $echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2 + $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 exit 1 ;; esac if test -z "$base_compile"; then - $echo "$progname: you must specify a compilation command" 1>&2 + $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -330,6 +317,9 @@ if test -z "$show_help"; then # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + # All platforms use -DPIC, to notify preprocessed assembler code. $show "$base_compile$pic_flag -DPIC $srcfile" if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then : @@ -364,11 +354,11 @@ if test -z "$show_help"; then fi fi - # Create an invalid libtool object if no PIC, so that we don't accidentally - # link it into a program. + # Create an invalid libtool object if no PIC, so that we do not + # accidentally link it into a program. if test "$build_libtool_libs" != yes; then - $show "$echo timestamp > $libobj" - $run eval "$echo timestamp > \$libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > \$libobj" || exit $? fi exit 0 @@ -376,9 +366,9 @@ if test -z "$show_help"; then # libtool link mode link) - progname="$progname: link" + modename="$modename: link" CC="$nonopt" - allow_undefined=no + allow_undefined=yes compile_command="$CC" finalize_command="$CC" @@ -389,14 +379,14 @@ if test -z "$show_help"; then dlprefiles= export_dynamic=no hardcode_libdirs= - install_libdir= libobjs= link_against_libtool_libs= - link_static= ltlibs= objs= prev= prevarg= + release= + rpath= perm_rpath= temp_rpath= vinfo= @@ -405,20 +395,20 @@ if test -z "$show_help"; then for arg do case "$arg" in - -static) - if test "$build_libtool_libs" = yes; then - if test "$hardcode_direct" = unsupported && test -z "$link_static_flag"; then - $echo "$progname: warning: static linking is impossible in this configuration" 1>&2 - else - build_libtool_libs=no - fi + -all-static | -static) + if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 fi + build_libtool_libs=no build_old_libs=yes break ;; esac done + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + # Go through the arguments, transforming them on the way. for arg do @@ -442,6 +432,16 @@ if test -z "$show_help"; then ;; esac ;; + release) + release="-$arg" + prev= + continue + ;; + rpath) + rpath="$rpath $arg" + prev= + continue + ;; *) eval "$prev=\"\$arg\"" prev= @@ -453,8 +453,17 @@ if test -z "$show_help"; then prevarg="$arg" case "$arg" in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + -allow-undefined) - allow_undefined=yes + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; @@ -471,7 +480,11 @@ if test -z "$show_help"; then -export-dynamic) if test "$export_dynamic" != yes; then export_dynamic=yes - arg=`eval $echo "$export_dynamic_flag_spec"` + if test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + else + arg= + fi # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" @@ -480,12 +493,13 @@ if test -z "$show_help"; then ;; -L*) - dir=`$echo "$arg" | sed 's%^-L\(.*\)$%\1%'` + dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` case "$dir" in - /*) + /* | [A-Za-z]:\\*) + # Add the corresponding hardcode_libdir_flag, if it is not identical. ;; *) - $echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2 + $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 exit 1 ;; esac @@ -494,19 +508,31 @@ if test -z "$show_help"; then -l*) deplibs="$deplibs $arg" ;; + -no-undefined) + allow_undefined=no + continue + ;; + -o) prev=output ;; + -release) + prev=release + continue + ;; + -rpath) - prev=install_libdir + prev=rpath continue ;; -static) - link_static="$link_static_flag" - compile_command="$compile_command $link_static" - finalize_command="$finalize_command $link_static" + # If we have no pic_flag, then this is the same as -all-static. + if test -z "$pic_flag" && test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi continue - ;; + ;; -version-info) prev=vinfo @@ -514,10 +540,10 @@ if test -z "$show_help"; then ;; # Some other compiler flag. - -*) + -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - arg=`$echo "$arg" | sed "$sed_quote_subst"` + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" @@ -545,7 +571,7 @@ if test -z "$show_help"; then if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles "`$echo "$arg" | sed 's/\.lo$/\.o/'` + dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'` prev= fi libobjs="$libobjs $arg" @@ -560,20 +586,20 @@ if test -z "$show_help"; then old_library= # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $arg >/dev/null 2>&1; then : + if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : else - $echo "$progname: \`$arg' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 exit 1 fi # If there is no directory component, then add one. case "$arg" in - */*) . $arg ;; + */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$libdir"; then - $echo "$progname: \`$arg' contains no -rpath information" 1>&2 + $echo "$modename: \`$arg' contains no -rpath information" 1>&2 exit 1 fi @@ -584,13 +610,13 @@ if test -z "$show_help"; then done if test -z "$linklib"; then - $echo "$progname: cannot find name of link library for \`$arg'" 1>&2 + $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 exit 1 fi # Find the relevant object directory and library name. - name=`$echo "$arg" | sed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` - dir=`$echo "$arg" | sed 's%/[^/]*$%%'` + name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` + dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$arg"; then dir="$objdir" else @@ -604,7 +630,10 @@ if test -z "$show_help"; then # If there is no dlname, we need to preload. prev=dlprefiles else - # We should not create a dependency on this library. + # We should not create a dependency on this library, but we + # may need any libraries it requires. + compile_command="$compile_command$dependency_libs" + finalize_command="$finalize_command$dependency_libs" prev= continue fi @@ -627,12 +656,12 @@ if test -z "$show_help"; then if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in - "* $dir *") ;; + *" $dir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi - + # This is the magic to use -rpath. if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then @@ -640,22 +669,28 @@ if test -z "$show_help"; then hardcode_libdirs="$libdir" libdir="@HARDCODE_LIBDIRS@" else - # Just accumulate the libdirs. - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + # Just accumulate the unique libdirs. + case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac libdir= fi fi if test -n "$libdir"; then - flag=`eval $echo \"$hardcode_libdir_flag_spec\"` + eval flag=\"$hardcode_libdir_flag_spec\" compile_command="$compile_command $flag" finalize_command="$finalize_command $flag" fi - elif test "$hardcode_runpath_var" = yes; then + elif test -n "$runpath_var"; then # Do the same for the permanent run path. case "$perm_rpath " in - "* $libdir *") ;; + *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi @@ -676,11 +711,11 @@ if test -z "$show_help"; then relink) # We need an absolute path. case "$dir" in - /*) ;; + /* | [A-Za-z]:\\*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - $echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2 + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit 1 fi dir="$absdir" @@ -698,7 +733,7 @@ if test -z "$show_help"; then ;; *) - $echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2 + $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 exit 1 ;; esac @@ -712,70 +747,103 @@ if test -z "$show_help"; then finalize_shlibpath="$finalize_shlibpath$libdir:" finalize_command="$finalize_command -l$name" else - # We can't seem to hardcode it, guess we'll fake it. + # We cannot seem to hardcode it, guess we'll fake it. finalize_command="$finalize_command -L$libdir -l$name" fi else # Transform directly to old archives if we don't build new libraries. if test -n "$pic_flag" && test -z "$old_library"; then - $echo "$progname: cannot find static library for \`$arg'" 1>&2 + $echo "$modename: cannot find static library for \`$arg'" 1>&2 exit 1 fi + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_command="$compile_command $dir/$linklib" finalize_command="$finalize_command $dir/$linklib" else - # Here we assume that "$hardcode_minusL" != unsupported. - # This is valid on all known static and shared platforms. compile_command="$compile_command -L$dir -l$name" finalize_command="$finalize_command -L$dir -l$name" fi fi + + # Add in any libraries that this one depends upon. + compile_command="$compile_command$dependency_libs" + finalize_command="$finalize_command$dependency_libs" continue ;; + # Some other compiler argument. *) - $echo "$progname: unknown file suffix for \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case "$arg" in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac ;; esac # Now actually substitute the argument into the commands. - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi done if test -n "$prev"; then - $echo "$progname: the \`$prevarg' option requires an argument" 1>&2 + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi - # Substitute the hardcoded libdirs into the compile commands. - if test -n "$hardcode_libdir_separator"; then - compile_command=`$echo "$compile_command" | sed "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` - finalize_command=`$echo "$finalize_command" | sed "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` + if test -n "$vinfo" && test -n "$release"; then + $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2 + $echo "$help" 1>&2 + exit 1 fi oldlib= oldobjs= case "$output" in "") - $echo "$progname: you must specify an output file" 1>&2 + $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; - */*) - $echo "$progname: output file \`$output' must have no directory components" 1>&2 + */* | *\\*) + $echo "$modename: output file \`$output' must have no directory components" 1>&2 exit 1 ;; + *.a) + # Now set the variables for building old libraries. + build_libtool_libs=no + build_old_libs=yes + oldlib="$output" + $show "$rm $oldlib" + $run $rm $oldlib + ;; + *.la) - libname=`$echo "$output" | sed 's/\.la$//'` + # Make sure we only generate libraries of the form `libNAME.la'. + case "$output" in + lib*) ;; + *) + $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + esac + + name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval libname=\"$libname_spec\" # All the library-specific variables (install_libdir is set above). library_names= @@ -786,35 +854,42 @@ if test -z "$show_help"; then age=0 if test -n "$objs"; then - $echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 exit 1 fi # How the heck are we supposed to write a wrapper for a shared library? if test -n "$link_against_libtool_libs"; then - $echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 + $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 exit 1 fi if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 # Nullify the symbol file. - compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` - finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi - if test -z "$install_libdir"; then - $echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2 + if test -z "$rpath"; then + $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 + $echo "$help" 1>&2 exit 1 fi + set dummy $rpath + if test $# -gt 2; then + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + fi + install_libdir="$2" + # Parse the version information argument. IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' set dummy $vinfo IFS="$save_ifs" if test -n "$5"; then - $echo "$progname: too many parameters to \`-version-info'" 1>&2 + $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -827,8 +902,8 @@ if test -z "$show_help"; then case "$current" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -836,8 +911,8 @@ if test -z "$show_help"; then case "$revision" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac @@ -845,15 +920,15 @@ if test -z "$show_help"; then case "$age" in 0 | [1-9] | [1-9][0-9]*) ;; *) - $echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test $age -gt $current; then - $echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$progname: \`$vinfo' is not valid version information" 1>&2 + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 fi @@ -893,58 +968,66 @@ if test -z "$show_help"; then ;; *) - $echo "$progname: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac # Create the output directory, or remove our outputs if we need to. if test -d $objdir; then - $show "$rm $objdir/$libname.*" - $run $rm $objdir/$libname.* + $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*" + $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.* else $show "$mkdir $objdir" - $run $mkdir $objdir || exit $? + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then - $echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else - # Clear the flag. - allow_undefined_flag= + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" fi + # Add libc to deplibs on all systems. + dependency_libs="$deplibs" + deplibs="$deplibs -lc" + if test "$build_libtool_libs" = yes; then # Get the real and link names of the library. - library_names=`eval $echo \"$library_names_spec\"` + eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then - soname=`eval $echo \"$soname_spec\"` + eval soname=\"$soname_spec\" else soname="$realname" fi lib="$objdir/$realname" - linknames= - for link - do - linknames="$linknames $link" - done + for link + do + linknames="$linknames $link" + done # Use standard objects if they are PIC. - test -z "$pic_flag" && libobjs=`$echo "$libobjs " | sed -e 's/\.lo /.o /g' -e 's/ $//g'` + test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'` # Do each of the archive commands. - cmds=`eval $echo \"$archive_cmds\"` + eval cmds=\"$archive_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs" @@ -954,9 +1037,9 @@ if test -z "$show_help"; then IFS="$save_ifs" # Create links to the real library. - for link in $linknames; do - $show "(cd $objdir && $LN_S $realname $link)" - $run eval '(cd $objdir && $LN_S $realname $link)' || exit $? + for linkname in $linknames; do + $show "(cd $objdir && $LN_S $realname $linkname)" + $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? done # If -export-dynamic was specified, set the dlname. @@ -965,41 +1048,48 @@ if test -z "$show_help"; then dlname="$soname" fi fi + + # Now set the variables for building old libraries. + oldlib="$objdir/$libname.a" ;; *.lo | *.o) if test -n "$link_against_libtool_libs"; then - $echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2 + $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 exit 1 fi if test -n "$deplibs"; then - $echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 fi if test -n "$dlfiles$dlprefiles"; then - $echo "$progname: warning: \`-dlopen' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 # Nullify the symbol file. - compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` - finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi - if test -n "$install_libdir"; then - $echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2 + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 fi if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2 + $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 fi case "$output" in *.lo) if test -n "$objs"; then - $echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2 + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" - obj=`$echo "$output" | sed 's/\.lo$/.o/'` + obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'` ;; *) libobj= @@ -1011,10 +1101,10 @@ if test -z "$show_help"; then $run $rm $obj $libobj # Create the old-style object. - reload_objs="$objs"`$echo "$libobjs " | sed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` + reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` output="$obj" - cmds=`eval $echo \"$reload_cmds\"` + eval cmds=\"$reload_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs" @@ -1029,8 +1119,8 @@ if test -z "$show_help"; then if test "$build_libtool_libs" != yes; then # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. - $show "$echo timestamp > $libobj" - $run eval "$echo timestamp > $libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > $libobj" || exit $? exit 0 fi @@ -1038,7 +1128,7 @@ if test -z "$show_help"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs" output="$libobj" - cmds=`eval $echo \"$reload_cmds\"` + eval cmds=\"$reload_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs" @@ -1056,65 +1146,136 @@ if test -z "$show_help"; then ;; *) - if test -n "$install_libdir"; then - $echo "$progname: warning: \`-rpath' is ignored while linking programs" 1>&2 + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 fi - if test -n "$vinfo"; then - $echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2 + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 fi - if test -n "$libobjs"; then + if test -n "$rpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + # Put the magic libdir with the hardcode flag. + hardcode_libdirs="$libdir" + libdir="@HARDCODE_LIBDIRS@" + else + # Just accumulate the unique libdirs. + case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + libdir= + fi + fi + + if test -n "$libdir"; then + eval flag=\"$hardcode_libdir_flag_spec\" + + compile_command="$compile_command $flag" + finalize_command="$finalize_command $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + fi + + # Substitute the hardcoded libdirs into the compile commands. + if test -n "$hardcode_libdir_separator"; then + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` + fi + + if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. - compile_command=`$echo "$compile_command " | sed -e 's/\.lo /.o /g' -e 's/ $//'` - finalize_command=`$echo "$finalize_command " | sed -e 's/\.lo /.o /g' -e 's/ $//'` + compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` + finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` + fi + + if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${output}S.c" + else + dlsyms= fi - if test "$export_dynamic" = yes && test -n "$global_symbol_pipe" && test -n "$NM"; then + if test -n "$dlsyms"; then # Add our own program objects to the preloaded list. - dlprefiles=`$echo "$objs$dlprefiles " | sed -e 's/\.lo /.o /g' -e 's/ $//'` + dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` - # Discover the nlist of each of the dlfiles. - dlsyms="$objdir/${output}S.c" + # Discover the nlist of each of the dlfiles. nlist="$objdir/${output}.nm" - $run rm -f "$nlist" "$nlist"T + if test -d $objdir; then + $show "$rm $nlist ${nlist}T" + $run $rm "$nlist" "${nlist}T" + else + $show "$mkdir $objdir" + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi + fi + for arg in $dlprefiles; do - $echo "extracting global symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done - # Parse the name list into a C file. - $echo "creating $dlsyms" + # Parse the name list into a source file. + $show "creating $objdir/$dlsyms" if test -z "$run"; then + # Make sure we at least have an empty file. + test -f "$nlist" || : > "$nlist" + # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` - count=`$echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` - test "$wcout" = "$count" && count=-1 + count=`echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` + (test "$count" -ge 0) 2>/dev/null || count=-1 else - rm -f "$nlist"T + $rm "$nlist"T count=-1 fi - cat < "$dlsyms" + case "$dlsyms" in + "") ;; + *.c) + $echo > "$objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ -/* Prevent the only kind of circular reference mistakes we can make. */ +#ifdef __cplusplus +extern \"C\" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ #define dld_preloaded_symbol_count some_other_symbol #define dld_preloaded_symbols some_other_symbol -/* External symbol declarations for the compiler. */ -EOF - if test -f "$nlist"; then - sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$dlsyms" - else - $echo "/* NONE */" >> "$dlsyms" - fi +/* External symbol declarations for the compiler. */\ +" + + if test -f "$nlist"; then + sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" + else + echo '/* NONE */' >> "$objdir/$dlsyms" + fi - cat <> "$dlsyms" + $echo >> "$objdir/$dlsyms" "\ #undef dld_preloaded_symbol_count #undef dld_preloaded_symbols @@ -1134,70 +1295,75 @@ struct { __ptr_t address; } dld_preloaded_symbols[] = -{ -EOF +{\ +" - if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> "$dlsyms" - fi + if test -f "$nlist"; then + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" + fi - cat <<\EOF >> "$dlsyms" - {0}, + $echo >> "$objdir/$dlsyms" "\ + {0, (__ptr_t) 0} }; -EOF + +#ifdef __cplusplus +} +#endif\ +" + ;; + + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit 1 + ;; + esac fi - $run rm -f "$nlist" "$nlist"T # Now compile the dynamic symbol file. - $show "(cd $objdir && $CC -c$no_builtin_flag \"${output}S.c\")" - $run eval '(cd $objdir && $CC -c$no_builtin_flag "${output}S.c")' || exit $? + $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")" + $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $? # Transform the symbol file into the correct name. - compile_command=`$echo "$compile_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` - finalize_command=`$echo "$finalize_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` elif test "$export_dynamic" != yes; then - test -n "$dlfiles$dlprefiles" && $echo "$progname: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 + test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 else # We keep going just in case the user didn't refer to # dld_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. - $echo "$progname: not configured to extract global symbols from dlpreopened files" 1>&2 + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 # Nullify the symbol file. - compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"` - finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"` + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then # Replace the output file specification. - compile_command=`$echo "$compile_command" | sed 's%@OUTPUT@%'"$output"'%g'` - finalize_command=`$echo "$finalize_command" | sed 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # We have no uninstalled library dependencies, so finalize right now. $show "$compile_command" $run eval "$compile_command" - status=$? - - # If we failed to link statically, then try again. - if test $status -ne 0 && test -n "$link_static"; then - $echo "$progname: cannot link \`$output' statically; retrying semi-dynamically" 1>&2 - compile_command=`$echo "$compile_command " | sed -e "s% $link_static % %" -e 's/ $//'` - $show "$compile_command" - $run eval "$compile_command" - status=$? - fi - exit $status + exit $? fi # Replace the output file specification. - compile_command=`$echo "$compile_command" | sed 's%@OUTPUT@%'"$objdir/$output"'%g'` - finalize_command=`$echo "$finalize_command" | sed 's%@OUTPUT@%'"$objdir/$output"'T%g'` + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'` + finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'` # Create the binary in the object directory, then wrap it. if test -d $objdir; then : else $show "$mkdir $objdir" - $run $mkdir $objdir || exit $? + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi fi if test -n "$shlibpath_var"; then @@ -1205,7 +1371,7 @@ EOF rpath= for dir in $temp_rpath; do case "$dir" in - /*) + /* | [A-Za-z]:\\*) # Absolute path. rpath="$rpath$dir:" ;; @@ -1228,7 +1394,7 @@ EOF finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi - if test -n "$perm_rpath"; then + if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do @@ -1241,8 +1407,8 @@ EOF case "$hardcode_action" in relink) # AGH! Flame the AIX and HP-UX people for me, will ya? - $echo "$progname: warning: using a buggy system linker" 1>&2 - $echo "$progname: relinking will be required before \`$output' can be installed" 1>&2 + $echo "$modename: warning: using a buggy system linker" 1>&2 + $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 ;; esac @@ -1250,17 +1416,20 @@ EOF $run eval "$compile_command" || exit $? # Now create the wrapper script. - $echo "creating $output" + $show "creating $output" # Quote the finalize command for shipping. - finalize_command=`$echo "$finalize_command" | sed "$sed_quote_subst"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"` + + # Quote $echo for shipping. + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` # Only actually do things if our run command is non-null. if test -z "$run"; then $rm $output trap "$rm $output; exit 1" 1 2 15 - cat > $output < $output "\ #! /bin/sh # $output - temporary wrapper script for $objdir/$output @@ -1272,106 +1441,112 @@ EOF # This wrapper script should never be moved out of \``pwd`'. # If it is, it will not operate correctly. +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e s/^X//' +sed_quote_subst='$sed_quote_subst' + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi + # This environment variable determines our operation mode. -if test "\$libtool_install_magic" = "$magic"; then +if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: link_against_libtool_libs='$link_against_libtool_libs' - finalize_command="$finalize_command" + finalize_command=\"$finalize_command\" else - # When we are sourced in execute mode, \$file is already set. - test "\$libtool_execute_magic" = "$magic" || file="\$0" + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" = \"$magic\"; then : + else + echo=\"$qecho\" + file=\"\$0\" + fi\ +" + $echo >> $output "\ # Find the directory that this script lives in. - thisdir=\`$echo "\$file" | sed 's%/[^/]*$%%'\` - test "x\$thisdir" = "x\$file" && thisdir=. + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` + done # Try to get the absolute directory name. - absdir=\`cd "\$thisdir" && pwd\` - test -n "\$absdir" && thisdir="\$absdir" + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" - progdir="\$thisdir/$objdir" + progdir=\"\$thisdir/$objdir\" program='$output' - # If the \$file dir failed (maybe due to symlink), try a hardcoded dir. - oprogdir="\$progdir" - if test -f "\$progdir/\$program"; then : - else - thisdir='`pwd`' - progdir="\$thisdir/$objdir" - fi - - if test -f "\$progdir/\$program"; then -EOF + if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test -n "$shlibpath_var" && test -n "$temp_rpath"; then - cat >> $output <> $output "\ # Add our own library path to $shlibpath_var - $shlibpath_var="$temp_rpath\$$shlibpath_var" + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var - $shlibpath_var=\`$echo \$$shlibpath_var | sed -e 's/:*\$//'\` + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\` export $shlibpath_var - -EOF +" fi - cat >> $output <> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. - args= - for arg - do - # Quote arguments (to preserve shell metacharacters). - sed_quote_subst='$sed_quote_subst' - arg=\`$echo "\$arg" | sed "\$sed_quote_subst"\` - args="\$args \\"\$arg\\"" - done # Export the path to the program. - PATH="\$progdir:\$PATH" + PATH=\"\$progdir:\$PATH\" export PATH - eval "exec \$program \$args" + exec \$program \${1+\"\$@\"} - $echo "\$0: cannot exec \$program \$args" + \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit 1 fi else # The program doesn't exist. - $echo "\$0: error: neither \$oprogdir/\$program nor \$progdir/\$program exists" 1>&2 - $echo "This script is just a wrapper for \$program." 1>&2 - $echo "See the $PACKAGE documentation for more information." 1>&2 + \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 + \$echo \"This script is just a wrapper for \$program.\" 1>&2 + echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi -fi -EOF +fi\ +" chmod +x $output fi exit 0 ;; esac - # See if we need to build an old-fashioned archive. if test "$build_old_libs" = "yes"; then - # Now set the variables for building old libraries. - oldlib="$objdir/$libname.a" - # Transform .lo files to .o files. - oldobjs="$objs"`$echo "$libobjs " | sed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` + oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` - if test -d "$objdir"; then - $show "$rm $oldlib" - $run $rm $oldlib + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + eval cmds=\"$old_archive_from_new_cmds\" else - $show "$mkdir $objdir" - $run $mkdir $objdir + eval cmds=\"$old_archive_cmds\" fi - - # Do each command in the archive commands. - cmds=`eval $echo \"$old_archive_cmds\"` IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs" @@ -1387,11 +1562,11 @@ EOF old_library= test "$build_old_libs" = yes && old_library="$libname.a" - $echo "creating $output" + $show "creating $output" # Only create the output if not a dry run. if test -z "$run"; then - cat > $output < $output "\ # $output - a libtool library file # Generated by ltmain.sh - GNU $PACKAGE $VERSION @@ -1404,14 +1579,17 @@ library_names='$library_names' # The name of the static archive. old_library='$old_library' +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + # Version information for $libname. current=$current age=$age revision=$revision # Directory that this library needs to be installed in: -libdir='$install_libdir' -EOF +libdir='$install_libdir'\ +" fi # Do a symbolic link so that the libtool archive can be found in @@ -1425,17 +1603,35 @@ EOF # libtool install mode install) - progname="$progname: install" + modename="$modename: install" - # The first argument is the name of the installation program. + # There may be an optional /bin/sh argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL"; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` + case "$arg" in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg="$nonopt" + fi + + # The real first argument should be the name of the installation program. # Aesthetically quote it. - arg=`$echo "$nonopt" | sed "$sed_quote_subst"` + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac - install_prog="$arg" + install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= @@ -1477,7 +1673,7 @@ EOF esac # Aesthetically quote the argument. - arg=`$echo "$arg" | sed "$sed_quote_subst"` + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" @@ -1487,29 +1683,29 @@ EOF done if test -z "$install_prog"; then - $echo "$progname: you must specify an install program" 1>&2 + $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then - $echo "$progname: the \`$prev' option requires an argument" 1>&2 + $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then - $echo "$progname: no file or destination specified" 1>&2 + $echo "$modename: no file or destination specified" 1>&2 else - $echo "$progname: you must specify a destination" 1>&2 + $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 fi # Strip any trailing slash from the destination. - dest=`$echo "$dest" | sed 's%/$%%'` + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes @@ -1517,26 +1713,26 @@ EOF destdir="$dest" destname= else - destdir=`$echo "$dest" | sed 's%/[^/]*$%%'` + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "$dest" | sed 's%^.*/%%'` + destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test $# -gt 2; then - $echo "$progname: \`$dest' is not a directory" 1>&2 + $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi fi case "$destdir" in - /*) ;; + /* | [A-Za-z]:\\*) ;; *) for file in $files; do case "$file" in *.lo) ;; *) - $echo "$progname: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1563,9 +1759,9 @@ EOF *.la) # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then : + if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : else - $echo "$progname: \`$file' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1574,25 +1770,25 @@ EOF old_library= # If there is no directory component, then add one. case "$file" in - */*) . $file ;; + */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in - "* $libdir *") ;; + *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in - "* $libdir *") ;; + *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi - dir="`$echo "$file" | sed 's%/[^/]*$%%'`/" + dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" test "X$dir" = "X$file/" && dir= dir="$dir$objdir" @@ -1608,16 +1804,6 @@ EOF $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? test "X$dlname" = "X$realname" && dlname= - # Support stripping libraries. - if test -n "$stripme"; then - if test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run $striplib $destdir/$realname || exit $? - else - $echo "$progname: warning: no library stripping program" 1>&2 - fi - fi - if test $# -gt 0; then # Delete the old symlinks. rmcmd="$rm" @@ -1645,7 +1831,7 @@ EOF # Do each command in the postinstall commands. lib="$destdir/$realname" - cmds=`eval $echo \"$postinstall_cmds\"` + eval cmds=\"$postinstall_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs" @@ -1656,7 +1842,7 @@ EOF fi # Install the pseudo-library for information purposes. - name=`$echo "$file" | sed 's%^.*/%%'` + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` $show "$install_prog $file $destdir/$name" $run eval "$install_prog $file $destdir/$name" || exit $? @@ -1671,21 +1857,21 @@ EOF if test -n "$destname"; then destfile="$destdir/$destname" else - destfile=`$echo "$file" | sed 's%^.*/%%'` + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case "$destfile" in *.lo) - staticdest=`$echo "$destfile" | sed 's/\.lo$/\.o/'` + staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'` ;; *.o) staticdest="$destfile" destfile= ;; *) - $echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; @@ -1700,7 +1886,7 @@ EOF # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. - staticobj=`$echo "$file" | sed 's/\.lo$/\.o/'` + staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/\.o/'` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? @@ -1710,19 +1896,19 @@ EOF *) # Do a test to see if this is really a libtool program. - if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then + if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then link_against_libtool_libs= finalize_command= # If there is no directory component, then add one. case "$file" in - */*) . $file ;; + */* | *\\*) . $file ;; *) . ./$file ;; esac # Check the variables that should have been set. if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then - $echo "$progname: invalid libtool wrapper script \`$file'" 1>&2 + $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 exit 1 fi @@ -1733,36 +1919,36 @@ EOF if test -f "$lib"; then # If there is no directory component, then add one. case "$lib" in - */*) . $lib ;; + */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi - libfile="$libdir/`$echo "$lib" | sed 's%^.*/%%g'`" + libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" if test -z "$libdir"; then - $echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2 + $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 elif test -f "$libfile"; then : else - $echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done if test "$hardcode_action" = relink; then if test "$finalize" = yes; then - $echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 $show "$finalize_command" if $run eval "$finalize_command"; then : else - $echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2 + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 continue fi file="$objdir/$file"T else - $echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 + $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 fi else # Install the binary that we compiled earlier. - file=`$echo "$file" | sed "s%\([^/]*\)$%$objdir/\1%"` + file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi @@ -1773,7 +1959,7 @@ EOF done for file in $staticlibs; do - name=`$echo "$file" | sed 's%^.*/%%'` + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" @@ -1781,18 +1967,8 @@ EOF $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? - # Support stripping libraries. - if test -n "$stripme"; then - if test -n "$old_striplib"; then - $show "$old_striplib $oldlib" - $run $old_striplib $oldlib || exit $? - else - $echo "$progname: warning: no static library stripping program" 1>&2 - fi - fi - # Do each command in the postinstall commands. - cmds=`eval $echo \"$old_postinstall_cmds\"` + eval cmds=\"$old_postinstall_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' for cmd in $cmds; do IFS="$save_ifs" @@ -1803,13 +1979,13 @@ EOF done if test -n "$future_libdirs"; then - $echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" - exec $0 --finish$current_libdirs + exec $SHELL $0 --finish$current_libdirs exit 1 fi @@ -1818,44 +1994,77 @@ EOF # libtool finish mode finish) - progname="$progname: finish" + modename="$modename: finish" libdirs="$nonopt" - if test -n "$finish_cmds" && test -n "$libdirs"; then + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do - # Do each command in the postinstall commands. - cmds=`eval $echo \"$finish_cmds\"` - IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' - for cmd in $cmds; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + eval cmds=\"$finish_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $run eval "$cmds" + fi done fi - $echo "To link against installed libraries in LIBDIR, users may have to:" + echo "------------------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + echo " $libdir" + done + echo + echo "To link against installed libraries in a given directory, LIBDIR," + echo "you must use the \`-LLIBDIR' flag during linking." + echo + echo " You will also need to do one of the following:" if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to their \`$shlibpath_var' environment variable" + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" fi - $echo " - use the \`-LLIBDIR' linker flag" + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + echo " - use the \`$flag' linker flag" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + echo "See any operating system documentation about shared libraries for" + echo "more information, such as the ld(1) and ld.so(8) manual pages." + echo "------------------------------------------------------------------------------" exit 0 ;; # libtool execute mode execute) - progname="$progname: execute" + modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then - $echo "$progname: you must specify a COMMAND" 1>&2 + $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi @@ -1864,7 +2073,7 @@ EOF for file in $execute_dlfiles; do if test -f "$file"; then : else - $echo "$progname: \`$file' is not a file" 1>&2 + $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1873,9 +2082,9 @@ EOF case "$file" in *.la) # Check to see that this really is a libtool archive. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then : + if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : else - $echo "$progname: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi @@ -1886,36 +2095,36 @@ EOF # If there is no directory component, then add one. case "$file" in - */*) . $file ;; + */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. - test -n "$library_names" && $echo "$progname: warning: \`$file' was not linked with \`-export-dynamic'" + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi - dir=`$echo "$file" | sed 's%/[^/]*$%%'` + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else - $echo "$progname: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; *.lo) # Just add the directory containing the .lo file. - dir=`$echo "$file" | sed 's%/[^/]*$%%'` + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) - $echo "$progname: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac @@ -1943,10 +2152,11 @@ EOF case "$file" in -*) ;; *) - if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then + # Do a test to see if this is really a libtool program. + if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then # If there is no directory component, then add one. case "$file" in - */*) . $file ;; + */* | *\\*) . $file ;; *) . ./$file ;; esac @@ -1956,7 +2166,7 @@ EOF ;; esac # Quote arguments (to preserve shell metacharacters). - file=`$echo "$file" | sed "$sed_quote_subst"` + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done @@ -1967,11 +2177,11 @@ EOF # Now actually exec the command. eval "exec \$cmd$args" - $echo "$progname: cannot exec \$cmd$args" + $echo "$modename: cannot exec \$cmd$args" exit 1 else # Display what would be done. - eval "$echo \"\$shlibpath_var=\$$shlibpath_var\"" + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" $echo "$cmd$args" exit 0 @@ -1980,7 +2190,7 @@ EOF # libtool uninstall mode uninstall) - progname="$progname: uninstall" + modename="$modename: uninstall" rm="$nonopt" files= @@ -1993,22 +2203,22 @@ EOF done if test -z "$rm"; then - $echo "$progname: you must specify an RM program" 1>&2 + $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi for file in $files; do - dir=`$echo "$file" | sed -e 's%/[^/]*$%%'` + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. - name=`$echo "$file" | sed -e 's%^.*/%%'` + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` rmfiles="$file" case "$name" in *.la) # Possibly a libtool archive, so verify it. - if egrep "^# Generated by ltmain.sh" $file >/dev/null 2>&1; then + if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. @@ -2019,40 +2229,71 @@ EOF test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" + $show "$rm $rmfiles" + $run $rm $rmfiles + + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + eval cmds=\"$postuninstall_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + eval cmds=\"$old_postuninstall_cmds\" + IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. fi ;; *.lo) if test "$build_old_libs" = yes; then - oldobj=`$echo "$name" | sed 's/\.lo$/\.o/'` + oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'` rmfiles="$rmfiles $dir/$oldobj" fi + $show "$rm $rmfiles" + $run $rm $rmfiles ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles + *) + $show "$rm $rmfiles" + $run $rm $rmfiles + ;; + esac done exit 0 ;; "") - $echo "$progname: you must specify a MODE" 1>&2 + $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac - $echo "$progname: invalid operation mode \`$mode'" 1>&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi # test -z "$show_help" # We need to display help for each of the modes. case "$mode" in -"") cat <&2 + $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac -$echo -$echo "Try \`$progname --help' for more information about other modes." +echo +$echo "Try \`$modename --help' for more information about other modes." exit 0