(linenum→info "unix/slp.c:2238")

binutils/2.18/ltmain.sh

    1: # Generated from ltmain.m4sh; do not edit by hand
    2: 
    3: # ltmain.sh (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
    4: # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
    5: 
    6: # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    7: # This is free software; see the source for copying conditions.  There is NO
    8: # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    9: 
   10: # This program is free software; you can redistribute it and/or modify
   11: # it under the terms of the GNU General Public License as published by
   12: # the Free Software Foundation; either version 2 of the License, or
   13: # (at your option) any later version.
   14: #
   15: # This program is distributed in the hope that it will be useful, but
   16: # WITHOUT ANY WARRANTY; without even the implied warranty of
   17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   18: # General Public License for more details.
   19: #
   20: # You should have received a copy of the GNU General Public License
   21: # along with this program; if not, write to the Free Software
   22: # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
   23: #
   24: # As a special exception to the GNU General Public License, if you
   25: # distribute this file as part of a program that contains a
   26: # configuration script generated by Autoconf, you may include it under
   27: # the same distribution terms that you use for the rest of that program.
   28: 
   29: # Usage: $progname [OPTION]... [MODE-ARG]...
   30: #
   31: # Provide generalized library-building support services.
   32: #
   33: #     --config             show all configuration variables
   34: #     --debug              enable verbose shell tracing
   35: # -n, --dry-run            display commands without modifying any files
   36: #     --features           display basic configuration information and exit
   37: #     --mode=MODE          use operation mode MODE
   38: #     --preserve-dup-deps  don't remove duplicate dependency libraries
   39: #     --quiet, --silent    don't print informational messages
   40: #     --tag=TAG            use configuration variables from tag TAG
   41: # -v, --verbose            print informational messages (default)
   42: #     --version            print version information
   43: # -h, --help               print short or long help message
   44: #
   45: # MODE must be one of the following:
   46: #
   47: #       clean              remove files from the build directory
   48: #       compile            compile a source file into a libtool object
   49: #       execute            automatically set library path, then run a program
   50: #       finish             complete the installation of libtool libraries
   51: #       install            install libraries or executables
   52: #       link               create a library or an executable
   53: #       uninstall          remove libraries from an installed directory
   54: #
   55: # MODE-ARGS vary depending on the MODE.
   56: # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
   57: #
   58: # When reporting a bug, please describe a test case to reproduce it and
   59: # include the following information:
   60: #
   61: #       host-triplet:   $host
   62: #       shell:          $SHELL
   63: #       compiler:               $LTCC
   64: #       compiler flags:         $LTCFLAGS
   65: #       linker:         $LD (gnu? $with_gnu_ld)
   66: #       $progname:              (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
   67: #       automake:               $automake_version
   68: #       autoconf:               $autoconf_version
   69: #
   70: # Report bugs to <bug-libtool@gnu.org>.
   71: 
   72: PROGRAM=ltmain.sh
   73: PACKAGE=libtool
   74: VERSION=2.1a
   75: TIMESTAMP=" 1.2435 2007/03/18 18:44:42"
   76: package_revision=1.2435
   77: 
   78: # Be Bourne compatible
   79: if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   80:   emulate sh
   81:   NULLCMD=:
   82:   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   83:   # is contrary to our usage.  Disable this feature.
   84:   alias -g '${1+"$@"}'='"$@"'
   85:   setopt NO_GLOB_SUBST
   86: else
   87:   case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
   88: fi
   89: BIN_SH=xpg4; export BIN_SH # for Tru64
   90: DUALCASE=1; export DUALCASE # for MKS sh
   91: 
   92: # NLS nuisances: We save the old values to restore during execute mode.
   93: # Only set LANG and LC_ALL to C if already set.
   94: # These must not be set unconditionally because not all systems understand
   95: # e.g. LANG=C (notably SCO).
   96: for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
   97: do
   98:   eval "if test \"\${$lt_var+set}\" = set; then
   99:           save_$lt_var=\$$lt_var
  100:           $lt_var=C
  101:           export $lt_var
  102:         fi"
  103: done
  104: 
  105: $lt_unset CDPATH
  106: 
  107: 
  108: 
  109: 
  110: 
  111: : ${CP="cp -f"}
  112: : ${ECHO="echo"}
  113: : ${EGREP="/bin/grep -E"}
  114: : ${FGREP="/bin/grep -F"}
  115: : ${GREP="/bin/grep"}
  116: : ${LN_S="ln -s"}
  117: : ${MAKE="make"}
  118: : ${MKDIR="mkdir"}
  119: : ${MV="mv -f"}
  120: : ${RM="rm -f"}
  121: : ${SED="/bin/sed"}
  122: : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
  123: : ${Xsed="$SED -e 1s/^X//"}
  124: 
  125: # Global variables:
  126: EXIT_SUCCESS=0
  127: EXIT_FAILURE=1
  128: EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
  129: EXIT_SKIP=77      # $? = 77 is used to indicate a skipped test to automake.
  130: 
  131: exit_status=$EXIT_SUCCESS
  132: 
  133: # Make sure IFS has a sensible default
  134: lt_nl='
  135: '
  136: IFS="   $lt_nl"
  137: 
  138: dirname="s,/[^/]*$,,"
  139: basename="s,^.*/,,"
  140: 
  141: # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
  142: # is ksh but when the shell is invoked as "sh" and the current value of
  143: # the _XPG environment variable is not equal to 1 (one), the special
  144: # positional parameter $0, within a function call, is the name of the
  145: # function.
  146: progpath="$0"
  147: 
  148: # The name of this program:
  149: # In the unlikely event $progname began with a '-', it would play havoc with
  150: # func_echo (imagine progname=-n), so we prepend ./ in that case:
  151: progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
  152: 
  153: # Make sure we have an absolute path for reexecution:
  154: case $progpath in
  155:   [\\/]*|[A-Za-z]:\\*) ;;
  156:   *[\\/]*)
  157:      progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
  158:      progdir=`cd "$progdir" && pwd`
  159:      progpath="$progdir/$progname"
  160:      ;;
  161:   *)
  162:      save_IFS="$IFS"
  163:      IFS=:
  164:      for progdir in $PATH; do
  165:        IFS="$save_IFS"
  166:        test -x "$progdir/$progname" && break
  167:      done
  168:      IFS="$save_IFS"
  169:      test -n "$progdir" || progdir=`pwd`
  170:      progpath="$progdir/$progname"
  171:      ;;
  172: esac
  173: 
  174: # Sed substitution that helps us do robust quoting.  It backslashifies
  175: # metacharacters that are still active within double-quoted strings.
  176: Xsed="${SED}"' -e 1s/^X//'
  177: sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
  178: 
  179: # Same as above, but do not quote variable references.
  180: double_quote_subst='s/\(["`\\]\)/\\\1/g'
  181: 
  182: # Re-`\' parameter expansions in output of double_quote_subst that were
  183: # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
  184: # in input to double_quote_subst, that '$' was protected from expansion.
  185: # Since each input `\' is now two `\'s, look for any number of runs of
  186: # four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
  187: bs='\\'
  188: bs2='\\\\'
  189: bs4='\\\\\\\\'
  190: dollar='\$'
  191: sed_double_backslash="\
  192:   s/$bs4/&\\
  193: /g
  194:   s/^$bs2$dollar/$bs&/
  195:   s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
  196:   s/\n//g"
  197: 
  198: # Standard options:
  199: opt_dry_run=false
  200: opt_help=false
  201: opt_quiet=false
  202: opt_verbose=false
  203: 
  204: # func_echo arg...
  205: # Echo program name prefixed message, along with the current mode
  206: # name if it has been set yet.
  207: func_echo ()
  208: {
  209:     $ECHO "$progname${mode+: }$mode: "${1+"$@"}
  210: }
  211: 
  212: # func_verbose arg...
  213: # Echo program name prefixed message in verbose mode only.
  214: func_verbose ()
  215: {
  216:     $opt_verbose && func_echo ${1+"$@"}
  217: 
  218:     # A bug in bash halts the script if the last line of a function
  219:     # fails when set -e is in force, so we need another command to
  220:     # work around that:
  221:     :
  222: }
  223: 
  224: # func_error arg...
  225: # Echo program name prefixed message to standard error.
  226: func_error ()
  227: {
  228:     $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
  229: }
  230: 
  231: # func_warning arg...
  232: # Echo program name prefixed warning message to standard error.
  233: func_warning ()
  234: {
  235:     $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
  236: }
  237: 
  238: # func_fatal_error arg...
  239: # Echo program name prefixed message to standard error, and exit.
  240: func_fatal_error ()
  241: {
  242:     func_error ${1+"$@"}
  243:     exit $EXIT_FAILURE
  244: }
  245: 
  246: # func_fatal_help arg...
  247: # Echo program name prefixed message to standard error, followed by
  248: # a help hint, and exit.
  249: func_fatal_help ()
  250: {
  251:     func_error ${1+"$@"}
  252:     func_fatal_error "$help"
  253: }
  254: help="Try \`$progname --help' for more information."  ## default
  255: 
  256: 
  257: # func_grep expression filename
  258: # Check whether EXPRESSION matches any line of FILENAME, without output.
  259: func_grep ()
  260: {
  261:     $GREP "$1" "$2" >/dev/null 2>&1
  262: }
  263: 
  264: 
  265: # func_mkdir_p directory-path
  266: # Make sure the entire path to DIRECTORY-PATH is available.
  267: func_mkdir_p ()
  268: {
  269:     my_directory_path="$1"
  270:     my_dir_list=
  271: 
  272:     if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
  273: 
  274:       # Protect directory names starting with `-'
  275:       case $my_directory_path in
  276:         -*) my_directory_path="./$my_directory_path" ;;
  277:       esac
  278: 
  279:       # While some portion of DIR does not yet exist...
  280:       while test ! -d "$my_directory_path"; do
  281:         # ...make a list in topmost first order.  Use a colon delimited
  282:         # list incase some portion of path contains whitespace.
  283:         my_dir_list="$my_directory_path:$my_dir_list"
  284: 
  285:         # If the last portion added has no slash in it, the list is done
  286:         case $my_directory_path in */*) ;; *) break ;; esac
  287: 
  288:         # ...otherwise throw away the child directory and loop
  289:         my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
  290:       done
  291:       my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
  292: 
  293:       save_mkdir_p_IFS="$IFS"; IFS=':'
  294:       for my_dir in $my_dir_list; do
  295:         IFS="$save_mkdir_p_IFS"
  296:         # mkdir can fail with a `File exist' error if two processes
  297:         # try to create one of the directories concurrently.  Don't
  298:         # stop in that case!
  299:         $MKDIR "$my_dir" 2>/dev/null || :
  300:       done
  301:       IFS="$save_mkdir_p_IFS"
  302: 
  303:       # Bail out if we (or some other process) failed to create a directory.
  304:       test -d "$my_directory_path" || \
  305:         func_fatal_error "Failed to create \`$1'"
  306:     fi
  307: }
  308: 
  309: 
  310: # func_mktempdir [string]
  311: # Make a temporary directory that won't clash with other running
  312: # libtool processes, and avoids race conditions if possible.  If
  313: # given, STRING is the basename for that directory.
  314: func_mktempdir ()
  315: {
  316:     my_template="${TMPDIR-/tmp}/${1-$progname}"
  317: 
  318:     if test "$opt_dry_run" = ":"; then
  319:       # Return a directory name, but don't create it in dry-run mode
  320:       my_tmpdir="${my_template}-$$"
  321:     else
  322: 
  323:       # If mktemp works, use that first and foremost
  324:       my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
  325: 
  326:       if test ! -d "$my_tmpdir"; then
  327:         # Failing that, at least try and use $RANDOM to avoid a race
  328:         my_tmpdir="${my_template}-${RANDOM-0}$$"
  329: 
  330:         save_mktempdir_umask=`umask`
  331:         umask 0077
  332:         $MKDIR "$my_tmpdir"
  333:         umask $save_mktempdir_umask
  334:       fi
  335: 
  336:       # If we're not in dry-run mode, bomb out on failure
  337:       test -d "$my_tmpdir" || \
  338:         func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
  339:     fi
  340: 
  341:     $ECHO "X$my_tmpdir" | $Xsed
  342: }
  343: 
  344: 
  345: # func_quote_for_eval arg
  346: # Aesthetically quote ARG to be evaled later.
  347: # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
  348: # is double-quoted, suitable for a subsequent eval, whereas
  349: # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
  350: # which are still active within double quotes backslashified.
  351: func_quote_for_eval ()
  352: {
  353:     case $1 in
  354:       *[\\\`\"\$]*)
  355:         func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
  356:       *)
  357:         func_quote_for_eval_unquoted_result="$1" ;;
  358:     esac
  359: 
  360:     case $func_quote_for_eval_unquoted_result in
  361:       # Double-quote args containing shell metacharacters to delay
  362:       # word splitting, command substitution and and variable
  363:       # expansion for a subsequent eval.
  364:       # Many Bourne shells cannot handle close brackets correctly
  365:       # in scan sets, so we specify it separately.
  366:       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
  367:         func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
  368:         ;;
  369:       *)
  370:         func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
  371:     esac
  372: }
  373: 
  374: 
  375: # func_quote_for_expand arg
  376: # Aesthetically quote ARG to be evaled later; same as above,
  377: # but do not quote variable references.
  378: func_quote_for_expand ()
  379: {
  380:     case $1 in
  381:       *[\\\`\"]*)
  382:         my_arg=`$ECHO "X$1" | $Xsed \
  383:             -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
  384:       *)
  385:         my_arg="$1" ;;
  386:     esac
  387: 
  388:     case $my_arg in
  389:       # Double-quote args containing shell metacharacters to delay
  390:       # word splitting and command substitution for a subsequent eval.
  391:       # Many Bourne shells cannot handle close brackets correctly
  392:       # in scan sets, so we specify it separately.
  393:       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \     ]*|*]*|"")
  394:         my_arg="\"$my_arg\""
  395:         ;;
  396:     esac
  397: 
  398:     func_quote_for_expand_result="$my_arg"
  399: }
  400: 
  401: 
  402: # func_show_eval cmd [fail_exp]
  403: # Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
  404: # not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
  405: # is given, then evaluate it.
  406: func_show_eval ()
  407: {
  408:     my_cmd="$1"
  409:     my_fail_exp="${2-:}"
  410: 
  411:     ${opt_silent-false} || {
  412:       func_quote_for_expand "$my_cmd"
  413:       eval "func_echo $func_quote_for_expand_result"
  414:     }
  415: 
  416:     if ${opt_dry_run-false}; then :; else
  417:       eval "$my_cmd"
  418:       my_status=$?
  419:       if test "$my_status" -eq 0; then :; else
  420:         eval "(exit $my_status); $my_fail_exp"
  421:       fi
  422:     fi
  423: }
  424: 
  425: 
  426: 
  427: 
  428: 
  429: # func_version
  430: # Echo version message to standard output and exit.
  431: func_version ()
  432: {
  433:     $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
  434:         s/^# //
  435:         s/^# *$//
  436:         s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
  437:         p
  438:      }' < "$progpath"
  439:      exit $?
  440: }
  441: 
  442: # func_usage
  443: # Echo short help message to standard output and exit.
  444: func_usage ()
  445: {
  446:     $SED -n '/^# Usage:/,/# -h/ {
  447:         s/^# //
  448:         s/^# *$//
  449:         s/\$progname/'$progname'/
  450:         p
  451:     }' < "$progpath"
  452:     $ECHO
  453:     $ECHO "run \`$progname --help | more' for full usage"
  454:     exit $?
  455: }
  456: 
  457: # func_help
  458: # Echo long help message to standard output and exit.
  459: func_help ()
  460: {
  461:     $SED -n '/^# Usage:/,/# Report bugs to/ {
  462:         s/^# //
  463:         s/^# *$//
  464:         s*\$progname*'$progname'*
  465:         s*\$host*'"$host"'*
  466:         s*\$SHELL*'"$SHELL"'*
  467:         s*\$LTCC*'"$LTCC"'*
  468:         s*\$LTCFLAGS*'"$LTCFLAGS"'*
  469:         s*\$LD*'"$LD"'*
  470:         s/\$with_gnu_ld/'"$with_gnu_ld"'/
  471:         s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
  472:         s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
  473:         p
  474:      }' < "$progpath"
  475:     exit $?
  476: }
  477: 
  478: # func_missing_arg argname
  479: # Echo program name prefixed message to standard error and set global
  480: # exit_cmd.
  481: func_missing_arg ()
  482: {
  483:     func_error "missing argument for $1"
  484:     exit_cmd=exit
  485: }
  486: 
  487: exit_cmd=:
  488: 
  489: 
  490: 
  491: 
  492: 
  493: # Check that we have a working $ECHO.
  494: if test "X$1" = X--no-reexec; then
  495:   # Discard the --no-reexec flag, and continue.
  496:   shift
  497: elif test "X$1" = X--fallback-echo; then
  498:   # Avoid inline document here, it may be left over
  499:   :
  500: elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
  501:   # Yippee, $ECHO works!
  502:   :
  503: else
  504:   # Restart under the correct shell, and then maybe $ECHO will work.
  505:   exec $SHELL "$progpath" --no-reexec ${1+"$@"}
  506: fi
  507: 
  508: if test "X$1" = X--fallback-echo; then
  509:   # used as fallback echo
  510:   shift
  511:   cat <<EOF
  512: $*
  513: EOF
  514:   exit $EXIT_SUCCESS
  515: fi
  516: 
  517: magic="%%%MAGIC variable%%%"
  518: 
  519: 
  520: # Global variables.
  521: # $mode is unset
  522: nonopt=
  523: execute_dlfiles=
  524: preserve_args=
  525: lo2o="s/\\.lo\$/.${objext}/"
  526: o2lo="s/\\.${objext}\$/.lo/"
  527: extracted_archives=
  528: extracted_serial=0
  529: 
  530: opt_dry_run=false
  531: opt_duplicate_deps=false
  532: opt_silent=false
  533: opt_debug=:
  534: 
  535: # If this variable is set in any of the actions, the command in it
  536: # will be execed at the end.  This prevents here-documents from being
  537: # left over by shells.
  538: exec_cmd=
  539: 
  540: # func_fatal_configuration arg...
  541: # Echo program name prefixed message to standard error, followed by
  542: # a configuration failure hint, and exit.
  543: func_fatal_configuration ()
  544: {
  545:     func_error ${1+"$@"}
  546:     func_error "See the $PACKAGE documentation for more information."
  547:     func_fatal_error "Fatal configuration error."
  548: }
  549: 
  550: 
  551: # func_config
  552: # Display the configuration for all the tags in this script.
  553: func_config ()
  554: {
  555:     re_begincf='^# ### BEGIN LIBTOOL'
  556:     re_endcf='^# ### END LIBTOOL'
  557: 
  558:     # Default configuration.
  559:     $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
  560: 
  561:     # Now print the configurations for the tags.
  562:     for tagname in $taglist; do
  563:       $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
  564:     done
  565: 
  566:     exit $?
  567: }
  568: 
  569: # func_features
  570: # Display the features supported by this script.
  571: func_features ()
  572: {
  573:     $ECHO "host: $host"
  574:     if test "$build_libtool_libs" = yes; then
  575:       $ECHO "enable shared libraries"
  576:     else
  577:       $ECHO "disable shared libraries"
  578:     fi
  579:     if test "$build_old_libs" = yes; then
  580:       $ECHO "enable static libraries"
  581:     else
  582:       $ECHO "disable static libraries"
  583:     fi
  584: 
  585:     exit $?
  586: }
  587: 
  588: # func_enable_tag tagname
  589: # Verify that TAGNAME is valid, and either flag an error and exit, or
  590: # enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
  591: # variable here.
  592: func_enable_tag ()
  593: {
  594:   # Global variable:
  595:   tagname="$1"
  596: 
  597:   re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
  598:   re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
  599:   sed_extractcf="/$re_begincf/,/$re_endcf/p"
  600: 
  601:   # Validate tagname.
  602:   case $tagname in
  603:     *[!-_A-Za-z0-9,/]*)
  604:       func_fatal_error "invalid tag name: $tagname"
  605:       ;;
  606:   esac
  607: 
  608:   # Don't test for the "default" C tag, as we know it's
  609:   # there but not specially marked.
  610:   case $tagname in
  611:     CC) ;;
  612:     *)
  613:       if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
  614:         taglist="$taglist $tagname"
  615: 
  616:         # Evaluate the configuration.  Be careful to quote the path
  617:         # and the sed script, to avoid splitting on whitespace, but
  618:         # also don't use non-portable quotes within backquotes within
  619:         # quotes we have to do it in 2 steps:
  620:         extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
  621:         eval "$extractedcf"
  622:       else
  623:         func_error "ignoring unknown tag $tagname"
  624:       fi
  625:       ;;
  626:   esac
  627: }
  628: 
  629: 
  630: func_mode_help ()
  631: {
  632:     # We need to display help for each of the modes.
  633:     case $mode in
  634:       "")
  635:         # Generic help is extracted from the usage comments
  636:         # at the start of this file.
  637:         func_help
  638:         ;;
  639: 
  640:       clean)
  641:         $ECHO \
  642: "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
  643: 
  644: Remove files from the build directory.
  645: 
  646: RM is the name of the program to use to delete files associated wit