Annotation of libwww/config/ltmain.sh, revision 1.3

1.1       frystyk     1: # ltmain.sh - Provide generalized library-building support services.
1.2       frystyk     2: # NOTE: Changing this file will not affect anything until you rerun ltconfig.
                      3: #
                      4: # Copyright (C) 1996-1998 Free Software Foundation, Inc.
1.1       frystyk     5: # Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
                      6: #
                      7: # This program is free software; you can redistribute it and/or modify
                      8: # it under the terms of the GNU General Public License as published by
                      9: # the Free Software Foundation; either version 2 of the License, or
                     10: # (at your option) any later version.
                     11: #
                     12: # This program is distributed in the hope that it will be useful, but
                     13: # WITHOUT ANY WARRANTY; without even the implied warranty of
                     14: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                     15: # General Public License for more details.
                     16: #
                     17: # You should have received a copy of the GNU General Public License
                     18: # along with this program; if not, write to the Free Software
                     19: # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
                     20: #
                     21: # As a special exception to the GNU General Public License, if you
                     22: # distribute this file as part of a program that contains a
                     23: # configuration script generated by Autoconf, you may include it under
                     24: # the same distribution terms that you use for the rest of that program.
                     25: 
1.3     ! frystyk    26: # Check that we have a working $echo.
        !            27: if test "X$1" = X--no-reexec; then
        !            28:   # Discard the --no-reexec flag, and continue.
        !            29:   shift
        !            30: elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
        !            31:   # Yippee, $echo works!
        !            32:   :
        !            33: else
        !            34:   # Restart under the correct shell, and then maybe $echo will work.
        !            35:   exec $SHELL "$0" --no-reexec ${1+"$@"}
        !            36: fi
        !            37: 
1.1       frystyk    38: # The name of this program.
1.2       frystyk    39: progname=`$echo "$0" | sed 's%^.*/%%'`
                     40: modename="$progname"
1.1       frystyk    41: 
                     42: # Constants.
                     43: PROGRAM=ltmain.sh
                     44: PACKAGE=libtool
1.3     ! frystyk    45: VERSION=1.2b
1.1       frystyk    46: 
                     47: default_mode=
                     48: help="Try \`$progname --help' for more information."
                     49: magic="%%%MAGIC variable%%%"
                     50: mkdir="mkdir"
                     51: mv="mv -f"
                     52: rm="rm -f"
                     53: 
1.2       frystyk    54: # Sed substitution that helps us do robust quoting.  It backslashifies
                     55: # metacharacters that are still active within double-quoted strings.
                     56: Xsed='sed -e s/^X//'
                     57: sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
                     58: 
                     59: # NLS nuisances.
                     60: # Only set LANG and LC_ALL to C if already set.
                     61: # These must not be set unconditionally because not all systems understand
                     62: # e.g. LANG=C (notably SCO).
1.3     ! frystyk    63: # We save the old values to restore during execute mode.
        !            64: if test "${LC_ALL+set}" = set; then
        !            65:   save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
        !            66: fi
        !            67: if test "${LANG+set}" = set; then
        !            68:   save_LANG="$LANG"; LANG=C; export LANG
        !            69: fi
1.2       frystyk    70: 
1.1       frystyk    71: if test "$LTCONFIG_VERSION" != "$VERSION"; then
1.2       frystyk    72:   echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
1.1       frystyk    73:   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
                     74:   exit 1
                     75: fi
                     76: 
                     77: if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1.2       frystyk    78:   echo "$modename: not configured to build any kind of library" 1>&2
1.1       frystyk    79:   echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
                     80:   exit 1
                     81: fi
                     82: 
                     83: # Global variables.
                     84: mode=$default_mode
                     85: nonopt=
                     86: prev=
                     87: prevopt=
                     88: run=
1.2       frystyk    89: show="$echo"
1.1       frystyk    90: show_help=
1.2       frystyk    91: execute_dlfiles=
1.1       frystyk    92: 
                     93: # Parse our command line options once, thoroughly.
                     94: while test $# -gt 0
                     95: do
                     96:   arg="$1"
                     97:   shift
                     98: 
                     99:   case "$arg" in
1.2       frystyk   100:   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
1.1       frystyk   101:   *) optarg= ;;
                    102:   esac
                    103: 
                    104:   # If the previous option needs an argument, assign it.
                    105:   if test -n "$prev"; then
1.2       frystyk   106:     case "$prev" in
                    107:     execute_dlfiles)
                    108:       eval "$prev=\"\$$prev \$arg\""
                    109:       ;;
                    110:     *)
                    111:       eval "$prev=\$arg"
                    112:       ;;
                    113:     esac
                    114: 
1.1       frystyk   115:     prev=
                    116:     prevopt=
                    117:     continue
                    118:   fi
                    119: 
                    120:   # Have we seen a non-optional argument yet?
                    121:   case "$arg" in
                    122:   --help)
                    123:     show_help=yes
                    124:     ;;
                    125: 
                    126:   --version)
                    127:     echo "$PROGRAM (GNU $PACKAGE) $VERSION"
                    128:     exit 0
                    129:     ;;
                    130: 
1.3     ! frystyk   131:   --config)
        !           132:     sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
        !           133:     exit 0
        !           134:     ;;
        !           135: 
        !           136:   --debug)
        !           137:     echo "$progname: enabling shell trace mode"
        !           138:     set -x
        !           139:     ;;
        !           140: 
1.1       frystyk   141:   --dry-run | -n)
                    142:     run=:
                    143:     ;;
                    144: 
                    145:   --features)
                    146:     echo "host: $host"
                    147:     if test "$build_libtool_libs" = yes; then
                    148:       echo "enable shared libraries"
                    149:     else
                    150:       echo "disable shared libraries"
                    151:     fi
                    152:     if test "$build_old_libs" = yes; then
                    153:       echo "enable static libraries"
                    154:     else
                    155:       echo "disable static libraries"
                    156:     fi
                    157:     exit 0
                    158:     ;;
                    159: 
                    160:   --finish) mode="finish" ;;
                    161: 
                    162:   --mode) prevopt="--mode" prev=mode ;;
                    163:   --mode=*) mode="$optarg" ;;
                    164: 
1.2       frystyk   165:   --quiet | --silent)
                    166:     show=:
                    167:     ;;
                    168: 
                    169:   -dlopen)
                    170:     prevopt="-dlopen"
                    171:     prev=execute_dlfiles
                    172:     ;;
                    173: 
1.1       frystyk   174:   -*)
1.2       frystyk   175:     $echo "$modename: unrecognized option \`$arg'" 1>&2
                    176:     $echo "$help" 1>&2
1.1       frystyk   177:     exit 1
                    178:     ;;
                    179: 
                    180:   *)
                    181:     nonopt="$arg"
                    182:     break
                    183:     ;;
                    184:   esac
                    185: done
                    186: 
                    187: if test -n "$prevopt"; then
1.2       frystyk   188:   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
                    189:   $echo "$help" 1>&2
1.1       frystyk   190:   exit 1
                    191: fi
                    192: 
                    193: if test -z "$show_help"; then
                    194: 
                    195:   # Infer the operation mode.
                    196:   if test -z "$mode"; then
                    197:     case "$nonopt" in
1.2       frystyk   198:     *cc | *++ | gcc* | *-gcc*)
1.1       frystyk   199:       mode=link
                    200:       for arg
                    201:       do
                    202:         case "$arg" in
                    203:         -c)
                    204:            mode=compile
                    205:            break
                    206:            ;;
                    207:         esac
                    208:       done
                    209:       ;;
1.3     ! frystyk   210:     *db | *dbx | *strace | *truss)
1.2       frystyk   211:       mode=execute
                    212:       ;;
                    213:     *install*|cp|mv)
1.1       frystyk   214:       mode=install
                    215:       ;;
                    216:     *rm)
                    217:       mode=uninstall
                    218:       ;;
                    219:     *)
1.2       frystyk   220:       # If we have no mode, but dlfiles were specified, then do execute mode.
                    221:       test -n "$execute_dlfiles" && mode=execute
                    222: 
1.1       frystyk   223:       # Just use the default operation mode.
                    224:       if test -z "$mode"; then
1.2       frystyk   225:         if test -n "$nonopt"; then
                    226:           $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
                    227:         else
                    228:           $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
                    229:         fi
1.1       frystyk   230:       fi
                    231:       ;;
                    232:     esac
                    233:   fi
                    234: 
1.2       frystyk   235:   # Only execute mode is allowed to have -dlopen flags.
                    236:   if test -n "$execute_dlfiles" && test "$mode" != execute; then
                    237:     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
                    238:     $echo "$help" 1>&2
                    239:     exit 1
                    240:   fi
                    241: 
1.1       frystyk   242:   # Change the help message to a mode-specific one.
                    243:   generic_help="$help"
1.2       frystyk   244:   help="Try \`$modename --help --mode=$mode' for more information."
1.1       frystyk   245: 
                    246:   # These modes are in order of execution frequency so that they run quickly.
                    247:   case "$mode" in
                    248:   # libtool compile mode
                    249:   compile)
1.2       frystyk   250:     modename="$modename: compile"
1.1       frystyk   251:     # Get the compilation command and the source file.
1.2       frystyk   252:     base_compile=
1.1       frystyk   253:     lastarg=
1.2       frystyk   254:     srcfile="$nonopt"
                    255:     suppress_output=
1.1       frystyk   256: 
                    257:     for arg
                    258:     do
1.2       frystyk   259:       # Accept any command-line options.
1.1       frystyk   260:       case "$arg" in
1.2       frystyk   261:       -o)
                    262:        $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
                    263:        $echo "$help" 1>&2
                    264:        exit 1
                    265:        ;;
                    266: 
                    267:       -static)
                    268:        build_old_libs=yes
                    269:        continue
                    270:        ;;
                    271:       esac
                    272: 
                    273:       # Accept the current argument as the source file.
                    274:       lastarg="$srcfile"
                    275:       srcfile="$arg"
                    276: 
                    277:       # Aesthetically quote the previous argument.
                    278: 
                    279:       # Backslashify any backslashes, double quotes, and dollar signs.
                    280:       # These are the only characters that are still specially
                    281:       # interpreted inside of double-quoted scrings.
                    282:       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
                    283: 
                    284:       # Double-quote args containing other shell metacharacters.
                    285:       # Many Bourne shells cannot handle close brackets correctly in scan
                    286:       # sets, so we specify it separately.
                    287:       case "$lastarg" in
                    288:       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*)
                    289:        lastarg="\"$lastarg\""
                    290:        ;;
1.1       frystyk   291:       esac
                    292: 
1.2       frystyk   293:       # Add the previous argument to base_compile.
                    294:       if test -z "$base_compile"; then
                    295:        base_compile="$lastarg"
                    296:       else
                    297:        base_compile="$base_compile $lastarg"
                    298:       fi
1.1       frystyk   299:     done
                    300: 
                    301:     # Get the name of the library object.
1.2       frystyk   302:     libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
1.1       frystyk   303: 
                    304:     # Recognize several different file suffixes.
1.2       frystyk   305:     xform='[cCFSfms]'
1.1       frystyk   306:     case "$libobj" in
1.2       frystyk   307:     *.ada) xform=ada ;;
                    308:     *.adb) xform=adb ;;
                    309:     *.ads) xform=ads ;;
                    310:     *.asm) xform=asm ;;
                    311:     *.c++) xform=c++ ;;
1.1       frystyk   312:     *.cc) xform=cc ;;
                    313:     *.cpp) xform=cpp ;;
                    314:     *.cxx) xform=cxx ;;
                    315:     *.f90) xform=f90 ;;
1.2       frystyk   316:     *.for) xform=for ;;
1.1       frystyk   317:     esac
                    318: 
1.2       frystyk   319:     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
1.1       frystyk   320: 
                    321:     case "$libobj" in
1.2       frystyk   322:     *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;;
1.1       frystyk   323:     *)
1.2       frystyk   324:       $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
1.1       frystyk   325:       exit 1
                    326:       ;;
                    327:     esac
                    328: 
                    329:     if test -z "$base_compile"; then
1.2       frystyk   330:       $echo "$modename: you must specify a compilation command" 1>&2
                    331:       $echo "$help" 1>&2
1.1       frystyk   332:       exit 1
                    333:     fi
                    334: 
                    335:     # Delete any leftover library objects.
                    336:     if test "$build_old_libs" = yes; then
                    337:       $run $rm $obj $libobj
                    338:       trap "$run $rm $obj $libobj; exit 1" 1 2 15
                    339:     else
                    340:       $run $rm $libobj
                    341:       trap "$run $rm $libobj; exit 1" 1 2 15
                    342:     fi
                    343: 
                    344:     # Only build a PIC object if we are building libtool libraries.
                    345:     if test "$build_libtool_libs" = yes; then
1.2       frystyk   346:       # Without this assignment, base_compile gets emptied.
                    347:       fbsd_hideous_sh_bug=$base_compile
                    348: 
1.1       frystyk   349:       # All platforms use -DPIC, to notify preprocessed assembler code.
                    350:       $show "$base_compile$pic_flag -DPIC $srcfile"
1.2       frystyk   351:       if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then :
1.1       frystyk   352:       else
1.2       frystyk   353:         test -n "$obj" && $run $rm $obj
                    354:         exit 1
1.1       frystyk   355:       fi
                    356: 
                    357:       # If we have no pic_flag, then copy the object into place and finish.
                    358:       if test -z "$pic_flag"; then
1.2       frystyk   359:         $show "$LN_S $obj $libobj"
                    360:         $run $LN_S $obj $libobj
                    361:         exit $?
1.1       frystyk   362:       fi
                    363: 
                    364:       # Just move the object, then go on to compile the next one
                    365:       $show "$mv $obj $libobj"
1.3     ! frystyk   366:       $run $mv $obj $libobj || exit $?
1.2       frystyk   367: 
                    368:       # Allow error messages only from the first compilation.
                    369:       suppress_output=' >/dev/null 2>&1'
1.1       frystyk   370:     fi
                    371: 
                    372:     # Only build a position-dependent object if we build old libraries.
                    373:     if test "$build_old_libs" = yes; then
1.2       frystyk   374:       # Suppress compiler output if we already did a PIC compilation.
                    375:       $show "$base_compile $srcfile$suppress_output"
                    376:       if $run eval "$base_compile \$srcfile$suppress_output"; then :
1.1       frystyk   377:       else
                    378:         $run $rm $obj $libobj
                    379:         exit 1
                    380:       fi
                    381:     fi
                    382: 
1.2       frystyk   383:     # Create an invalid libtool object if no PIC, so that we do not
                    384:     # accidentally link it into a program.
1.1       frystyk   385:     if test "$build_libtool_libs" != yes; then
                    386:       $show "echo timestamp > $libobj"
1.2       frystyk   387:       $run eval "echo timestamp > \$libobj" || exit $?
1.1       frystyk   388:     fi
                    389: 
                    390:     exit 0
                    391:     ;;
                    392: 
                    393:   # libtool link mode
                    394:   link)
1.2       frystyk   395:     modename="$modename: link"
                    396:     CC="$nonopt"
                    397:     allow_undefined=yes
                    398:     compile_command="$CC"
                    399:     finalize_command="$CC"
                    400: 
1.1       frystyk   401:     compile_shlibpath=
                    402:     finalize_shlibpath=
1.3     ! frystyk   403:     convenience=
        !           404:     old_convenience=
1.1       frystyk   405:     deplibs=
1.2       frystyk   406:     dlfiles=
                    407:     dlprefiles=
1.1       frystyk   408:     export_dynamic=no
1.3     ! frystyk   409:     generated=
1.1       frystyk   410:     hardcode_libdirs=
                    411:     libobjs=
                    412:     link_against_libtool_libs=
                    413:     ltlibs=
                    414:     objs=
                    415:     prev=
                    416:     prevarg=
1.2       frystyk   417:     release=
                    418:     rpath=
1.1       frystyk   419:     perm_rpath=
                    420:     temp_rpath=
                    421:     vinfo=
                    422: 
                    423:     # We need to know -static, to get the right output filenames.
                    424:     for arg
                    425:     do
                    426:       case "$arg" in
1.2       frystyk   427:       -all-static | -static)
                    428:         if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
                    429:            $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
                    430:         fi
1.1       frystyk   431:         build_libtool_libs=no
1.2       frystyk   432:        build_old_libs=yes
1.1       frystyk   433:         break
                    434:         ;;
                    435:       esac
                    436:     done
                    437: 
1.2       frystyk   438:     # See if our shared archives depend on static archives.
                    439:     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
                    440: 
                    441:     # Go through the arguments, transforming them on the way.
1.3     ! frystyk   442:     while test $# -gt 0; do
        !           443:       arg="$1"
        !           444:       shift
        !           445: 
1.1       frystyk   446:       # If the previous option needs an argument, assign it.
                    447:       if test -n "$prev"; then
1.2       frystyk   448:         case "$prev" in
                    449:         output)
                    450:           compile_command="$compile_command @OUTPUT@"
                    451:           finalize_command="$finalize_command @OUTPUT@"
                    452:           ;;
                    453:         esac
                    454: 
                    455:         case "$prev" in
                    456:         dlfiles|dlprefiles)
                    457:           case "$arg" in
                    458:           *.la | *.lo) ;;  # We handle these cases below.
                    459:           *)
                    460:             dlprefiles="$dlprefiles $arg"
                    461:             test "$prev" = dlfiles && dlfiles="$dlfiles $arg"
                    462:             prev=
                    463:             ;;
                    464:           esac
                    465:           ;;
                    466:        release)
                    467:          release="-$arg"
                    468:          prev=
                    469:          continue
                    470:          ;;
                    471:         rpath)
                    472:           rpath="$rpath $arg"
                    473:          prev=
                    474:          continue
1.1       frystyk   475:          ;;
1.2       frystyk   476:         *)
                    477:           eval "$prev=\"\$arg\""
                    478:           prev=
                    479:           continue
                    480:           ;;
                    481:         esac
1.1       frystyk   482:       fi
                    483: 
                    484:       prevarg="$arg"
                    485: 
                    486:       case "$arg" in
1.2       frystyk   487:       -all-static)
                    488:        if test -n "$link_static_flag"; then
                    489:           compile_command="$compile_command $link_static_flag"
                    490:          finalize_command="$finalize_command $link_static_flag"
                    491:         fi
                    492:         continue
                    493:        ;;
1.1       frystyk   494: 
1.2       frystyk   495:       -allow-undefined)
                    496:        # FIXME: remove this flag sometime in the future.
                    497:        $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1.1       frystyk   498:        continue
                    499:        ;;
                    500: 
1.2       frystyk   501:       -dlopen)
                    502:         prev=dlfiles
                    503:         continue
                    504:         ;;
                    505: 
                    506:       -dlpreopen)
                    507:         prev=dlprefiles
                    508:         continue
                    509:         ;;
                    510: 
                    511:       -export-dynamic)
                    512:         if test "$export_dynamic" != yes; then
                    513:           export_dynamic=yes
                    514:          if test -n "$export_dynamic_flag_spec"; then
1.3     ! frystyk   515:            eval arg=\"$export_dynamic_flag_spec\"
1.2       frystyk   516:          else
                    517:            arg=
                    518:          fi
                    519: 
                    520:           # Add the symbol object into the linking commands.
                    521:          compile_command="$compile_command @SYMFILE@"
                    522:          finalize_command="$finalize_command @SYMFILE@"
                    523:         fi
                    524:         ;;
                    525: 
1.1       frystyk   526:       -L*)
1.2       frystyk   527:         dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
                    528:         case "$dir" in
1.3     ! frystyk   529:         /* | [A-Za-z]:[/\\]*)
1.2       frystyk   530:          # Add the corresponding hardcode_libdir_flag, if it is not identical.
                    531:           ;;
                    532:         *)
                    533:           $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
                    534:           exit 1
                    535:           ;;
                    536:         esac
                    537:         deplibs="$deplibs $arg"
                    538:         ;;
1.1       frystyk   539: 
                    540:       -l*) deplibs="$deplibs $arg" ;;
                    541: 
1.2       frystyk   542:       -no-undefined)
                    543:        allow_undefined=no
                    544:        continue
                    545:        ;;
                    546: 
1.1       frystyk   547:       -o) prev=output ;;
                    548: 
1.2       frystyk   549:       -release)
                    550:        prev=release
1.1       frystyk   551:        continue
                    552:        ;;
                    553: 
1.2       frystyk   554:       -rpath)
                    555:         prev=rpath
                    556:         continue
                    557:         ;;
                    558: 
1.1       frystyk   559:       -static)
1.2       frystyk   560:        # If we have no pic_flag, then this is the same as -all-static.
                    561:        if test -z "$pic_flag" && test -n "$link_static_flag"; then
                    562:           compile_command="$compile_command $link_static_flag"
                    563:          finalize_command="$finalize_command $link_static_flag"
                    564:         fi
1.1       frystyk   565:        continue
                    566:        ;;
                    567: 
                    568:       -version-info)
1.2       frystyk   569:         prev=vinfo
                    570:         continue
                    571:         ;;
1.1       frystyk   572: 
1.2       frystyk   573:       # Some other compiler flag.
                    574:       -* | +*)
                    575:        # Unknown arguments in both finalize_command and compile_command need
                    576:        # to be aesthetically quoted because they are evaled later.
                    577:        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
                    578:        case "$arg" in
                    579:        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
                    580:          arg="\"$arg\""
                    581:          ;;
                    582:        esac
                    583:         ;;
1.1       frystyk   584: 
1.2       frystyk   585:       *.o | *.a)
                    586:         # A standard object.
                    587:         objs="$objs $arg"
                    588:         ;;
1.1       frystyk   589: 
                    590:       *.lo)
1.2       frystyk   591:         # A library object.
                    592:        if test "$prev" = dlfiles; then
                    593:          dlfiles="$dlfiles $arg"
                    594:          if test "$build_libtool_libs" = yes; then
                    595:            prev=
                    596:            continue
                    597:          else
                    598:            # If libtool objects are unsupported, then we need to preload.
                    599:            prev=dlprefiles
                    600:          fi
1.1       frystyk   601:        fi
                    602: 
1.2       frystyk   603:        if test "$prev" = dlprefiles; then
                    604:          # Preload the old-style object.
1.3     ! frystyk   605:          dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/.o/'`
1.2       frystyk   606:          prev=
1.1       frystyk   607:        fi
1.2       frystyk   608:        libobjs="$libobjs $arg"
                    609:         ;;
1.1       frystyk   610: 
1.2       frystyk   611:       *.la)
                    612:         # A libtool-controlled library.
1.1       frystyk   613: 
1.2       frystyk   614:         dlname=
                    615:         libdir=
                    616:         library_names=
                    617:         old_library=
1.1       frystyk   618: 
1.2       frystyk   619:         # Check to see that this really is a libtool archive.
1.3     ! frystyk   620:         if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1.2       frystyk   621:         else
                    622:           $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
                    623:           exit 1
                    624:         fi
1.1       frystyk   625: 
1.2       frystyk   626:         # If there is no directory component, then add one.
                    627:         case "$arg" in
                    628:         */* | *\\*) . $arg ;;
                    629:         *) . ./$arg ;;
                    630:         esac
1.1       frystyk   631: 
1.2       frystyk   632:         # Get the name of the library we link against.
                    633:         linklib=
                    634:         for l in $old_library $library_names; do
                    635:           linklib="$l"
                    636:         done
1.1       frystyk   637: 
1.2       frystyk   638:         if test -z "$linklib"; then
                    639:           $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
                    640:           exit 1
                    641:         fi
1.1       frystyk   642: 
1.2       frystyk   643:         # Find the relevant object directory and library name.
                    644:         name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
                    645:         dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
                    646:         if test "X$dir" = "X$arg"; then
                    647:           dir="$objdir"
                    648:         else
                    649:           dir="$dir/$objdir"
                    650:         fi
1.1       frystyk   651: 
1.3     ! frystyk   652:         if test -z "$libdir"; then
        !           653:          # It is a libtool convenience library, so add in its objects.
        !           654:          convenience="$convenience $dir/$old_library"l
        !           655:          old_convenience="$old_convenience $dir/$old_library"
        !           656:          compile_command="$compile_command $dir/$old_library"
        !           657:          finalize_command="$finalize_command $dir/$old_library"
        !           658:          continue
        !           659:        fi
        !           660: 
1.2       frystyk   661:         # This library was specified with -dlopen.
                    662:         if test "$prev" = dlfiles; then
                    663:           dlfiles="$dlfiles $arg"
                    664:           if test -z "$dlname"; then
                    665:             # If there is no dlname, we need to preload.
                    666:             prev=dlprefiles
                    667:           else
                    668:             # We should not create a dependency on this library, but we
                    669:            # may need any libraries it requires.
                    670:            compile_command="$compile_command$dependency_libs"
                    671:            finalize_command="$finalize_command$dependency_libs"
                    672:             prev=
                    673:             continue
                    674:           fi
                    675:         fi
1.1       frystyk   676: 
1.2       frystyk   677:         # The library was specified with -dlpreopen.
                    678:         if test "$prev" = dlprefiles; then
                    679:           # Prefer using a static library (so that no silly _DYNAMIC symbols
                    680:           # are required to link).
                    681:           if test -n "$old_library"; then
                    682:             dlprefiles="$dlprefiles $dir/$old_library"
                    683:           else
                    684:             dlprefiles="$dlprefiles $dir/$linklib"
                    685:           fi
                    686:           prev=
                    687:         fi
1.1       frystyk   688: 
1.2       frystyk   689:         if test "$build_libtool_libs" = yes && test -n "$library_names"; then
                    690:           link_against_libtool_libs="$link_against_libtool_libs $arg"
                    691:           if test -n "$shlibpath_var"; then
                    692:             # Make sure the rpath contains only unique directories.
                    693:             case "$temp_rpath " in
                    694:             *" $dir "*) ;;
                    695:             *) temp_rpath="$temp_rpath $dir" ;;
                    696:             esac
                    697:           fi
                    698: 
                    699:          # This is the magic to use -rpath.
                    700:           if test -n "$hardcode_libdir_flag_spec"; then
                    701:             if test -n "$hardcode_libdir_separator"; then
                    702:               if test -z "$hardcode_libdirs"; then
                    703:                 # Put the magic libdir with the hardcode flag.
                    704:                 hardcode_libdirs="$libdir"
                    705:                 libdir="@HARDCODE_LIBDIRS@"
                    706:               else
                    707:                 # Just accumulate the unique libdirs.
                    708:                case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
                    709:                *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                    710:                  ;;
                    711:                *)
                    712:                  hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
                    713:                  ;;
                    714:                esac
                    715:                 libdir=
                    716:               fi
                    717:             fi
                    718: 
                    719:             if test -n "$libdir"; then
1.3     ! frystyk   720:               eval flag=\"$hardcode_libdir_flag_spec\"
1.2       frystyk   721: 
                    722:               compile_command="$compile_command $flag"
                    723:               finalize_command="$finalize_command $flag"
                    724:             fi
                    725:           elif test -n "$runpath_var"; then
                    726:             # Do the same for the permanent run path.
                    727:             case "$perm_rpath " in
                    728:             *" $libdir "*) ;;
                    729:             *) perm_rpath="$perm_rpath $libdir" ;;
                    730:             esac
                    731:           fi
                    732: 
                    733: 
1.3     ! frystyk   734:          lib_linked=yes
1.2       frystyk   735:           case "$hardcode_action" in
1.3     ! frystyk   736:           immediate | unsupported)
1.2       frystyk   737:             if test "$hardcode_direct" = no; then
                    738:               compile_command="$compile_command $dir/$linklib"
                    739:             elif test "$hardcode_minus_L" = no; then
                    740:               compile_command="$compile_command -L$dir -l$name"
                    741:             elif test "$hardcode_shlibpath_var" = no; then
                    742:               compile_shlibpath="$compile_shlibpath$dir:"
                    743:               compile_command="$compile_command -l$name"
1.3     ! frystyk   744:            else
        !           745:              lib_linked=no
1.2       frystyk   746:             fi
                    747:             ;;
                    748: 
                    749:           relink)
                    750:             # We need an absolute path.
                    751:             case "$dir" in
1.3     ! frystyk   752:             /* | [A-Za-z]:[/\\]*) ;;
1.2       frystyk   753:             *)
                    754:               absdir=`cd "$dir" && pwd`
                    755:               if test -z "$absdir"; then
                    756:                 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
                    757:                 exit 1
                    758:               fi
                    759:               dir="$absdir"
                    760:               ;;
                    761:             esac
                    762: 
                    763:             if test "$hardcode_direct" = yes; then
                    764:               compile_command="$compile_command $dir/$linklib"
                    765:             elif test "$hardcode_minus_L" = yes; then
                    766:               compile_command="$compile_command -L$dir -l$name"
                    767:             elif test "$hardcode_shlibpath_var" = yes; then
                    768:               compile_shlibpath="$compile_shlibpath$dir:"
                    769:               compile_command="$compile_command -l$name"
1.3     ! frystyk   770:            else
        !           771:              lib_linked=no
1.2       frystyk   772:             fi
                    773:             ;;
                    774: 
1.3     ! frystyk   775:          *)
        !           776:            lib_linked=no
        !           777:            ;;
1.2       frystyk   778:           esac
                    779: 
1.3     ! frystyk   780:          if test "$lib_linked" != yes; then
        !           781:            $echo "$modename: configuration error: unsupported hardcode properties"
        !           782:            exit 1
        !           783:          fi
        !           784: 
1.2       frystyk   785:           # Finalize command for both is simple: just hardcode it.
                    786:           if test "$hardcode_direct" = yes; then
                    787:             finalize_command="$finalize_command $libdir/$linklib"
                    788:           elif test "$hardcode_minus_L" = yes; then
                    789:             finalize_command="$finalize_command -L$libdir -l$name"
                    790:           elif test "$hardcode_shlibpath_var" = yes; then
                    791:             finalize_shlibpath="$finalize_shlibpath$libdir:"
                    792:             finalize_command="$finalize_command -l$name"
1.1       frystyk   793:           else
1.2       frystyk   794:             # We cannot seem to hardcode it, guess we'll fake it.
                    795:             finalize_command="$finalize_command -L$libdir -l$name"
                    796:           fi
1.1       frystyk   797:         else
                    798:           # Transform directly to old archives if we don't build new libraries.
                    799:           if test -n "$pic_flag" && test -z "$old_library"; then
1.2       frystyk   800:             $echo "$modename: cannot find static library for \`$arg'" 1>&2
                    801:             exit 1
                    802:           fi
                    803: 
                    804:          # Here we assume that one of hardcode_direct or hardcode_minus_L
                    805:          # is not unsupported.  This is valid on all known static and
                    806:          # shared platforms.
                    807:          if test "$hardcode_direct" != unsupported; then
                    808:            test -n "$old_library" && linklib="$old_library"
                    809:            compile_command="$compile_command $dir/$linklib"
                    810:            finalize_command="$finalize_command $dir/$linklib"
                    811:          else
                    812:            compile_command="$compile_command -L$dir -l$name"
                    813:            finalize_command="$finalize_command -L$dir -l$name"
1.1       frystyk   814:          fi
                    815:         fi
1.2       frystyk   816: 
                    817:        # Add in any libraries that this one depends upon.
                    818:        compile_command="$compile_command$dependency_libs"
                    819:        finalize_command="$finalize_command$dependency_libs"
1.1       frystyk   820:        continue
1.2       frystyk   821:         ;;
1.1       frystyk   822: 
1.2       frystyk   823:       # Some other compiler argument.
1.1       frystyk   824:       *)
1.2       frystyk   825:        # Unknown arguments in both finalize_command and compile_command need
                    826:        # to be aesthetically quoted because they are evaled later.
                    827:        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
                    828:        case "$arg" in
                    829:        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*)
                    830:          arg="\"$arg\""
                    831:          ;;
                    832:        esac
                    833:         ;;
1.1       frystyk   834:       esac
                    835: 
1.2       frystyk   836:       # Now actually substitute the argument into the commands.
                    837:       if test -n "$arg"; then
                    838:        compile_command="$compile_command $arg"
                    839:        finalize_command="$finalize_command $arg"
                    840:       fi
1.1       frystyk   841:     done
                    842: 
                    843:     if test -n "$prev"; then
1.2       frystyk   844:       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
                    845:       $echo "$help" 1>&2
1.1       frystyk   846:       exit 1
                    847:     fi
                    848: 
1.3     ! frystyk   849:     oldlibs=
1.1       frystyk   850:     case "$output" in
                    851:     "")
1.2       frystyk   852:       $echo "$modename: you must specify an output file" 1>&2
                    853:       $echo "$help" 1>&2
1.1       frystyk   854:       exit 1
                    855:       ;;
                    856: 
1.2       frystyk   857:     */* | *\\*)
                    858:       $echo "$modename: output file \`$output' must have no directory components" 1>&2
1.3     ! frystyk   859:       $echo "$help" 1>&2
1.1       frystyk   860:       exit 1
                    861:       ;;
                    862: 
1.2       frystyk   863:     *.a)
1.3     ! frystyk   864:       if test -n "$link_against_libtool_libs"; then
        !           865:         $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
        !           866:         exit 1
        !           867:       fi
        !           868: 
        !           869:       if test -n "$deplibs"; then
        !           870:         $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
        !           871:       fi
        !           872: 
        !           873:       if test -n "$dlfiles$dlprefiles"; then
        !           874:         $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
        !           875:       fi
        !           876: 
        !           877:       if test -n "$rpath"; then
        !           878:         $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
        !           879:       fi
        !           880: 
        !           881:       if test -n "$vinfo"; then
        !           882:         $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
        !           883:       fi
        !           884: 
        !           885:       if test -n "$release"; then
        !           886:         $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
        !           887:       fi
        !           888: 
1.2       frystyk   889:       # Now set the variables for building old libraries.
                    890:       build_libtool_libs=no
1.3     ! frystyk   891:       oldlibs="$output"
1.2       frystyk   892:       ;;
                    893: 
1.1       frystyk   894:     *.la)
1.2       frystyk   895:       # Make sure we only generate libraries of the form `libNAME.la'.
                    896:       case "$output" in
                    897:       lib*) ;;
                    898:       *)
1.3     ! frystyk   899:        $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1.2       frystyk   900:        $echo "$help" 1>&2
                    901:        exit 1
                    902:        ;;
                    903:       esac
                    904: 
                    905:       name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1.3     ! frystyk   906:       eval libname=\"$libname_spec\"
1.1       frystyk   907: 
                    908:       # All the library-specific variables (install_libdir is set above).
                    909:       library_names=
                    910:       old_library=
                    911:       dlname=
                    912: 
                    913:       if test -n "$objs"; then
1.2       frystyk   914:         $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
                    915:         exit 1
1.1       frystyk   916:       fi
                    917: 
                    918:       # How the heck are we supposed to write a wrapper for a shared library?
                    919:       if test -n "$link_against_libtool_libs"; then
1.3     ! frystyk   920:         $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1.2       frystyk   921:         exit 1
                    922:       fi
                    923: 
                    924:       if test -n "$dlfiles$dlprefiles"; then
1.3     ! frystyk   925:         $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1.1       frystyk   926:       fi
                    927: 
1.2       frystyk   928:       set dummy $rpath
                    929:       if test $# -gt 2; then
                    930:        $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1.1       frystyk   931:       fi
1.2       frystyk   932:       install_libdir="$2"
1.1       frystyk   933: 
1.3     ! frystyk   934:       # Now set the variables for building old libraries.
        !           935:       oldlibs="$objdir/$libname.a"
        !           936:       if test -z "$rpath"; then
        !           937:        # Building a libtool convenience library.
        !           938:        oldlibs="$objdir/$libname.al $oldlibs"
        !           939:        build_libtool_libs=convenience
        !           940: 
        !           941:        if test -n "$vinfo"; then
        !           942:          $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
        !           943:        fi
        !           944: 
        !           945:        if test -n "$release"; then
        !           946:          $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
        !           947:        fi
        !           948:       else
        !           949: 
        !           950:        # Parse the version information argument.
        !           951:        IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
        !           952:        set dummy $vinfo 0 0 0
        !           953:        IFS="$save_ifs"
        !           954: 
        !           955:        if test -n "$8"; then
        !           956:          $echo "$modename: too many parameters to \`-version-info'" 1>&2
        !           957:          $echo "$help" 1>&2
        !           958:          exit 1
        !           959:        fi
        !           960: 
        !           961:        current="$2"
        !           962:        revision="$3"
        !           963:        age="$4"
        !           964: 
        !           965:        # Check that each of the things are valid numbers.
        !           966:        case "$current" in
        !           967:        0 | [1-9] | [1-9][0-9]*) ;;
        !           968:        *)
        !           969:          $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
        !           970:          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
        !           971:          exit 1
        !           972:          ;;
        !           973:        esac
        !           974: 
        !           975:        case "$revision" in
        !           976:        0 | [1-9] | [1-9][0-9]*) ;;
        !           977:        *)
        !           978:          $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
        !           979:          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
        !           980:          exit 1
        !           981:          ;;
        !           982:        esac
        !           983: 
        !           984:        case "$age" in
        !           985:        0 | [1-9] | [1-9][0-9]*) ;;
        !           986:        *)
        !           987:          $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
        !           988:          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
        !           989:          exit 1
        !           990:          ;;
        !           991:        esac
1.1       frystyk   992: 
1.3     ! frystyk   993:        if test $age -gt $current; then
        !           994:          $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
        !           995:          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
        !           996:          exit 1
        !           997:        fi
1.1       frystyk   998: 
1.3     ! frystyk   999:        # Calculate the version variables.
        !          1000:        major=
        !          1001:        versuffix=
        !          1002:        verstring=
        !          1003:        case "$version_type" in
        !          1004:        none) ;;
        !          1005: 
        !          1006:        linux)
        !          1007:          major=.`expr $current - $age`
        !          1008:          versuffix="$major.$age.$revision"
        !          1009:          ;;
1.1       frystyk  1010: 
1.3     ! frystyk  1011:        osf)
        !          1012:          major=`expr $current - $age`
        !          1013:          versuffix=".$current.$age.$revision"
        !          1014:          verstring="$current.$age.$revision"
        !          1015: 
        !          1016:          # Add in all the interfaces that we are compatible with.
        !          1017:          loop=$age
        !          1018:          while test $loop != 0; do
        !          1019:            iface=`expr $current - $loop`
        !          1020:            loop=`expr $loop - 1`
        !          1021:            verstring="$verstring:${iface}.0"
        !          1022:          done
1.1       frystyk  1023: 
1.3     ! frystyk  1024:          # Make executables depend on our current version.
        !          1025:          verstring="$verstring:${current}.0"
        !          1026:          ;;
1.1       frystyk  1027: 
1.3     ! frystyk  1028:        sunos)
        !          1029:          major=".$current"
        !          1030:          versuffix=".$current.$revision"
        !          1031:          ;;
1.1       frystyk  1032: 
1.3     ! frystyk  1033:        *)
        !          1034:          $echo "$modename: unknown library version type \`$version_type'" 1>&2
        !          1035:          echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
        !          1036:          exit 1
        !          1037:          ;;
        !          1038:        esac
1.1       frystyk  1039: 
1.3     ! frystyk  1040:        # Clear the version info if we defaulted, and they specified a release.
        !          1041:        if test -z "$vinfo" && test -n "$release"; then
        !          1042:          major=
        !          1043:          versuffix=
        !          1044:          verstring="0.0"
        !          1045:        fi
1.1       frystyk  1046: 
1.3     ! frystyk  1047:        # Check to see if the archive will have undefined symbols.
        !          1048:        if test "$allow_undefined" = yes; then
        !          1049:          if test "$allow_undefined_flag" = unsupported; then
        !          1050:            $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
        !          1051:            build_libtool_libs=no
        !          1052:            build_old_libs=yes
        !          1053:          fi
        !          1054:        else
        !          1055:          # Don't allow undefined symbols.
        !          1056:          allow_undefined_flag="$no_undefined_flag"
        !          1057:        fi
1.1       frystyk  1058: 
1.3     ! frystyk  1059:        # Add libc to deplibs on all systems.
        !          1060:        dependency_libs="$deplibs"
        !          1061:        deplibs="$deplibs -lc"
        !          1062:       fi
1.1       frystyk  1063: 
                   1064:       # Create the output directory, or remove our outputs if we need to.
                   1065:       if test -d $objdir; then
1.3     ! frystyk  1066:         $show "${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*"
        !          1067:        $run ${rm}r $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*
1.1       frystyk  1068:       else
                   1069:         $show "$mkdir $objdir"
1.2       frystyk  1070:         $run $mkdir $objdir
1.3     ! frystyk  1071:         status=$?
        !          1072:         if test $status -ne 0 && test ! -d $objdir; then
        !          1073:           exit $status
1.2       frystyk  1074:         fi
1.1       frystyk  1075:       fi
                   1076: 
                   1077:       if test "$build_libtool_libs" = yes; then
1.3     ! frystyk  1078:        # Get the real and link names of the library.
        !          1079:        eval library_names=\"$library_names_spec\"
        !          1080:        set dummy $library_names
        !          1081:        realname="$2"
        !          1082:        shift; shift
1.1       frystyk  1083: 
1.3     ! frystyk  1084:        if test -n "$soname_spec"; then
        !          1085:          eval soname=\"$soname_spec\"
        !          1086:        else
        !          1087:          soname="$realname"
        !          1088:        fi
1.1       frystyk  1089: 
1.3     ! frystyk  1090:        lib="$objdir/$realname"
1.1       frystyk  1091:        for link
                   1092:        do
                   1093:          linknames="$linknames $link"
                   1094:        done
                   1095: 
1.3     ! frystyk  1096:        # Use standard objects if they are PIC.
        !          1097:        test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
        !          1098: 
        !          1099:        # Transform .lo files to .o files.
        !          1100:        test "$build_old_libs" = yes && oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^   ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
        !          1101: 
        !          1102:        if test -n "$whole_archive_flag_spec"; then
        !          1103:          if test -n "$convenience"; then
        !          1104:            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
        !          1105:          fi
        !          1106:        else
        !          1107:          for xlib in $convenience; do
        !          1108:            # Extract the objects.
        !          1109:            xdir="$xlib"x
        !          1110:            generated="$generated $xdir"
        !          1111:            xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
        !          1112: 
        !          1113:            $show "${rm}r $xdir"
        !          1114:            $run ${rm}r "$xdir"
        !          1115:            $show "mkdir $xdir"
        !          1116:            $run mkdir "$xdir"
        !          1117:            status=$?
        !          1118:            if test $status -ne 0 && test ! -d "$xdir"; then
        !          1119:              exit $status
        !          1120:            fi
        !          1121:            $show "(cd $xdir && $AR x ../$xlib)"
        !          1122:            $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
1.1       frystyk  1123: 
1.3     ! frystyk  1124:            libobjs="$libobjs `echo $xdir/*`"
        !          1125:          done
        !          1126:        fi
        !          1127: 
        !          1128:        # Do each of the archive commands.
        !          1129:        eval cmds=\"$archive_cmds\"
        !          1130:        IFS="${IFS=     }"; save_ifs="$IFS"; IFS=';'
        !          1131:        for cmd in $cmds; do
        !          1132:          IFS="$save_ifs"
        !          1133:          $show "$cmd"
        !          1134:          $run eval "$cmd" || exit $?
        !          1135:        done
        !          1136:        IFS="$save_ifs"
1.1       frystyk  1137: 
1.3     ! frystyk  1138:        # Create links to the real library.
        !          1139:        for linkname in $linknames; do
        !          1140:          if test "$realname" != "$linkname"; then
        !          1141:            $show "(cd $objdir && $LN_S $realname $linkname)"
        !          1142:            $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
        !          1143:          fi
        !          1144:        done
1.1       frystyk  1145: 
1.3     ! frystyk  1146:        # If -export-dynamic was specified, set the dlname.
        !          1147:        if test "$export_dynamic" = yes; then
        !          1148:          # On all known operating systems, these are identical.
        !          1149:          dlname="$soname"
        !          1150:        fi
1.1       frystyk  1151:       fi
                   1152:       ;;
                   1153: 
                   1154:     *.lo | *.o)
                   1155:       if test -n "$link_against_libtool_libs"; then
1.3     ! frystyk  1156:         $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
1.2       frystyk  1157:         exit 1
1.1       frystyk  1158:       fi
                   1159: 
                   1160:       if test -n "$deplibs"; then
1.3     ! frystyk  1161:         $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
1.1       frystyk  1162:       fi
                   1163: 
1.2       frystyk  1164:       if test -n "$dlfiles$dlprefiles"; then
1.3     ! frystyk  1165:         $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
1.2       frystyk  1166:       fi
                   1167: 
                   1168:       if test -n "$rpath"; then
1.3     ! frystyk  1169:         $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
1.1       frystyk  1170:       fi
                   1171: 
                   1172:       if test -n "$vinfo"; then
1.3     ! frystyk  1173:         $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
1.2       frystyk  1174:       fi
                   1175: 
                   1176:       if test -n "$release"; then
1.3     ! frystyk  1177:         $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
1.1       frystyk  1178:       fi
                   1179: 
                   1180:       case "$output" in
                   1181:       *.lo)
1.2       frystyk  1182:         if test -n "$objs"; then
                   1183:           $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
                   1184:           exit 1
                   1185:         fi
                   1186:         libobj="$output"
                   1187:         obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'`
                   1188:         ;;
1.1       frystyk  1189:       *)
                   1190:         libobj=
1.2       frystyk  1191:         obj="$output"
                   1192:         ;;
1.1       frystyk  1193:       esac
                   1194: 
                   1195:       # Delete the old objects.
                   1196:       $run $rm $obj $libobj
                   1197: 
                   1198:       # Create the old-style object.
1.2       frystyk  1199:       reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^       ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
1.1       frystyk  1200: 
                   1201:       output="$obj"
1.3     ! frystyk  1202:       eval cmds=\"$reload_cmds\"
1.1       frystyk  1203:       IFS="${IFS=      }"; save_ifs="$IFS"; IFS=';'
                   1204:       for cmd in $cmds; do
                   1205:         IFS="$save_ifs"
                   1206:         $show "$cmd"
1.2       frystyk  1207:         $run eval "$cmd" || exit $?
1.1       frystyk  1208:       done
                   1209:       IFS="$save_ifs"
                   1210: 
                   1211:       # Exit if we aren't doing a library object file.
                   1212:       test -z "$libobj" && exit 0
                   1213: 
                   1214:       if test "$build_libtool_libs" != yes; then
                   1215:         # Create an invalid libtool object if no PIC, so that we don't
                   1216:         # accidentally link it into a program.
1.2       frystyk  1217:         $show "echo timestamp > $libobj"
                   1218:         $run eval "echo timestamp > $libobj" || exit $?
                   1219:         exit 0
1.1       frystyk  1220:       fi
                   1221: 
                   1222:       if test -n "$pic_flag"; then
1.2       frystyk  1223:         # Only do commands if we really have different PIC objects.
                   1224:         reload_objs="$libobjs"
                   1225:         output="$libobj"
1.3     ! frystyk  1226:         eval cmds=\"$reload_cmds\"
1.1       frystyk  1227:         IFS="${IFS=    }"; save_ifs="$IFS"; IFS=';'
                   1228:         for cmd in $cmds; do
                   1229:           IFS="$save_ifs"
                   1230:           $show "$cmd"
                   1231:           $run eval "$cmd" || exit $?
                   1232:         done
                   1233:         IFS="$save_ifs"
                   1234:       else
                   1235:         # Just create a symlink.
                   1236:         $show "$LN_S $obj $libobj"
1.3     ! frystyk  1237:         $run $LN_S $obj $libobj || exit $?
1.1       frystyk  1238:       fi
                   1239: 
                   1240:       exit 0
                   1241:       ;;
                   1242: 
                   1243:     *)
1.2       frystyk  1244:       if test -n "$vinfo"; then
1.3     ! frystyk  1245:         $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
1.1       frystyk  1246:       fi
                   1247: 
1.2       frystyk  1248:       if test -n "$release"; then
1.3     ! frystyk  1249:         $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
1.1       frystyk  1250:       fi
                   1251: 
1.2       frystyk  1252:       if test -n "$rpath"; then
                   1253:        # If the user specified any rpath flags, then add them.
                   1254:        for libdir in $rpath; do
                   1255:           if test -n "$hardcode_libdir_flag_spec"; then
                   1256:             if test -n "$hardcode_libdir_separator"; then
                   1257:               if test -z "$hardcode_libdirs"; then
                   1258:                 # Put the magic libdir with the hardcode flag.
                   1259:                 hardcode_libdirs="$libdir"
                   1260:                 libdir="@HARDCODE_LIBDIRS@"
                   1261:               else
                   1262:                 # Just accumulate the unique libdirs.
                   1263:                case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
                   1264:                *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                   1265:                  ;;
                   1266:                *)
                   1267:                  hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
                   1268:                  ;;
                   1269:                esac
                   1270:                 libdir=
                   1271:               fi
                   1272:             fi
                   1273: 
                   1274:             if test -n "$libdir"; then
1.3     ! frystyk  1275:               eval flag=\"$hardcode_libdir_flag_spec\"
1.2       frystyk  1276: 
                   1277:               compile_command="$compile_command $flag"
                   1278:               finalize_command="$finalize_command $flag"
                   1279:             fi
                   1280:           elif test -n "$runpath_var"; then
                   1281:             case "$perm_rpath " in
                   1282:             *" $libdir "*) ;;
                   1283:             *) perm_rpath="$perm_rpath $libdir" ;;
                   1284:             esac
                   1285:           fi
                   1286:        done
1.1       frystyk  1287:       fi
                   1288: 
1.2       frystyk  1289:       # Substitute the hardcoded libdirs into the compile commands.
                   1290:       if test -n "$hardcode_libdir_separator"; then
                   1291:        compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
                   1292:        finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
                   1293:       fi
                   1294: 
                   1295:       if test -n "$libobjs" && test "$build_old_libs" = yes; then
                   1296:         # Transform all the library objects into standard objects.
                   1297:         compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
                   1298:         finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
                   1299:       fi
                   1300: 
                   1301:       if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then
                   1302:         dlsyms="${output}S.c"
                   1303:       else
                   1304:         dlsyms=
                   1305:       fi
                   1306: 
                   1307:       if test -n "$dlsyms"; then
                   1308:         # Add our own program objects to the preloaded list.
                   1309:         dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'`
                   1310: 
                   1311:        # Discover the nlist of each of the dlfiles.
                   1312:         nlist="$objdir/${output}.nm"
1.1       frystyk  1313: 
1.2       frystyk  1314:        if test -d $objdir; then
                   1315:          $show "$rm $nlist ${nlist}T"
                   1316:          $run $rm "$nlist" "${nlist}T"
                   1317:        else
                   1318:          $show "$mkdir $objdir"
                   1319:          $run $mkdir $objdir
1.1       frystyk  1320:          status=$?
1.3     ! frystyk  1321:          if test $status -ne 0 && test ! -d $objdir; then
1.2       frystyk  1322:            exit $status
                   1323:          fi
1.1       frystyk  1324:        fi
1.2       frystyk  1325: 
                   1326:         for arg in $dlprefiles; do
                   1327:          $show "extracting global C symbols from \`$arg'"
                   1328:          $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
                   1329:         done
                   1330: 
                   1331:         # Parse the name list into a source file.
                   1332:         $show "creating $objdir/$dlsyms"
                   1333:         if test -z "$run"; then
                   1334:          # Make sure we at least have an empty file.
                   1335:          test -f "$nlist" || : > "$nlist"
                   1336: 
                   1337:          # Try sorting and uniquifying the output.
                   1338:          if sort "$nlist" | uniq > "$nlist"T; then
                   1339:            mv -f "$nlist"T "$nlist"
                   1340:            wcout=`wc "$nlist" 2>/dev/null`
                   1341:            count=`echo "X$wcout" | $Xsed -e 's/^[      ]*\([0-9][0-9]*\).*$/\1/'`
                   1342:            (test "$count" -ge 0) 2>/dev/null || count=-1
                   1343:          else
                   1344:            $rm "$nlist"T
                   1345:            count=-1
                   1346:          fi
                   1347: 
                   1348:          case "$dlsyms" in
                   1349:          "") ;;
                   1350:          *.c)
1.3     ! frystyk  1351:            $echo > "$objdir/$dlsyms" "\
        !          1352: /* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
1.2       frystyk  1353: /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
                   1354: 
                   1355: #ifdef __cplusplus
                   1356: extern \"C\" {
                   1357: #endif
                   1358: 
                   1359: /* Prevent the only kind of declaration conflicts we can make. */
                   1360: #define dld_preloaded_symbol_count some_other_symbol
                   1361: #define dld_preloaded_symbols some_other_symbol
                   1362: 
1.3     ! frystyk  1363: /* External symbol declarations for the compiler. */\
        !          1364: "
1.2       frystyk  1365: 
                   1366:            if test -f "$nlist"; then
                   1367:              sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
                   1368:            else
                   1369:              echo '/* NONE */' >> "$objdir/$dlsyms"
                   1370:            fi
                   1371: 
1.3     ! frystyk  1372:            $echo >> "$objdir/$dlsyms" "\
        !          1373: 
1.2       frystyk  1374: #undef dld_preloaded_symbol_count
                   1375: #undef dld_preloaded_symbols
                   1376: 
                   1377: #if defined (__STDC__) && __STDC__
                   1378: # define __ptr_t void *
                   1379: #else
                   1380: # define __ptr_t char *
                   1381: #endif
                   1382: 
                   1383: /* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
                   1384: int dld_preloaded_symbol_count = $count;
                   1385: 
                   1386: /* The mapping between symbol names and symbols. */
                   1387: struct {
                   1388:   char *name;
                   1389:   __ptr_t address;
                   1390: }
                   1391: dld_preloaded_symbols[] =
1.3     ! frystyk  1392: {\
        !          1393: "
1.2       frystyk  1394: 
                   1395:            if test -f "$nlist"; then
                   1396:              sed 's/^\(.*\) \(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
                   1397:            fi
                   1398: 
1.3     ! frystyk  1399:            $echo >> "$objdir/$dlsyms" "\
        !          1400:   {0, (__ptr_t) 0}
1.2       frystyk  1401: };
                   1402: 
                   1403: #ifdef __cplusplus
                   1404: }
1.3     ! frystyk  1405: #endif\
        !          1406: "
1.2       frystyk  1407:            ;;
                   1408: 
                   1409:          *)
                   1410:            $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
                   1411:            exit 1
                   1412:            ;;
                   1413:          esac
                   1414:         fi
                   1415: 
                   1416:         # Now compile the dynamic symbol file.
                   1417:         $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")"
                   1418:         $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $?
                   1419: 
                   1420:         # Transform the symbol file into the correct name.
                   1421:         compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
                   1422:         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"`
                   1423:       elif test "$export_dynamic" != yes; then
                   1424:         test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
                   1425:       else
                   1426:         # We keep going just in case the user didn't refer to
                   1427:         # dld_preloaded_symbols.  The linker will fail if global_symbol_pipe
                   1428:         # really was required.
                   1429:         $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
                   1430: 
                   1431:         # Nullify the symbol file.
                   1432:         compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
                   1433:         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
                   1434:       fi
                   1435: 
                   1436:       if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
                   1437:         # Replace the output file specification.
                   1438:         compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
                   1439:         finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
                   1440: 
                   1441:         # We have no uninstalled library dependencies, so finalize right now.
                   1442:         $show "$compile_command"
                   1443:         $run eval "$compile_command"
                   1444:         exit $?
1.1       frystyk  1445:       fi
                   1446: 
                   1447:       # Replace the output file specification.
1.2       frystyk  1448:       compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'`
                   1449:       finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'`
1.1       frystyk  1450: 
                   1451:       # Create the binary in the object directory, then wrap it.
1.3     ! frystyk  1452:       if test ! -d $objdir; then
1.1       frystyk  1453:         $show "$mkdir $objdir"
1.2       frystyk  1454:        $run $mkdir $objdir
                   1455:        status=$?
1.3     ! frystyk  1456:        if test $status -ne 0 && test ! -d $objdir; then
1.2       frystyk  1457:          exit $status
                   1458:        fi
1.1       frystyk  1459:       fi
                   1460: 
                   1461:       if test -n "$shlibpath_var"; then
                   1462:         # We should set the shlibpath_var
1.2       frystyk  1463:         rpath=
                   1464:         for dir in $temp_rpath; do
                   1465:           case "$dir" in
1.3     ! frystyk  1466:           /* | [A-Za-z]:[/\\]*)
1.2       frystyk  1467:             # Absolute path.
                   1468:             rpath="$rpath$dir:"
                   1469:             ;;
                   1470:           *)
                   1471:             # Relative path: add a thisdir entry.
                   1472:             rpath="$rpath\$thisdir/$dir:"
                   1473:             ;;
                   1474:           esac
                   1475:         done
                   1476:         temp_rpath="$rpath"
1.1       frystyk  1477:       fi
                   1478: 
                   1479:       # Delete the old output file.
                   1480:       $run $rm $output
                   1481: 
                   1482:       if test -n "$compile_shlibpath"; then
1.2       frystyk  1483:         compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command"
1.1       frystyk  1484:       fi
                   1485:       if test -n "$finalize_shlibpath"; then
1.2       frystyk  1486:         finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
1.1       frystyk  1487:       fi
                   1488: 
1.2       frystyk  1489:       if test -n "$runpath_var" && test -n "$perm_rpath"; then
                   1490:         # We should set the runpath_var.
                   1491:         rpath=
                   1492:         for dir in $perm_rpath; do
                   1493:           rpath="$rpath$dir:"
                   1494:         done
                   1495:         compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command"
                   1496:         finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command"
1.1       frystyk  1497:       fi
                   1498: 
1.3     ! frystyk  1499:       if test "$hardcode_action" = relink; then
1.2       frystyk  1500:         # AGH! Flame the AIX and HP-UX people for me, will ya?
                   1501:         $echo "$modename: warning: using a buggy system linker" 1>&2
                   1502:         $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
1.3     ! frystyk  1503:       fi
1.1       frystyk  1504: 
                   1505:       $show "$compile_command"
                   1506:       $run eval "$compile_command" || exit $?
                   1507: 
                   1508:       # Now create the wrapper script.
1.2       frystyk  1509:       $show "creating $output"
                   1510: 
                   1511:       # Quote the finalize command for shipping.
                   1512:       finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"`
                   1513: 
                   1514:       # Quote $echo for shipping.
                   1515:       qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
1.1       frystyk  1516: 
                   1517:       # Only actually do things if our run command is non-null.
                   1518:       if test -z "$run"; then
1.2       frystyk  1519:         $rm $output
                   1520:         trap "$rm $output; exit 1" 1 2 15
1.1       frystyk  1521: 
1.3     ! frystyk  1522:         $echo > $output "\
        !          1523: #! $SHELL
1.1       frystyk  1524: 
                   1525: # $output - temporary wrapper script for $objdir/$output
1.3     ! frystyk  1526: # Generated by $PROGRAM - GNU $PACKAGE $VERSION
1.1       frystyk  1527: #
                   1528: # The $output program cannot be directly executed until all the libtool
                   1529: # libraries that it depends on are installed.
                   1530: #
                   1531: # This wrapper script should never be moved out of \``pwd`'.
                   1532: # If it is, it will not operate correctly.
                   1533: 
1.2       frystyk  1534: # Sed substitution that helps us do robust quoting.  It backslashifies
                   1535: # metacharacters that are still active within double-quoted strings.
                   1536: Xsed='sed -e s/^X//'
                   1537: sed_quote_subst='$sed_quote_subst'
                   1538: 
                   1539: # The HP-UX ksh and POSIX shell print the target directory to stdout
                   1540: # if CDPATH is set.
                   1541: if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
                   1542: 
1.1       frystyk  1543: # This environment variable determines our operation mode.
1.2       frystyk  1544: if test \"\$libtool_install_magic\" = \"$magic\"; then
1.1       frystyk  1545:   # install mode needs the following variables:
                   1546:   link_against_libtool_libs='$link_against_libtool_libs'
1.2       frystyk  1547:   finalize_command=\"$finalize_command\"
1.1       frystyk  1548: else
1.2       frystyk  1549:   # When we are sourced in execute mode, \$file and \$echo are already set.
1.3     ! frystyk  1550:   if test \"\$libtool_execute_magic\" != \"$magic\"; then
1.2       frystyk  1551:     echo=\"$qecho\"
                   1552:     file=\"\$0\"
1.3     ! frystyk  1553:     # Make sure echo works.
        !          1554:     if test \"X\$1\" = X--no-reexec; then
        !          1555:       # Discard the --no-reexec flag, and continue.
        !          1556:       shift
        !          1557:     elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
        !          1558:       # Yippee, \$echo works!
        !          1559:       :
        !          1560:     else
        !          1561:       # Restart under the correct shell, and then maybe \$echo will work.
        !          1562:       exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
        !          1563:     fi
        !          1564:   fi\
        !          1565: "
        !          1566:         $echo >> $output "\
1.2       frystyk  1567: 
1.1       frystyk  1568:   # Find the directory that this script lives in.
1.2       frystyk  1569:   thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
                   1570:   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
1.1       frystyk  1571: 
1.2       frystyk  1572:   # Follow symbolic links until we get to the real thisdir.
                   1573:   file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
                   1574:   while test -n \"\$file\"; do
                   1575:     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
                   1576: 
                   1577:     # If there was a directory component, then change thisdir.
                   1578:     if test \"x\$destdir\" != \"x\$file\"; then
                   1579:       case \"\$destdir\" in
1.3     ! frystyk  1580:       /* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;;
1.2       frystyk  1581:       *) thisdir=\"\$thisdir/\$destdir\" ;;
                   1582:       esac
                   1583:     fi
1.1       frystyk  1584: 
1.2       frystyk  1585:     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
                   1586:     file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
                   1587:   done
1.1       frystyk  1588: 
1.2       frystyk  1589:   # Try to get the absolute directory name.
                   1590:   absdir=\`cd \"\$thisdir\" && pwd\`
                   1591:   test -n \"\$absdir\" && thisdir=\"\$absdir\"
1.1       frystyk  1592: 
1.2       frystyk  1593:   progdir=\"\$thisdir/$objdir\"
                   1594:   program='$output'
1.1       frystyk  1595: 
1.2       frystyk  1596:   if test -f \"\$progdir/\$program\"; then"
1.1       frystyk  1597: 
1.2       frystyk  1598:         # Export our shlibpath_var if we have one.
                   1599:         if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
1.3     ! frystyk  1600:           $echo >> $output "\
        !          1601:     # Add our own library path to $shlibpath_var
1.2       frystyk  1602:     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
1.1       frystyk  1603: 
                   1604:     # Some systems cannot cope with colon-terminated $shlibpath_var
1.2       frystyk  1605:     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\`
1.1       frystyk  1606: 
                   1607:     export $shlibpath_var
1.2       frystyk  1608: "
                   1609:         fi
                   1610: 
1.3     ! frystyk  1611:         $echo >> $output "\
        !          1612:     if test \"\$libtool_execute_magic\" != \"$magic\"; then
1.2       frystyk  1613:       # Run the actual program with our arguments.
1.1       frystyk  1614: 
1.2       frystyk  1615:       # Export the path to the program.
                   1616:       PATH=\"\$progdir:\$PATH\"
                   1617:       export PATH
1.1       frystyk  1618: 
1.3     ! frystyk  1619:       exec \$program \${1+\"\$@\"}
1.1       frystyk  1620: 
1.3     ! frystyk  1621:       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
1.2       frystyk  1622:       exit 1
                   1623:     fi
1.1       frystyk  1624:   else
                   1625:     # The program doesn't exist.
1.2       frystyk  1626:     \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
                   1627:     \$echo \"This script is just a wrapper for \$program.\" 1>&2
                   1628:     echo \"See the $PACKAGE documentation for more information.\" 1>&2
1.1       frystyk  1629:     exit 1
                   1630:   fi
1.3     ! frystyk  1631: fi\
        !          1632: "
1.2       frystyk  1633:         chmod +x $output
1.1       frystyk  1634:       fi
                   1635:       exit 0
                   1636:       ;;
                   1637:     esac
                   1638: 
                   1639:     # See if we need to build an old-fashioned archive.
1.3     ! frystyk  1640:     for oldlib in $oldlibs; do
        !          1641: 
        !          1642:       if test "$build_libtool_libs" = convenience; then
        !          1643:        oldobjs="$libobjs"
        !          1644:        addlibs="$convenience"
        !          1645:        build_libtool_libs=no
        !          1646:       else
        !          1647:        addlibs="$old_convenience"
        !          1648:       fi
        !          1649: 
        !          1650:       # Add in members from convenience archives.
        !          1651:       for xlib in $addlibs; do
        !          1652:        # Extract the objects.
        !          1653:        xdir="$xlib"x
        !          1654:        generated="$generated $xdir"
        !          1655:        xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'`
        !          1656: 
        !          1657:        $show "${rm}r $xdir"
        !          1658:        $run ${rm}r "$xdir"
        !          1659:        $show "mkdir $xdir"
        !          1660:        $run mkdir "$xdir"
        !          1661:        status=$?
        !          1662:        if test $status -ne 0 && test ! -d "$xdir"; then
        !          1663:          exit $status
        !          1664:        fi
        !          1665:        $show "(cd $xdir && $AR x ../$xlib)"
        !          1666:        $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $?
        !          1667: 
        !          1668:        oldobjs="$oldobjs `echo $xdir/*`"
        !          1669:       done
1.1       frystyk  1670: 
1.2       frystyk  1671:       # Do each command in the archive commands.
                   1672:       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
1.3     ! frystyk  1673:        eval cmds=\"$old_archive_from_new_cmds\"
1.1       frystyk  1674:       else
1.3     ! frystyk  1675:        eval cmds=\"$old_archive_cmds\"
1.1       frystyk  1676:       fi
                   1677:       IFS="${IFS=      }"; save_ifs="$IFS"; IFS=';'
                   1678:       for cmd in $cmds; do
                   1679:         IFS="$save_ifs"
                   1680:         $show "$cmd"
1.2       frystyk  1681:         $run eval "$cmd" || exit $?
1.1       frystyk  1682:       done
                   1683:       IFS="$save_ifs"
1.3     ! frystyk  1684:     done
        !          1685: 
        !          1686:     if test -n "$generated"; then
        !          1687:       $show "${rm}r$generated"
        !          1688:       $run ${rm}r$generated
1.1       frystyk  1689:     fi
                   1690: 
                   1691:     # Now create the libtool archive.
                   1692:     case "$output" in
                   1693:     *.la)
                   1694:       old_library=
                   1695:       test "$build_old_libs" = yes && old_library="$libname.a"
1.2       frystyk  1696:       $show "creating $output"
1.1       frystyk  1697: 
                   1698:       # Only create the output if not a dry run.
                   1699:       if test -z "$run"; then
1.3     ! frystyk  1700:         $echo > $output "\
        !          1701: # $output - a libtool library file
        !          1702: # Generated by $PROGRAM - GNU $PACKAGE $VERSION
1.1       frystyk  1703: 
                   1704: # The name that we can dlopen(3).
                   1705: dlname='$dlname'
                   1706: 
                   1707: # Names of this library.
                   1708: library_names='$library_names'
                   1709: 
                   1710: # The name of the static archive.
                   1711: old_library='$old_library'
                   1712: 
1.2       frystyk  1713: # Libraries that this one depends upon.
                   1714: dependency_libs='$dependency_libs'
                   1715: 
1.1       frystyk  1716: # Version information for $libname.
                   1717: current=$current
                   1718: age=$age
                   1719: revision=$revision
                   1720: 
                   1721: # Directory that this library needs to be installed in:
1.3     ! frystyk  1722: libdir='$install_libdir'\
        !          1723: "
1.1       frystyk  1724:       fi
                   1725: 
                   1726:       # Do a symbolic link so that the libtool archive can be found in
                   1727:       # LD_LIBRARY_PATH before the program is installed.
                   1728:       $show "(cd $objdir && $LN_S ../$output $output)"
1.3     ! frystyk  1729:       $run eval "(cd $objdir && $LN_S ../$output $output)" || exit $?
1.1       frystyk  1730:       ;;
                   1731:     esac
                   1732:     exit 0
                   1733:     ;;
                   1734: 
                   1735:   # libtool install mode
                   1736:   install)
1.2       frystyk  1737:     modename="$modename: install"
                   1738: 
1.3     ! frystyk  1739:     # There may be an optional sh(1) argument at the beginning of
1.2       frystyk  1740:     # install_prog (especially on Windows NT).
                   1741:     if test "$nonopt" = "$SHELL"; then
                   1742:       # Aesthetically quote it.
                   1743:       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
                   1744:       case "$arg" in
                   1745:       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*)
                   1746:        arg="\"$arg\""
                   1747:        ;;
                   1748:       esac
                   1749:       install_prog="$arg "
                   1750:       arg="$1"
                   1751:       shift
                   1752:     else
                   1753:       install_prog=
                   1754:       arg="$nonopt"
                   1755:     fi
1.1       frystyk  1756: 
1.2       frystyk  1757:     # The real first argument should be the name of the installation program.
                   1758:     # Aesthetically quote it.
                   1759:     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
                   1760:     case "$arg" in
                   1761:     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \      ]*|*]*)
                   1762:       arg="\"$arg\""
                   1763:       ;;
                   1764:     esac
                   1765:     install_prog="$install_prog$arg"
1.1       frystyk  1766: 
                   1767:     # We need to accept at least all the BSD install flags.
                   1768:     dest=
                   1769:     files=
                   1770:     opts=
                   1771:     prev=
                   1772:     install_type=
1.3     ! frystyk  1773:     isdir=no
1.1       frystyk  1774:     stripme=
                   1775:     for arg
                   1776:     do
                   1777:       if test -n "$dest"; then
                   1778:         files="$files $dest"
1.2       frystyk  1779:         dest="$arg"
                   1780:         continue
1.1       frystyk  1781:       fi
                   1782: 
                   1783:       case "$arg" in
                   1784:       -d) isdir=yes ;;
                   1785:       -f) prev="-f" ;;
                   1786:       -g) prev="-g" ;;
                   1787:       -m) prev="-m" ;;
                   1788:       -o) prev="-o" ;;
                   1789:       -s)
1.2       frystyk  1790:         stripme=" -s"
                   1791:         continue
                   1792:         ;;
1.1       frystyk  1793:       -*) ;;
                   1794: 
                   1795:       *)
1.2       frystyk  1796:         # If the previous option needed an argument, then skip it.
                   1797:         if test -n "$prev"; then
                   1798:           prev=
                   1799:         else
                   1800:           dest="$arg"
                   1801:           continue
                   1802:         fi
1.1       frystyk  1803:         ;;
                   1804:       esac
1.2       frystyk  1805: 
                   1806:       # Aesthetically quote the argument.
                   1807:       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
                   1808:       case "$arg" in
                   1809:       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*)
                   1810:        arg="\"$arg\""
                   1811:        ;;
                   1812:       esac
1.1       frystyk  1813:       install_prog="$install_prog $arg"
                   1814:     done
                   1815: 
                   1816:     if test -z "$install_prog"; then
1.2       frystyk  1817:       $echo "$modename: you must specify an install program" 1>&2
                   1818:       $echo "$help" 1>&2
1.1       frystyk  1819:       exit 1
                   1820:     fi
                   1821: 
                   1822:     if test -n "$prev"; then
1.2       frystyk  1823:       $echo "$modename: the \`$prev' option requires an argument" 1>&2
                   1824:       $echo "$help" 1>&2
1.1       frystyk  1825:       exit 1
                   1826:     fi
                   1827: 
                   1828:     if test -z "$files"; then
                   1829:       if test -z "$dest"; then
1.2       frystyk  1830:         $echo "$modename: no file or destination specified" 1>&2
1.1       frystyk  1831:       else
1.2       frystyk  1832:         $echo "$modename: you must specify a destination" 1>&2
1.1       frystyk  1833:       fi
1.2       frystyk  1834:       $echo "$help" 1>&2
1.1       frystyk  1835:       exit 1
                   1836:     fi
                   1837: 
                   1838:     # Strip any trailing slash from the destination.
1.2       frystyk  1839:     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
1.1       frystyk  1840: 
                   1841:     # Check to see that the destination is a directory.
                   1842:     test -d "$dest" && isdir=yes
1.3     ! frystyk  1843:     if test "$isdir" = yes; then
1.1       frystyk  1844:       destdir="$dest"
                   1845:       destname=
                   1846:     else
1.2       frystyk  1847:       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
                   1848:       test "X$destdir" = "X$dest" && destdir=.
                   1849:       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
1.1       frystyk  1850: 
                   1851:       # Not a directory, so check to see that there is only one file specified.
                   1852:       set dummy $files
                   1853:       if test $# -gt 2; then
1.2       frystyk  1854:         $echo "$modename: \`$dest' is not a directory" 1>&2
                   1855:         $echo "$help" 1>&2
                   1856:         exit 1
1.1       frystyk  1857:       fi
                   1858:     fi
                   1859:     case "$destdir" in
1.3     ! frystyk  1860:     /* | [A-Za-z]:[/\\]*) ;;
1.1       frystyk  1861:     *)
                   1862:       for file in $files; do
1.2       frystyk  1863:         case "$file" in
                   1864:         *.lo) ;;
                   1865:         *)
                   1866:           $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
                   1867:           $echo "$help" 1>&2
                   1868:           exit 1
                   1869:           ;;
                   1870:         esac
1.1       frystyk  1871:       done
                   1872:       ;;
                   1873:     esac
                   1874: 
1.2       frystyk  1875:     # This variable tells wrapper scripts just to set variables rather
                   1876:     # than running their programs.
                   1877:     libtool_install_magic="$magic"
                   1878: 
1.1       frystyk  1879:     staticlibs=
                   1880:     future_libdirs=
                   1881:     current_libdirs=
                   1882:     for file in $files; do
                   1883: 
                   1884:       # Do each installation.
                   1885:       case "$file" in
                   1886:       *.a)
1.2       frystyk  1887:         # Do the static libraries later.
                   1888:         staticlibs="$staticlibs $file"
                   1889:         ;;
1.1       frystyk  1890: 
                   1891:       *.la)
1.2       frystyk  1892:         # Check to see that this really is a libtool archive.
1.3     ! frystyk  1893:         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1.2       frystyk  1894:         else
                   1895:           $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
                   1896:           $echo "$help" 1>&2
                   1897:           exit 1
                   1898:         fi
1.1       frystyk  1899: 
1.2       frystyk  1900:         library_names=
                   1901:         old_library=
                   1902:         # If there is no directory component, then add one.
                   1903:         case "$file" in
                   1904:         */* | *\\*) . $file ;;
                   1905:         *) . ./$file ;;
                   1906:         esac
1.1       frystyk  1907: 
1.2       frystyk  1908:         # Add the libdir to current_libdirs if it is the destination.
                   1909:         if test "X$destdir" = "X$libdir"; then
                   1910:           case "$current_libdirs " in
                   1911:           *" $libdir "*) ;;
                   1912:           *) current_libdirs="$current_libdirs $libdir" ;;
                   1913:           esac
                   1914:         else
                   1915:           # Note the libdir as a future libdir.
                   1916:           case "$future_libdirs " in
                   1917:           *" $libdir "*) ;;
                   1918:           *) future_libdirs="$future_libdirs $libdir" ;;
                   1919:           esac
                   1920:         fi
1.1       frystyk  1921: 
1.2       frystyk  1922:         dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
                   1923:         test "X$dir" = "X$file/" && dir=
                   1924:         dir="$dir$objdir"
                   1925: 
                   1926:         # See the names of the shared library.
                   1927:         set dummy $library_names
                   1928:         if test -n "$2"; then
                   1929:           realname="$2"
                   1930:           shift
                   1931:           shift
                   1932: 
                   1933:           # Install the shared library and build the symlinks.
                   1934:           $show "$install_prog $dir/$realname $destdir/$realname"
                   1935:           $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
                   1936:           test "X$dlname" = "X$realname" && dlname=
1.1       frystyk  1937: 
1.2       frystyk  1938:           if test $# -gt 0; then
                   1939:             # Delete the old symlinks.
1.1       frystyk  1940:             rmcmd="$rm"
                   1941:             for linkname
                   1942:             do
                   1943:               rmcmd="$rmcmd $destdir/$linkname"
                   1944:             done
                   1945:             $show "$rmcmd"
                   1946:             $run $rmcmd
                   1947: 
1.2       frystyk  1948:             # ... and create new ones.
                   1949:             for linkname
                   1950:             do
                   1951:               test "X$dlname" = "X$linkname" && dlname=
                   1952:               $show "(cd $destdir && $LN_S $realname $linkname)"
                   1953:               $run eval "(cd $destdir && $LN_S $realname $linkname)"
                   1954:             done
                   1955:           fi
1.1       frystyk  1956: 
1.2       frystyk  1957:           if test -n "$dlname"; then
                   1958:             # Install the dynamically-loadable library.
                   1959:             $show "$install_prog $dir/$dlname $destdir/$dlname"
                   1960:             $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
                   1961:           fi
                   1962: 
                   1963:           # Do each command in the postinstall commands.
                   1964:           lib="$destdir/$realname"
1.3     ! frystyk  1965:           eval cmds=\"$postinstall_cmds\"
1.2       frystyk  1966:           IFS="${IFS=  }"; save_ifs="$IFS"; IFS=';'
                   1967:           for cmd in $cmds; do
                   1968:             IFS="$save_ifs"
                   1969:             $show "$cmd"
                   1970:             $run eval "$cmd" || exit $?
                   1971:           done
                   1972:           IFS="$save_ifs"
                   1973:         fi
1.1       frystyk  1974: 
1.2       frystyk  1975:         # Install the pseudo-library for information purposes.
                   1976:         name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
                   1977:         $show "$install_prog $file $destdir/$name"
                   1978:         $run eval "$install_prog $file $destdir/$name" || exit $?
1.1       frystyk  1979: 
1.2       frystyk  1980:         # Maybe install the static library, too.
                   1981:         test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
                   1982:         ;;
1.1       frystyk  1983: 
                   1984:       *.lo)
                   1985:         # Install (i.e. copy) a libtool object.
                   1986: 
                   1987:         # Figure out destination file name, if it wasn't already specified.
                   1988:         if test -n "$destname"; then
1.2       frystyk  1989:           destfile="$destdir/$destname"
                   1990:         else
                   1991:           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
                   1992:           destfile="$destdir/$destfile"
1.1       frystyk  1993:         fi
                   1994: 
1.2       frystyk  1995:         # Deduce the name of the destination old-style object file.
                   1996:         case "$destfile" in
                   1997:         *.lo)
1.3     ! frystyk  1998:           staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/.o/'`
1.2       frystyk  1999:           ;;
                   2000:         *.o)
                   2001:           staticdest="$destfile"
                   2002:           destfile=
                   2003:           ;;
                   2004:         *)
                   2005:           $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
                   2006:           $echo "$help" 1>&2
                   2007:           exit 1
1.1       frystyk  2008:           ;;
1.2       frystyk  2009:         esac
1.1       frystyk  2010: 
1.2       frystyk  2011:         # Install the libtool object if requested.
                   2012:         if test -n "$destfile"; then
                   2013:           $show "$install_prog $file $destfile"
                   2014:           $run eval "$install_prog $file $destfile" || exit $?
                   2015:         fi
1.1       frystyk  2016: 
1.2       frystyk  2017:         # Install the old object if enabled.
                   2018:         if test "$build_old_libs" = yes; then
                   2019:           # Deduce the name of the old-style object file.
1.3     ! frystyk  2020:           staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/.o/'`
1.1       frystyk  2021: 
1.2       frystyk  2022:           $show "$install_prog $staticobj $staticdest"
                   2023:           $run eval "$install_prog \$staticobj \$staticdest" || exit $?
                   2024:         fi
                   2025:         exit 0
                   2026:         ;;
1.1       frystyk  2027: 
                   2028:       *)
1.3     ! frystyk  2029:         # Figure out destination file name, if it wasn't already specified.
        !          2030:         if test -n "$destname"; then
        !          2031:           destfile="$destdir/$destname"
        !          2032:         else
        !          2033:           destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
        !          2034:           destfile="$destdir/$destfile"
        !          2035:         fi
        !          2036: 
1.2       frystyk  2037:         # Do a test to see if this is really a libtool program.
1.3     ! frystyk  2038:         if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1.2       frystyk  2039:           link_against_libtool_libs=
                   2040:           finalize_command=
                   2041: 
                   2042:           # If there is no directory component, then add one.
                   2043:           case "$file" in
                   2044:           */* | *\\*) . $file ;;
                   2045:           *) . ./$file ;;
                   2046:           esac
                   2047: 
                   2048:           # Check the variables that should have been set.
                   2049:           if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
                   2050:             $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
                   2051:             exit 1
                   2052:           fi
                   2053: 
                   2054:           finalize=yes
                   2055:           for lib in $link_against_libtool_libs; do
                   2056:             # Check to see that each library is installed.
                   2057:             libdir=
                   2058:             if test -f "$lib"; then
                   2059:               # If there is no directory component, then add one.
                   2060:               case "$lib" in
                   2061:               */* | *\\*) . $lib ;;
                   2062:               *) . ./$lib ;;
                   2063:               esac
                   2064:             fi
                   2065:             libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
1.3     ! frystyk  2066:             if test -n "$libdir" && test ! -f "$libfile"; then
1.2       frystyk  2067:               $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
                   2068:               finalize=no
                   2069:             fi
                   2070:           done
                   2071: 
                   2072:           if test "$hardcode_action" = relink; then
                   2073:             if test "$finalize" = yes; then
                   2074:               $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
                   2075:               $show "$finalize_command"
                   2076:               if $run eval "$finalize_command"; then :
                   2077:               else
                   2078:                 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
                   2079:                 continue
                   2080:               fi
                   2081:               file="$objdir/$file"T
                   2082:             else
                   2083:               $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
                   2084:             fi
                   2085:           else
                   2086:             # Install the binary that we compiled earlier.
                   2087:            file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
                   2088:           fi
                   2089:         fi
1.1       frystyk  2090: 
1.3     ! frystyk  2091:         $show "$install_prog$stripme $file $destfile"
        !          2092:         $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
1.2       frystyk  2093:         ;;
1.1       frystyk  2094:       esac
                   2095:     done
                   2096: 
                   2097:     for file in $staticlibs; do
1.2       frystyk  2098:       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
1.1       frystyk  2099: 
                   2100:       # Set up the ranlib parameters.
                   2101:       oldlib="$destdir/$name"
                   2102: 
                   2103:       $show "$install_prog $file $oldlib"
1.2       frystyk  2104:       $run eval "$install_prog \$file \$oldlib" || exit $?
1.1       frystyk  2105: 
                   2106:       # Do each command in the postinstall commands.
1.3     ! frystyk  2107:       eval cmds=\"$old_postinstall_cmds\"
1.1       frystyk  2108:       IFS="${IFS=      }"; save_ifs="$IFS"; IFS=';'
                   2109:       for cmd in $cmds; do
                   2110:         IFS="$save_ifs"
                   2111:         $show "$cmd"
                   2112:         $run eval "$cmd" || exit $?
                   2113:       done
                   2114:       IFS="$save_ifs"
                   2115:     done
                   2116: 
                   2117:     if test -n "$future_libdirs"; then
1.2       frystyk  2118:       $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
1.1       frystyk  2119:     fi
                   2120: 
                   2121:     if test -n "$current_libdirs"; then
                   2122:       # Maybe just do a dry run.
                   2123:       test -n "$run" && current_libdirs=" -n$current_libdirs"
1.2       frystyk  2124:       exec $SHELL $0 --finish$current_libdirs
1.1       frystyk  2125:       exit 1
                   2126:     fi
                   2127: 
                   2128:     exit 0
                   2129:     ;;
                   2130: 
1.2       frystyk  2131:   # libtool finish mode
                   2132:   finish)
                   2133:     modename="$modename: finish"
                   2134:     libdirs="$nonopt"
1.3     ! frystyk  2135:     admincmds=
1.2       frystyk  2136: 
                   2137:     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
                   2138:       for dir
                   2139:       do
                   2140:         libdirs="$libdirs $dir"
                   2141:       done
                   2142: 
                   2143:       for libdir in $libdirs; do
                   2144:        if test -n "$finish_cmds"; then
                   2145:          # Do each command in the finish commands.
1.3     ! frystyk  2146:          eval cmds=\"$finish_cmds\"
1.2       frystyk  2147:           IFS="${IFS=  }"; save_ifs="$IFS"; IFS=';'
                   2148:           for cmd in $cmds; do
                   2149:             IFS="$save_ifs"
                   2150:             $show "$cmd"
1.3     ! frystyk  2151:             $run eval "$cmd" || admincmds="$admincmds
        !          2152:        $cmd"
1.2       frystyk  2153:           done
                   2154:           IFS="$save_ifs"
                   2155:        fi
                   2156:        if test -n "$finish_eval"; then
                   2157:          # Do the single finish_eval.
1.3     ! frystyk  2158:          eval cmds=\"$finish_eval\"
        !          2159:          $run eval "$cmds" || admincmds="$admincmds
        !          2160:        $cmds"
1.2       frystyk  2161:        fi
                   2162:       done
                   2163:     fi
                   2164: 
1.3     ! frystyk  2165:     echo "----------------------------------------------------------------------"
1.2       frystyk  2166:     echo "Libraries have been installed in:"
                   2167:     for libdir in $libdirs; do
                   2168:       echo "   $libdir"
1.1       frystyk  2169:     done
1.2       frystyk  2170:     echo
                   2171:     echo "To link against installed libraries in a given directory, LIBDIR,"
                   2172:     echo "you must use the \`-LLIBDIR' flag during linking."
                   2173:     echo
1.3     ! frystyk  2174:     echo " You will also need to do at least one of the following:"
1.2       frystyk  2175:     if test -n "$shlibpath_var"; then
                   2176:       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
                   2177:       echo "     during execution"
                   2178:     fi
                   2179:     if test -n "$runpath_var"; then
                   2180:       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
                   2181:       echo "     during linking"
                   2182:     fi
                   2183:     if test -n "$hardcode_libdir_flag_spec"; then
                   2184:       libdir=LIBDIR
1.3     ! frystyk  2185:       eval flag=\"$hardcode_libdir_flag_spec\"
1.1       frystyk  2186: 
1.2       frystyk  2187:       echo "   - use the \`$flag' linker flag"
                   2188:     fi
1.3     ! frystyk  2189:     if test -n "$admincmds"; then
        !          2190:       echo "   - have your system administrator run these commands:$admincmds"
        !          2191:     fi
1.2       frystyk  2192:     if test -f /etc/ld.so.conf; then
                   2193:       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
                   2194:     fi
                   2195:     echo
                   2196:     echo "See any operating system documentation about shared libraries for"
                   2197:     echo "more information, such as the ld(1) and ld.so(8) manual pages."
1.3     ! frystyk  2198:     echo "----------------------------------------------------------------------"
1.2       frystyk  2199:     exit 0
                   2200:     ;;
                   2201: 
                   2202:   # libtool execute mode
                   2203:   execute)
                   2204:     modename="$modename: execute"
                   2205: 
                   2206:     # The first argument is the command name.
                   2207:     cmd="$nonopt"
                   2208:     if test -z "$cmd"; then
                   2209:       $echo "$modename: you must specify a COMMAND" 1>&2
                   2210:       $echo "$help"
1.1       frystyk  2211:       exit 1
                   2212:     fi
                   2213: 
1.2       frystyk  2214:     # Handle -dlopen flags immediately.
                   2215:     for file in $execute_dlfiles; do
1.3     ! frystyk  2216:       if test ! -f "$file"; then
1.2       frystyk  2217:        $echo "$modename: \`$file' is not a file" 1>&2
                   2218:        $echo "$help" 1>&2
                   2219:        exit 1
1.1       frystyk  2220:       fi
                   2221: 
1.2       frystyk  2222:       dir=
                   2223:       case "$file" in
                   2224:       *.la)
                   2225:         # Check to see that this really is a libtool archive.
1.3     ! frystyk  2226:         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1.2       frystyk  2227:         else
                   2228:           $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
                   2229:           $echo "$help" 1>&2
                   2230:           exit 1
                   2231:         fi
                   2232: 
                   2233:        # Read the libtool library.
                   2234:        dlname=
                   2235:        library_names=
                   2236: 
                   2237:         # If there is no directory component, then add one.
                   2238:        case "$file" in
                   2239:        */* | *\\*) . $file ;;
                   2240:         *) . ./$file ;;
                   2241:        esac
                   2242: 
                   2243:        # Skip this library if it cannot be dlopened.
                   2244:        if test -z "$dlname"; then
                   2245:          # Warn if it was a shared library.
                   2246:          test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
                   2247:          continue
                   2248:        fi
                   2249: 
                   2250:        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
                   2251:        test "X$dir" = "X$file" && dir=.
                   2252: 
                   2253:        if test -f "$dir/$objdir/$dlname"; then
                   2254:          dir="$dir/$objdir"
                   2255:        else
                   2256:          $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
                   2257:          exit 1
                   2258:        fi
                   2259:        ;;
                   2260: 
                   2261:       *.lo)
                   2262:        # Just add the directory containing the .lo file.
                   2263:        dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
                   2264:        test "X$dir" = "X$file" && dir=.
                   2265:        ;;
                   2266: 
                   2267:       *)
                   2268:        $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
                   2269:         continue
                   2270:        ;;
1.1       frystyk  2271:       esac
                   2272: 
1.2       frystyk  2273:       # Get the absolute pathname.
                   2274:       absdir=`cd "$dir" && pwd`
                   2275:       test -n "$absdir" && dir="$absdir"
                   2276: 
                   2277:       # Now add the directory to shlibpath_var.
                   2278:       if eval "test -z \"\$$shlibpath_var\""; then
                   2279:        eval "$shlibpath_var=\"\$dir\""
1.1       frystyk  2280:       else
1.2       frystyk  2281:        eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
1.1       frystyk  2282:       fi
                   2283:     done
                   2284: 
1.2       frystyk  2285:     # This variable tells wrapper scripts just to set shlibpath_var
                   2286:     # rather than running their programs.
                   2287:     libtool_execute_magic="$magic"
                   2288: 
                   2289:     # Check if any of the arguments is a wrapper script.
                   2290:     args=
                   2291:     for file
                   2292:     do
                   2293:       case "$file" in
                   2294:       -*) ;;
                   2295:       *)
                   2296:         # Do a test to see if this is really a libtool program.
1.3     ! frystyk  2297:         if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1.2       frystyk  2298:          # If there is no directory component, then add one.
                   2299:          case "$file" in
                   2300:          */* | *\\*) . $file ;;
                   2301:          *) . ./$file ;;
                   2302:          esac
                   2303: 
                   2304:          # Transform arg to wrapped name.
                   2305:          file="$progdir/$program"
                   2306:        fi
                   2307:         ;;
                   2308:       esac
                   2309:       # Quote arguments (to preserve shell metacharacters).
                   2310:       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
                   2311:       args="$args \"$file\""
                   2312:     done
1.1       frystyk  2313: 
1.2       frystyk  2314:     if test -z "$run"; then
                   2315:       # Export the shlibpath_var.
                   2316:       eval "export $shlibpath_var"
1.1       frystyk  2317: 
1.3     ! frystyk  2318:       # Restore saved enviroment variables
        !          2319:       if test "${save_LC_ALL+set}" = set; then
        !          2320:         LC_ALL="$save_LC_ALL"; export LC_ALL
        !          2321:       fi
        !          2322:       if test "${save_LANG+set}" = set; then
        !          2323:         LANG="$save_LANG"; export LANG
        !          2324:       fi
        !          2325: 
1.2       frystyk  2326:       # Now actually exec the command.
                   2327:       eval "exec \$cmd$args"
1.1       frystyk  2328: 
1.2       frystyk  2329:       $echo "$modename: cannot exec \$cmd$args"
                   2330:       exit 1
                   2331:     else
                   2332:       # Display what would be done.
                   2333:       eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
                   2334:       $echo "export $shlibpath_var"
                   2335:       $echo "$cmd$args"
                   2336:       exit 0
1.1       frystyk  2337:     fi
                   2338:     ;;
                   2339: 
                   2340:   # libtool uninstall mode
                   2341:   uninstall)
1.2       frystyk  2342:     modename="$modename: uninstall"
1.1       frystyk  2343:     rm="$nonopt"
                   2344:     files=
                   2345: 
                   2346:     for arg
                   2347:     do
                   2348:       case "$arg" in
                   2349:       -*) rm="$rm $arg" ;;
                   2350:       *) files="$files $arg" ;;
                   2351:       esac
                   2352:     done
                   2353: 
                   2354:     if test -z "$rm"; then
1.2       frystyk  2355:       $echo "$modename: you must specify an RM program" 1>&2
                   2356:       $echo "$help" 1>&2
1.1       frystyk  2357:       exit 1
                   2358:     fi
                   2359: 
                   2360:     for file in $files; do
1.2       frystyk  2361:       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
                   2362:       test "X$dir" = "X$file" && dir=.
                   2363:       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
1.1       frystyk  2364: 
                   2365:       rmfiles="$file"
                   2366: 
                   2367:       case "$name" in
                   2368:       *.la)
1.2       frystyk  2369:         # Possibly a libtool archive, so verify it.
1.3     ! frystyk  2370:         if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1.2       frystyk  2371:           . $dir/$name
                   2372: 
                   2373:           # Delete the libtool libraries and symlinks.
                   2374:           for n in $library_names; do
                   2375:             rmfiles="$rmfiles $dir/$n"
                   2376:             test "X$n" = "X$dlname" && dlname=
                   2377:           done
                   2378:           test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
                   2379:           test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
                   2380: 
                   2381:          $show "$rm $rmfiles"
                   2382:          $run $rm $rmfiles
                   2383: 
                   2384:          if test -n "$library_names"; then
                   2385:            # Do each command in the postuninstall commands.
1.3     ! frystyk  2386:            eval cmds=\"$postuninstall_cmds\"
1.2       frystyk  2387:            IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
                   2388:            for cmd in $cmds; do
                   2389:              IFS="$save_ifs"
                   2390:              $show "$cmd"
                   2391:              $run eval "$cmd"
                   2392:            done
                   2393:            IFS="$save_ifs"
                   2394:          fi
                   2395: 
                   2396:           if test -n "$old_library"; then
                   2397:            # Do each command in the old_postuninstall commands.
1.3     ! frystyk  2398:            eval cmds=\"$old_postuninstall_cmds\"
1.2       frystyk  2399:            IFS="${IFS=         }"; save_ifs="$IFS"; IFS=';'
                   2400:            for cmd in $cmds; do
                   2401:              IFS="$save_ifs"
                   2402:              $show "$cmd"
                   2403:              $run eval "$cmd"
                   2404:            done
                   2405:            IFS="$save_ifs"
                   2406:          fi
1.1       frystyk  2407: 
1.2       frystyk  2408:           # FIXME: should reinstall the best remaining shared library.
                   2409:         fi
                   2410:         ;;
1.1       frystyk  2411: 
                   2412:       *.lo)
1.2       frystyk  2413:         if test "$build_old_libs" = yes; then
1.3     ! frystyk  2414:           oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/.o/'`
1.2       frystyk  2415:           rmfiles="$rmfiles $dir/$oldobj"
                   2416:         fi
                   2417:        $show "$rm $rmfiles"
                   2418:        $run $rm $rmfiles
                   2419:         ;;
                   2420: 
                   2421:       *)
                   2422:        $show "$rm $rmfiles"
                   2423:        $run $rm $rmfiles
                   2424:        ;;
1.1       frystyk  2425:       esac
                   2426:     done
                   2427:     exit 0
                   2428:     ;;
                   2429: 
1.2       frystyk  2430:   "")
                   2431:     $echo "$modename: you must specify a MODE" 1>&2
                   2432:     $echo "$generic_help" 1>&2
1.1       frystyk  2433:     exit 1
                   2434:     ;;
                   2435:   esac
                   2436: 
1.2       frystyk  2437:   $echo "$modename: invalid operation mode \`$mode'" 1>&2
                   2438:   $echo "$generic_help" 1>&2
1.1       frystyk  2439:   exit 1
                   2440: fi # test -z "$show_help"
                   2441: 
                   2442: # We need to display help for each of the modes.
                   2443: case "$mode" in
1.2       frystyk  2444: "") $echo \
                   2445: "Usage: $modename [OPTION]... [MODE-ARG]...
1.1       frystyk  2446: 
                   2447: Provide generalized library-building support services.
                   2448: 
1.3     ! frystyk  2449:     --config          show all configuration variables
        !          2450:     --debug           enable verbose shell tracing
1.1       frystyk  2451: -n, --dry-run         display commands without modifying any files
1.3     ! frystyk  2452:     --features        display basic configuration information and exit
1.1       frystyk  2453:     --finish          same as \`--mode=finish'
                   2454:     --help            display this help message and exit
                   2455:     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
1.2       frystyk  2456:     --quiet           same as \`--silent'
                   2457:     --silent          don't print informational messages
1.1       frystyk  2458:     --version         print version information
                   2459: 
                   2460: MODE must be one of the following:
                   2461: 
                   2462:       compile         compile a source file into a libtool object
1.2       frystyk  2463:       execute         automatically set library path, then run a program
1.1       frystyk  2464:       finish          complete the installation of libtool libraries
                   2465:       install         install libraries or executables
                   2466:       link            create a library or an executable
                   2467:       uninstall       remove libraries from an installed directory
                   2468: 
1.2       frystyk  2469: MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
                   2470: a more detailed description of MODE."
                   2471:   exit 0
1.1       frystyk  2472:   ;;
                   2473: 
                   2474: compile)
1.2       frystyk  2475:   $echo \
                   2476: "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
1.1       frystyk  2477: 
                   2478: Compile a source file into a libtool library object.
1.3     ! frystyk  2479: 
        !          2480: This mode accepts the following additional options:
        !          2481: 
        !          2482:   -static           always build a \`.o' file suitable for static linking
1.1       frystyk  2483: 
                   2484: COMPILE-COMMAND is a command to be used in creating a \`standard' object file
                   2485: from the given SOURCEFILE.
                   2486: 
                   2487: The output file name is determined by removing the directory component from
                   2488: SOURCEFILE, then substituting the C source code suffix \`.c' with the
1.2       frystyk  2489: library object suffix, \`.lo'."
1.1       frystyk  2490:   ;;
                   2491: 
1.2       frystyk  2492: execute)
                   2493:   $echo \
                   2494: "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
                   2495: 
                   2496: Automatically set library path, then run a program.
                   2497: 
                   2498: This mode accepts the following additional options:
1.1       frystyk  2499: 
1.2       frystyk  2500:   -dlopen FILE      add the directory containing FILE to the library path
1.1       frystyk  2501: 
1.2       frystyk  2502: This mode sets the library path environment variable according to \`-dlopen'
                   2503: flags.
1.1       frystyk  2504: 
1.2       frystyk  2505: If any of the ARGS are libtool executable wrappers, then they are translated
                   2506: into their corresponding uninstalled binary, and any of their required library
                   2507: directories are added to the library path.
                   2508: 
                   2509: Then, COMMAND is executed, with ARGS as arguments."
1.1       frystyk  2510:   ;;
                   2511: 
                   2512: finish)
1.2       frystyk  2513:   $echo \
                   2514: "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
1.1       frystyk  2515: 
                   2516: Complete the installation of libtool libraries.
                   2517: 
                   2518: Each LIBDIR is a directory that contains libtool libraries.
                   2519: 
                   2520: The commands that this mode executes may require superuser privileges.  Use
1.2       frystyk  2521: the \`--dry-run' option if you just want to see what would be executed."
1.1       frystyk  2522:   ;;
                   2523: 
                   2524: install)
1.2       frystyk  2525:   $echo \
                   2526: "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
1.1       frystyk  2527: 
                   2528: Install executables or libraries.
                   2529: 
                   2530: INSTALL-COMMAND is the installation command.  The first component should be
                   2531: either the \`install' or \`cp' program.
                   2532: 
                   2533: The rest of the components are interpreted as arguments to that command (only
1.2       frystyk  2534: BSD-compatible install options are recognized)."
1.1       frystyk  2535:   ;;
                   2536: 
                   2537: link)
1.2       frystyk  2538:   $echo \
                   2539: "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
1.1       frystyk  2540: 
                   2541: Link object files or libraries together to form another library, or to
                   2542: create an executable program.
                   2543: 
                   2544: LINK-COMMAND is a command using the C compiler that you would use to create
                   2545: a program from several object files.
                   2546: 
                   2547: The following components of LINK-COMMAND are treated specially:
                   2548: 
1.2       frystyk  2549:   -all-static       do not do any dynamic linking at all
                   2550:   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
                   2551:   -dlpreopen FILE   link in FILE and add its symbols to dld_preloaded_symbols
1.1       frystyk  2552:   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
                   2553:   -LLIBDIR          search LIBDIR for required installed libraries
                   2554:   -lNAME            OUTPUT-FILE requires the installed library libNAME
1.2       frystyk  2555:   -no-undefined     declare that a library does not refer to external symbols
1.1       frystyk  2556:   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
1.2       frystyk  2557:   -release RELEASE  specify package release information
1.1       frystyk  2558:   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
1.2       frystyk  2559:   -static           do not do any dynamic linking of libtool libraries
1.1       frystyk  2560:   -version-info CURRENT[:REVISION[:AGE]]
1.2       frystyk  2561:                     specify library version info [each variable defaults to 0]
1.1       frystyk  2562: 
                   2563: All other options (arguments beginning with \`-') are ignored.
                   2564: 
                   2565: Every other argument is treated as a filename.  Files ending in \`.la' are
                   2566: treated as uninstalled libtool libraries, other files are standard or library
                   2567: object files.
                   2568: 
                   2569: If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only
                   2570: library objects (\`.lo' files) may be specified, and \`-rpath' is required.
                   2571: 
                   2572: If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar'
                   2573: and \`ranlib'.
                   2574: 
                   2575: If OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is
1.2       frystyk  2576: created, otherwise an executable program is created."
1.1       frystyk  2577:   ;;
                   2578: 
                   2579: uninstall)
1.2       frystyk  2580:   $echo
                   2581: "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
1.1       frystyk  2582: 
                   2583: Remove libraries from an installation directory.
                   2584: 
                   2585: RM is the name of the program to use to delete files associated with each FILE
                   2586: (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
                   2587: to RM.
                   2588: 
                   2589: If FILE is a libtool library, all the files associated with it are deleted.
1.2       frystyk  2590: Otherwise, only FILE itself is deleted using RM."
1.1       frystyk  2591:   ;;
                   2592: 
                   2593: *)
1.2       frystyk  2594:   $echo "$modename: invalid operation mode \`$mode'" 1>&2
                   2595:   $echo "$help" 1>&2
1.1       frystyk  2596:   exit 1
                   2597:   ;;
                   2598: esac
                   2599: 
1.2       frystyk  2600: echo
                   2601: $echo "Try \`$modename --help' for more information about other modes."
1.1       frystyk  2602: 
                   2603: exit 0
                   2604: 
                   2605: # Local Variables:
                   2606: # mode:shell-script
                   2607: # sh-indentation:2
                   2608: # End:

Webmaster