/[pcre]/code/trunk/ltmain.sh
ViewVC logotype

Contents of /code/trunk/ltmain.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 96 - (hide annotations) (download) (as text)
Fri Mar 2 13:10:43 2007 UTC (6 years, 2 months ago) by nigel
File MIME type: application/x-sh
File size: 200488 byte(s)
 r6896@hex:  nm | 2007-03-02 13:09:14 +0000
 Added EOL and keywork properties throughout

1 nigel 41 # ltmain.sh - Provide generalized library-building support services.
2 nigel 53 # NOTE: Changing this file will not affect anything until you rerun configure.
3 nigel 41 #
4 nigel 83 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
5 nigel 53 # Free Software Foundation, Inc.
6 nigel 41 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7     #
8     # This program is free software; you can redistribute it and/or modify
9     # it under the terms of the GNU General Public License as published by
10     # the Free Software Foundation; either version 2 of the License, or
11     # (at your option) any later version.
12     #
13     # This program is distributed in the hope that it will be useful, but
14     # WITHOUT ANY WARRANTY; without even the implied warranty of
15     # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16     # General Public License for more details.
17     #
18     # You should have received a copy of the GNU General Public License
19     # along with this program; if not, write to the Free Software
20 nigel 83 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 nigel 41 #
22     # As a special exception to the GNU General Public License, if you
23     # distribute this file as part of a program that contains a
24     # configuration script generated by Autoconf, you may include it under
25     # the same distribution terms that you use for the rest of that program.
26    
27 nigel 75 basename="s,^.*/,,g"
28    
29     # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30     # is ksh but when the shell is invoked as "sh" and the current value of
31     # the _XPG environment variable is not equal to 1 (one), the special
32     # positional parameter $0, within a function call, is the name of the
33     # function.
34     progpath="$0"
35    
36 nigel 83 # define SED for historic ltconfig's generated by Libtool 1.3
37     test -z "$SED" && SED=sed
38 nigel 75
39     # The name of this program:
40     progname=`echo "$progpath" | $SED $basename`
41     modename="$progname"
42    
43     # Global variables:
44     EXIT_SUCCESS=0
45     EXIT_FAILURE=1
46    
47     PROGRAM=ltmain.sh
48     PACKAGE=libtool
49 nigel 87 VERSION=1.5.22
50     TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
51 nigel 75
52     # See if we are running on zsh, and set the options which allow our
53     # commands through without removal of \ escapes.
54     if test -n "${ZSH_VERSION+set}" ; then
55     setopt NO_GLOB_SUBST
56     fi
57 nigel 83 # Same for EGREP, and just to be sure, do LTCC as well
58     if test "X$EGREP" = X ; then
59     EGREP=egrep
60     fi
61     if test "X$LTCC" = X ; then
62     LTCC=${CC-gcc}
63     fi
64 nigel 75
65 nigel 41 # Check that we have a working $echo.
66     if test "X$1" = X--no-reexec; then
67     # Discard the --no-reexec flag, and continue.
68     shift
69     elif test "X$1" = X--fallback-echo; then
70     # Avoid inline document here, it may be left over
71     :
72     elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
73     # Yippee, $echo works!
74     :
75     else
76     # Restart under the correct shell, and then maybe $echo will work.
77 nigel 75 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
78 nigel 41 fi
79    
80     if test "X$1" = X--fallback-echo; then
81     # used as fallback echo
82     shift
83     cat <<EOF
84     $*
85     EOF
86 nigel 75 exit $EXIT_SUCCESS
87 nigel 41 fi
88    
89     default_mode=
90     help="Try \`$progname --help' for more information."
91     magic="%%%MAGIC variable%%%"
92     mkdir="mkdir"
93     mv="mv -f"
94     rm="rm -f"
95    
96     # Sed substitution that helps us do robust quoting. It backslashifies
97     # metacharacters that are still active within double-quoted strings.
98 nigel 63 Xsed="${SED}"' -e 1s/^X//'
99 nigel 41 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
100 nigel 75 # test EBCDIC or ASCII
101 nigel 87 case `echo X|tr X '\101'` in
102     A) # ASCII based system
103     # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
104     SP2NL='tr \040 \012'
105     NL2SP='tr \015\012 \040\040'
106 nigel 75 ;;
107 nigel 87 *) # EBCDIC based system
108     SP2NL='tr \100 \n'
109     NL2SP='tr \r\n \100\100'
110 nigel 75 ;;
111     esac
112 nigel 41
113     # NLS nuisances.
114     # Only set LANG and LC_ALL to C if already set.
115     # These must not be set unconditionally because not all systems understand
116     # e.g. LANG=C (notably SCO).
117     # We save the old values to restore during execute mode.
118     if test "${LC_ALL+set}" = set; then
119     save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
120     fi
121     if test "${LANG+set}" = set; then
122     save_LANG="$LANG"; LANG=C; export LANG
123     fi
124    
125 nigel 63 # Make sure IFS has a sensible default
126 nigel 83 lt_nl='
127     '
128     IFS=" $lt_nl"
129 nigel 63
130 nigel 41 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
131 nigel 75 $echo "$modename: not configured to build any kind of library" 1>&2
132     $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
133     exit $EXIT_FAILURE
134 nigel 41 fi
135    
136     # Global variables.
137     mode=$default_mode
138     nonopt=
139     prev=
140     prevopt=
141     run=
142     show="$echo"
143     show_help=
144     execute_dlfiles=
145 nigel 87 duplicate_deps=no
146     preserve_args=
147 nigel 41 lo2o="s/\\.lo\$/.${objext}/"
148     o2lo="s/\\.${objext}\$/.lo/"
149    
150 nigel 83 if test -z "$max_cmd_len"; then
151     i=0
152     testring="ABCD"
153     new_result=
154    
155     # If test is not a shell built-in, we'll probably end up computing a
156     # maximum length that is only half of the actual maximum length, but
157     # we can't tell.
158     while (test "X"`$SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
159     = "XX$testring") >/dev/null 2>&1 &&
160     new_result=`expr "X$testring" : ".*" 2>&1` &&
161     max_cmd_len="$new_result" &&
162     test "$i" != 17 # 1/2 MB should be enough
163     do
164     i=`expr $i + 1`
165     testring="$testring$testring"
166     done
167     testring=
168     # Add a significant safety factor because C++ compilers can tack on massive
169     # amounts of additional arguments before passing them to the linker.
170     # It appears as though 1/2 is a usable value.
171     max_cmd_len=`expr $max_cmd_len \/ 2`
172     fi
173    
174 nigel 75 #####################################
175     # Shell function definitions:
176     # This seems to be the best place for them
177    
178 nigel 87 # func_mktempdir [string]
179     # Make a temporary directory that won't clash with other running
180     # libtool processes, and avoids race conditions if possible. If
181     # given, STRING is the basename for that directory.
182     func_mktempdir ()
183     {
184     my_template="${TMPDIR-/tmp}/${1-$progname}"
185    
186     if test "$run" = ":"; then
187     # Return a directory name, but don't create it in dry-run mode
188     my_tmpdir="${my_template}-$$"
189     else
190    
191     # If mktemp works, use that first and foremost
192     my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
193    
194     if test ! -d "$my_tmpdir"; then
195     # Failing that, at least try and use $RANDOM to avoid a race
196     my_tmpdir="${my_template}-${RANDOM-0}$$"
197    
198     save_mktempdir_umask=`umask`
199     umask 0077
200     $mkdir "$my_tmpdir"
201     umask $save_mktempdir_umask
202     fi
203    
204     # If we're not in dry-run mode, bomb out on failure
205     test -d "$my_tmpdir" || {
206     $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
207     exit $EXIT_FAILURE
208     }
209     fi
210    
211     $echo "X$my_tmpdir" | $Xsed
212     }
213    
214    
215 nigel 75 # func_win32_libid arg
216     # return the library type of file 'arg'
217     #
218     # Need a lot of goo to handle *both* DLLs and import libs
219     # Has to be a shell function in order to 'eat' the argument
220     # that is supplied when $file_magic_command is called.
221 nigel 83 func_win32_libid ()
222     {
223 nigel 75 win32_libid_type="unknown"
224     win32_fileres=`file -L $1 2>/dev/null`
225     case $win32_fileres in
226     *ar\ archive\ import\ library*) # definitely import
227     win32_libid_type="x86 archive import"
228     ;;
229     *ar\ archive*) # could be an import, or static
230     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
231     $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
232     win32_nmres=`eval $NM -f posix -A $1 | \
233 nigel 87 $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
234     case $win32_nmres in
235     import*) win32_libid_type="x86 archive import";;
236     *) win32_libid_type="x86 archive static";;
237     esac
238 nigel 75 fi
239     ;;
240     *DLL*)
241     win32_libid_type="x86 DLL"
242     ;;
243     *executable*) # but shell scripts are "executable" too...
244     case $win32_fileres in
245     *MS\ Windows\ PE\ Intel*)
246     win32_libid_type="x86 DLL"
247     ;;
248     esac
249     ;;
250     esac
251     $echo $win32_libid_type
252     }
253    
254    
255     # func_infer_tag arg
256     # Infer tagged configuration to use if any are available and
257     # if one wasn't chosen via the "--tag" command line option.
258     # Only attempt this if the compiler in the base compile
259     # command doesn't match the default compiler.
260     # arg is usually of the form 'gcc ...'
261 nigel 83 func_infer_tag ()
262     {
263 nigel 75 if test -n "$available_tags" && test -z "$tagname"; then
264     CC_quoted=
265     for arg in $CC; do
266     case $arg in
267 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
268 nigel 75 arg="\"$arg\""
269     ;;
270     esac
271     CC_quoted="$CC_quoted $arg"
272     done
273     case $@ in
274     # Blanks in the command may have been stripped by the calling shell,
275     # but not from the CC environment variable when configure was run.
276     " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
277     # Blanks at the start of $base_compile will cause this to fail
278     # if we don't check for them as well.
279     *)
280     for z in $available_tags; do
281     if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
282     # Evaluate the configuration.
283     eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
284     CC_quoted=
285     for arg in $CC; do
286     # Double-quote args containing other shell metacharacters.
287     case $arg in
288 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
289 nigel 75 arg="\"$arg\""
290     ;;
291     esac
292     CC_quoted="$CC_quoted $arg"
293     done
294 nigel 83 # user sometimes does CC=<HOST>-gcc so we need to match that to 'gcc'
295     trimedcc=`echo ${CC} | $SED -e "s/${host}-//g"`
296     # and sometimes libtool has CC=<HOST>-gcc but user does CC=gcc
297     extendcc=${host}-${CC}
298 nigel 87 # and sometimes libtool has CC=<OLDHOST>-gcc but user has CC=<NEWHOST>-gcc
299     # (Gentoo-specific hack because we always export $CHOST)
300     mungedcc=${CHOST-${host}}-${trimedcc}
301 nigel 75 case "$@ " in
302 nigel 83 "cc "* | " cc "* | "${host}-cc "* | " ${host}-cc "*|\
303     "gcc "* | " gcc "* | "${host}-gcc "* | " ${host}-gcc "*)
304     tagname=CC
305     break ;;
306     "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\
307     "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\
308 nigel 87 "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
309 nigel 75 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
310     # The compiler in the base compile command matches
311     # the one in the tagged configuration.
312     # Assume this is the tagged configuration we want.
313     tagname=$z
314     break
315     ;;
316     esac
317     fi
318     done
319     # If $tagname still isn't set, then no tagged configuration
320     # was found and let the user know that the "--tag" command
321     # line option must be used.
322     if test -z "$tagname"; then
323     $echo "$modename: unable to infer tagged configuration"
324     $echo "$modename: specify a tag with \`--tag'" 1>&2
325     exit $EXIT_FAILURE
326     # else
327     # $echo "$modename: using $tagname tagged configuration"
328     fi
329     ;;
330     esac
331     fi
332     }
333    
334    
335 nigel 83 # func_extract_an_archive dir oldlib
336     func_extract_an_archive ()
337     {
338     f_ex_an_ar_dir="$1"; shift
339     f_ex_an_ar_oldlib="$1"
340    
341     $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
342     $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
343     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
344     :
345     else
346     $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
347     exit $EXIT_FAILURE
348     fi
349     }
350    
351 nigel 75 # func_extract_archives gentop oldlib ...
352 nigel 83 func_extract_archives ()
353     {
354 nigel 75 my_gentop="$1"; shift
355     my_oldlibs=${1+"$@"}
356     my_oldobjs=""
357     my_xlib=""
358     my_xabs=""
359     my_xdir=""
360     my_status=""
361    
362     $show "${rm}r $my_gentop"
363     $run ${rm}r "$my_gentop"
364     $show "$mkdir $my_gentop"
365     $run $mkdir "$my_gentop"
366     my_status=$?
367     if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
368     exit $my_status
369     fi
370    
371     for my_xlib in $my_oldlibs; do
372     # Extract the objects.
373     case $my_xlib in
374     [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
375     *) my_xabs=`pwd`"/$my_xlib" ;;
376     esac
377     my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
378     my_xdir="$my_gentop/$my_xlib"
379    
380     $show "${rm}r $my_xdir"
381     $run ${rm}r "$my_xdir"
382     $show "$mkdir $my_xdir"
383     $run $mkdir "$my_xdir"
384 nigel 87 exit_status=$?
385     if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
386     exit $exit_status
387 nigel 75 fi
388     case $host in
389     *-darwin*)
390     $show "Extracting $my_xabs"
391     # Do not bother doing anything if just a dry run
392     if test -z "$run"; then
393     darwin_orig_dir=`pwd`
394     cd $my_xdir || exit $?
395     darwin_archive=$my_xabs
396     darwin_curdir=`pwd`
397 nigel 83 darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
398 nigel 75 darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
399     if test -n "$darwin_arches"; then
400     darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
401     darwin_arch=
402     $show "$darwin_base_archive has multiple architectures $darwin_arches"
403 nigel 83 for darwin_arch in $darwin_arches ; do
404 nigel 75 mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
405     lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
406     cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
407 nigel 83 func_extract_an_archive "`pwd`" "${darwin_base_archive}"
408 nigel 75 cd "$darwin_curdir"
409 nigel 83 $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
410 nigel 75 done # $darwin_arches
411     ## Okay now we have a bunch of thin objects, gotta fatten them up :)
412 nigel 83 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
413 nigel 75 darwin_file=
414     darwin_files=
415     for darwin_file in $darwin_filelist; do
416     darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
417     lipo -create -output "$darwin_file" $darwin_files
418     done # $darwin_filelist
419 nigel 83 ${rm}r unfat-$$
420 nigel 75 cd "$darwin_orig_dir"
421     else
422 nigel 83 cd "$darwin_orig_dir"
423     func_extract_an_archive "$my_xdir" "$my_xabs"
424 nigel 75 fi # $darwin_arches
425     fi # $run
426 nigel 87 ;;
427 nigel 75 *)
428 nigel 83 func_extract_an_archive "$my_xdir" "$my_xabs"
429     ;;
430 nigel 75 esac
431     my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
432     done
433     func_extract_archives_result="$my_oldobjs"
434     }
435     # End of Shell function definitions
436     #####################################
437    
438     # Darwin sucks
439     eval std_shrext=\"$shrext_cmds\"
440    
441 nigel 87 disable_libs=no
442    
443 nigel 41 # Parse our command line options once, thoroughly.
444 nigel 75 while test "$#" -gt 0
445 nigel 41 do
446     arg="$1"
447     shift
448    
449 nigel 53 case $arg in
450 nigel 41 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
451     *) optarg= ;;
452     esac
453    
454     # If the previous option needs an argument, assign it.
455     if test -n "$prev"; then
456 nigel 53 case $prev in
457 nigel 41 execute_dlfiles)
458 nigel 53 execute_dlfiles="$execute_dlfiles $arg"
459 nigel 41 ;;
460 nigel 75 tag)
461     tagname="$arg"
462     preserve_args="${preserve_args}=$arg"
463    
464     # Check whether tagname contains only valid characters
465     case $tagname in
466     *[!-_A-Za-z0-9,/]*)
467     $echo "$progname: invalid tag name: $tagname" 1>&2
468     exit $EXIT_FAILURE
469     ;;
470     esac
471    
472     case $tagname in
473     CC)
474     # Don't test for the "default" C tag, as we know, it's there, but
475     # not specially marked.
476     ;;
477     *)
478     if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
479     taglist="$taglist $tagname"
480     # Evaluate the configuration.
481     eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
482     else
483     $echo "$progname: ignoring unknown tag $tagname" 1>&2
484     fi
485     ;;
486     esac
487     ;;
488 nigel 41 *)
489     eval "$prev=\$arg"
490     ;;
491     esac
492    
493     prev=
494     prevopt=
495     continue
496     fi
497    
498     # Have we seen a non-optional argument yet?
499 nigel 53 case $arg in
500 nigel 41 --help)
501     show_help=yes
502     ;;
503    
504     --version)
505 nigel 75 $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
506     $echo
507 nigel 83 $echo "Copyright (C) 2005 Free Software Foundation, Inc."
508 nigel 75 $echo "This is free software; see the source for copying conditions. There is NO"
509     $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
510 nigel 83 exit $?
511 nigel 41 ;;
512    
513     --config)
514 nigel 75 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
515     # Now print the configurations for the tags.
516     for tagname in $taglist; do
517     ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
518     done
519 nigel 83 exit $?
520 nigel 41 ;;
521    
522     --debug)
523 nigel 75 $echo "$progname: enabling shell trace mode"
524 nigel 41 set -x
525 nigel 75 preserve_args="$preserve_args $arg"
526 nigel 41 ;;
527    
528     --dry-run | -n)
529     run=:
530     ;;
531    
532     --features)
533 nigel 75 $echo "host: $host"
534 nigel 41 if test "$build_libtool_libs" = yes; then
535 nigel 75 $echo "enable shared libraries"
536 nigel 41 else
537 nigel 75 $echo "disable shared libraries"
538 nigel 41 fi
539     if test "$build_old_libs" = yes; then
540 nigel 75 $echo "enable static libraries"
541 nigel 41 else
542 nigel 75 $echo "disable static libraries"
543 nigel 41 fi
544 nigel 83 exit $?
545 nigel 41 ;;
546    
547     --finish) mode="finish" ;;
548    
549     --mode) prevopt="--mode" prev=mode ;;
550     --mode=*) mode="$optarg" ;;
551    
552 nigel 63 --preserve-dup-deps) duplicate_deps="yes" ;;
553    
554 nigel 41 --quiet | --silent)
555     show=:
556 nigel 75 preserve_args="$preserve_args $arg"
557 nigel 41 ;;
558    
559 nigel 87 --tag)
560     prevopt="--tag"
561     prev=tag
562     preserve_args="$preserve_args --tag"
563     ;;
564 nigel 75 --tag=*)
565     set tag "$optarg" ${1+"$@"}
566     shift
567     prev=tag
568     preserve_args="$preserve_args --tag"
569     ;;
570    
571 nigel 41 -dlopen)
572     prevopt="-dlopen"
573     prev=execute_dlfiles
574     ;;
575    
576     -*)
577     $echo "$modename: unrecognized option \`$arg'" 1>&2
578     $echo "$help" 1>&2
579 nigel 75 exit $EXIT_FAILURE
580 nigel 41 ;;
581    
582     *)
583     nonopt="$arg"
584     break
585     ;;
586     esac
587     done
588    
589     if test -n "$prevopt"; then
590     $echo "$modename: option \`$prevopt' requires an argument" 1>&2
591     $echo "$help" 1>&2
592 nigel 75 exit $EXIT_FAILURE
593 nigel 41 fi
594    
595 nigel 87 case $disable_libs in
596     no)
597     ;;
598     shared)
599     build_libtool_libs=no
600     build_old_libs=yes
601     ;;
602     static)
603     build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
604     ;;
605     esac
606    
607 nigel 63 # If this variable is set in any of the actions, the command in it
608     # will be execed at the end. This prevents here-documents from being
609     # left over by shells.
610     exec_cmd=
611    
612 nigel 41 if test -z "$show_help"; then
613    
614     # Infer the operation mode.
615     if test -z "$mode"; then
616 nigel 75 $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
617 nigel 83 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
618 nigel 53 case $nonopt in
619 nigel 75 *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
620 nigel 41 mode=link
621     for arg
622     do
623 nigel 53 case $arg in
624 nigel 41 -c)
625     mode=compile
626     break
627     ;;
628     esac
629     done
630     ;;
631     *db | *dbx | *strace | *truss)
632     mode=execute
633     ;;
634     *install*|cp|mv)
635     mode=install
636     ;;
637     *rm)
638     mode=uninstall
639     ;;
640     *)
641     # If we have no mode, but dlfiles were specified, then do execute mode.
642     test -n "$execute_dlfiles" && mode=execute
643    
644     # Just use the default operation mode.
645     if test -z "$mode"; then
646     if test -n "$nonopt"; then
647     $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
648     else
649     $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
650     fi
651     fi
652     ;;
653     esac
654     fi
655    
656     # Only execute mode is allowed to have -dlopen flags.
657     if test -n "$execute_dlfiles" && test "$mode" != execute; then
658     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
659     $echo "$help" 1>&2
660 nigel 75 exit $EXIT_FAILURE
661 nigel 41 fi
662    
663     # Change the help message to a mode-specific one.
664     generic_help="$help"
665     help="Try \`$modename --help --mode=$mode' for more information."
666    
667     # These modes are in order of execution frequency so that they run quickly.
668 nigel 53 case $mode in
669 nigel 41 # libtool compile mode
670     compile)
671     modename="$modename: compile"
672     # Get the compilation command and the source file.
673     base_compile=
674 nigel 75 srcfile="$nonopt" # always keep a non-empty value in "srcfile"
675     suppress_opt=yes
676 nigel 41 suppress_output=
677 nigel 75 arg_mode=normal
678     libobj=
679     later=
680 nigel 41
681     for arg
682     do
683 nigel 87 case $arg_mode in
684 nigel 75 arg )
685     # do not "continue". Instead, add this to base_compile
686     lastarg="$arg"
687     arg_mode=normal
688     ;;
689 nigel 53
690 nigel 75 target )
691     libobj="$arg"
692     arg_mode=normal
693 nigel 53 continue
694     ;;
695    
696 nigel 75 normal )
697     # Accept any command-line options.
698     case $arg in
699     -o)
700     if test -n "$libobj" ; then
701     $echo "$modename: you cannot specify \`-o' more than once" 1>&2
702     exit $EXIT_FAILURE
703     fi
704     arg_mode=target
705     continue
706     ;;
707 nigel 41
708 nigel 75 -static | -prefer-pic | -prefer-non-pic)
709     later="$later $arg"
710     continue
711     ;;
712 nigel 53
713 nigel 75 -no-suppress)
714     suppress_opt=no
715     continue
716     ;;
717 nigel 53
718 nigel 75 -Xcompiler)
719 nigel 83 arg_mode=arg # the next one goes into the "base_compile" arg list
720     continue # The current "srcfile" will either be retained or
721     ;; # replaced later. I would guess that would be a bug.
722 nigel 53
723 nigel 75 -Wc,*)
724     args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
725     lastarg=
726     save_ifs="$IFS"; IFS=','
727 nigel 83 for arg in $args; do
728 nigel 75 IFS="$save_ifs"
729 nigel 53
730 nigel 75 # Double-quote args containing other shell metacharacters.
731     # Many Bourne shells cannot handle close brackets correctly
732     # in scan sets, so we specify it separately.
733     case $arg in
734 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
735 nigel 75 arg="\"$arg\""
736     ;;
737     esac
738     lastarg="$lastarg $arg"
739     done
740 nigel 53 IFS="$save_ifs"
741 nigel 75 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
742 nigel 53
743 nigel 75 # Add the arguments to base_compile.
744 nigel 53 base_compile="$base_compile $lastarg"
745 nigel 75 continue
746     ;;
747 nigel 41
748 nigel 75 * )
749     # Accept the current argument as the source file.
750     # The previous "srcfile" becomes the current argument.
751     #
752     lastarg="$srcfile"
753     srcfile="$arg"
754     ;;
755     esac # case $arg
756 nigel 41 ;;
757 nigel 75 esac # case $arg_mode
758 nigel 41
759     # Aesthetically quote the previous argument.
760     lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
761    
762 nigel 75 case $lastarg in
763 nigel 41 # Double-quote args containing other shell metacharacters.
764 nigel 53 # Many Bourne shells cannot handle close brackets correctly
765 nigel 83 # in scan sets, and some SunOS ksh mistreat backslash-escaping
766     # in scan sets (worked around with variable expansion),
767     # and furthermore cannot handle '|' '&' '(' ')' in scan sets
768     # at all, so we specify them separately.
769 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
770 nigel 41 lastarg="\"$lastarg\""
771     ;;
772     esac
773    
774 nigel 75 base_compile="$base_compile $lastarg"
775     done # for arg
776 nigel 41
777 nigel 75 case $arg_mode in
778     arg)
779     $echo "$modename: you must specify an argument for -Xcompile"
780     exit $EXIT_FAILURE
781 nigel 41 ;;
782 nigel 75 target)
783     $echo "$modename: you must specify a target with \`-o'" 1>&2
784     exit $EXIT_FAILURE
785 nigel 41 ;;
786     *)
787 nigel 75 # Get the name of the library object.
788     [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
789 nigel 41 ;;
790     esac
791    
792     # Recognize several different file suffixes.
793     # If the user specifies -o file.o, it is replaced with file.lo
794 nigel 75 xform='[cCFSifmso]'
795 nigel 53 case $libobj in
796 nigel 41 *.ada) xform=ada ;;
797     *.adb) xform=adb ;;
798     *.ads) xform=ads ;;
799     *.asm) xform=asm ;;
800     *.c++) xform=c++ ;;
801     *.cc) xform=cc ;;
802 nigel 75 *.ii) xform=ii ;;
803     *.class) xform=class ;;
804 nigel 41 *.cpp) xform=cpp ;;
805     *.cxx) xform=cxx ;;
806     *.f90) xform=f90 ;;
807     *.for) xform=for ;;
808 nigel 75 *.java) xform=java ;;
809 nigel 41 esac
810    
811     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
812    
813 nigel 53 case $libobj in
814 nigel 41 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
815     *)
816     $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
817 nigel 75 exit $EXIT_FAILURE
818 nigel 41 ;;
819     esac
820    
821 nigel 75 func_infer_tag $base_compile
822    
823     for arg in $later; do
824     case $arg in
825     -static)
826     build_old_libs=yes
827     continue
828     ;;
829    
830     -prefer-pic)
831     pic_mode=yes
832     continue
833     ;;
834    
835     -prefer-non-pic)
836     pic_mode=no
837     continue
838     ;;
839     esac
840     done
841    
842 nigel 83 qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
843     case $qlibobj in
844 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
845 nigel 83 qlibobj="\"$qlibobj\"" ;;
846     esac
847 nigel 87 test "X$libobj" != "X$qlibobj" \
848     && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \
849     && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
850 nigel 75 objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
851     xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
852     if test "X$xdir" = "X$obj"; then
853     xdir=
854     else
855     xdir=$xdir/
856     fi
857     lobj=${xdir}$objdir/$objname
858    
859 nigel 41 if test -z "$base_compile"; then
860     $echo "$modename: you must specify a compilation command" 1>&2
861     $echo "$help" 1>&2
862 nigel 75 exit $EXIT_FAILURE
863 nigel 41 fi
864    
865     # Delete any leftover library objects.
866     if test "$build_old_libs" = yes; then
867 nigel 75 removelist="$obj $lobj $libobj ${libobj}T"
868 nigel 41 else
869 nigel 75 removelist="$lobj $libobj ${libobj}T"
870 nigel 41 fi
871    
872     $run $rm $removelist
873 nigel 75 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
874 nigel 41
875 nigel 53 # On Cygwin there's no "real" PIC flag so we must build both object types
876     case $host_os in
877     cygwin* | mingw* | pw32* | os2*)
878     pic_mode=default
879     ;;
880     esac
881 nigel 63 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
882 nigel 53 # non-PIC code in shared libraries is not supported
883     pic_mode=default
884     fi
885    
886 nigel 41 # Calculate the filename of the output object if compiler does
887     # not support -o with -c
888     if test "$compiler_c_o" = no; then
889 nigel 53 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
890 nigel 41 lockfile="$output_obj.lock"
891     removelist="$removelist $output_obj $lockfile"
892 nigel 75 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
893 nigel 41 else
894 nigel 75 output_obj=
895 nigel 41 need_locks=no
896     lockfile=
897     fi
898    
899     # Lock this critical section if it is needed
900     # We use this script file to make the link, it avoids creating a new file
901     if test "$need_locks" = yes; then
902 nigel 83 until $run ln "$srcfile" "$lockfile" 2>/dev/null; do
903 nigel 41 $show "Waiting for $lockfile to be removed"
904     sleep 2
905     done
906     elif test "$need_locks" = warn; then
907     if test -f "$lockfile"; then
908 nigel 75 $echo "\
909 nigel 41 *** ERROR, $lockfile exists and contains:
910     `cat $lockfile 2>/dev/null`
911    
912     This indicates that another process is trying to use the same
913     temporary object file, and libtool could not work around it because
914     your compiler does not support \`-c' and \`-o' together. If you
915     repeat this compilation, it may succeed, by chance, but you had better
916     avoid parallel builds (make -j) in this platform, or get a better
917     compiler."
918    
919     $run $rm $removelist
920 nigel 75 exit $EXIT_FAILURE
921 nigel 41 fi
922 nigel 83 $echo "$srcfile" > "$lockfile"
923 nigel 41 fi
924    
925     if test -n "$fix_srcfile_path"; then
926     eval srcfile=\"$fix_srcfile_path\"
927     fi
928 nigel 83 qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
929     case $qsrcfile in
930 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
931 nigel 83 qsrcfile="\"$qsrcfile\"" ;;
932     esac
933 nigel 41
934 nigel 75 $run $rm "$libobj" "${libobj}T"
935    
936     # Create a libtool object file (analogous to a ".la" file),
937     # but don't create it if we're doing a dry run.
938     test -z "$run" && cat > ${libobj}T <<EOF
939     # $libobj - a libtool object file
940     # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
941     #
942     # Please DO NOT delete this file!
943     # It is necessary for linking the library.
944    
945     # Name of the PIC object.
946     EOF
947    
948 nigel 41 # Only build a PIC object if we are building libtool libraries.
949     if test "$build_libtool_libs" = yes; then
950     # Without this assignment, base_compile gets emptied.
951     fbsd_hideous_sh_bug=$base_compile
952    
953 nigel 53 if test "$pic_mode" != no; then
954 nigel 83 command="$base_compile $qsrcfile $pic_flag"
955 nigel 53 else
956     # Don't build PIC code
957 nigel 83 command="$base_compile $qsrcfile"
958 nigel 53 fi
959 nigel 41
960 nigel 75 if test ! -d "${xdir}$objdir"; then
961     $show "$mkdir ${xdir}$objdir"
962     $run $mkdir ${xdir}$objdir
963 nigel 87 exit_status=$?
964     if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
965     exit $exit_status
966 nigel 41 fi
967     fi
968 nigel 75
969     if test -z "$output_obj"; then
970     # Place PIC objects in $objdir
971     command="$command -o $lobj"
972 nigel 41 fi
973    
974 nigel 75 $run $rm "$lobj" "$output_obj"
975    
976 nigel 41 $show "$command"
977     if $run eval "$command"; then :
978     else
979     test -n "$output_obj" && $run $rm $removelist
980 nigel 75 exit $EXIT_FAILURE
981 nigel 41 fi
982    
983     if test "$need_locks" = warn &&
984 nigel 75 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
985     $echo "\
986 nigel 41 *** ERROR, $lockfile contains:
987     `cat $lockfile 2>/dev/null`
988    
989     but it should contain:
990     $srcfile
991    
992     This indicates that another process is trying to use the same
993     temporary object file, and libtool could not work around it because
994     your compiler does not support \`-c' and \`-o' together. If you
995     repeat this compilation, it may succeed, by chance, but you had better
996     avoid parallel builds (make -j) in this platform, or get a better
997     compiler."
998    
999     $run $rm $removelist
1000 nigel 75 exit $EXIT_FAILURE
1001 nigel 41 fi
1002    
1003     # Just move the object if needed, then go on to compile the next one
1004 nigel 75 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
1005     $show "$mv $output_obj $lobj"
1006     if $run $mv $output_obj $lobj; then :
1007 nigel 41 else
1008     error=$?
1009     $run $rm $removelist
1010     exit $error
1011     fi
1012     fi
1013    
1014 nigel 75 # Append the name of the PIC object to the libtool object file.
1015     test -z "$run" && cat >> ${libobj}T <<EOF
1016     pic_object='$objdir/$objname'
1017 nigel 41
1018 nigel 75 EOF
1019 nigel 41
1020 nigel 75 # Allow error messages only from the first compilation.
1021     if test "$suppress_opt" = yes; then
1022     suppress_output=' >/dev/null 2>&1'
1023 nigel 41 fi
1024 nigel 75 else
1025     # No PIC object so indicate it doesn't exist in the libtool
1026     # object file.
1027     test -z "$run" && cat >> ${libobj}T <<EOF
1028     pic_object=none
1029 nigel 41
1030 nigel 75 EOF
1031 nigel 41 fi
1032    
1033     # Only build a position-dependent object if we build old libraries.
1034     if test "$build_old_libs" = yes; then
1035 nigel 53 if test "$pic_mode" != yes; then
1036     # Don't build PIC code
1037 nigel 83 command="$base_compile $qsrcfile"
1038 nigel 53 else
1039 nigel 83 command="$base_compile $qsrcfile $pic_flag"
1040 nigel 53 fi
1041 nigel 41 if test "$compiler_c_o" = yes; then
1042     command="$command -o $obj"
1043     fi
1044    
1045     # Suppress compiler output if we already did a PIC compilation.
1046     command="$command$suppress_output"
1047 nigel 75 $run $rm "$obj" "$output_obj"
1048 nigel 41 $show "$command"
1049     if $run eval "$command"; then :
1050     else
1051     $run $rm $removelist
1052 nigel 75 exit $EXIT_FAILURE
1053 nigel 41 fi
1054    
1055     if test "$need_locks" = warn &&
1056 nigel 75 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1057     $echo "\
1058 nigel 41 *** ERROR, $lockfile contains:
1059     `cat $lockfile 2>/dev/null`
1060    
1061     but it should contain:
1062     $srcfile
1063    
1064     This indicates that another process is trying to use the same
1065     temporary object file, and libtool could not work around it because
1066     your compiler does not support \`-c' and \`-o' together. If you
1067     repeat this compilation, it may succeed, by chance, but you had better
1068     avoid parallel builds (make -j) in this platform, or get a better
1069     compiler."
1070    
1071     $run $rm $removelist
1072 nigel 75 exit $EXIT_FAILURE
1073 nigel 41 fi
1074    
1075     # Just move the object if needed
1076 nigel 75 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1077 nigel 41 $show "$mv $output_obj $obj"
1078     if $run $mv $output_obj $obj; then :
1079     else
1080     error=$?
1081     $run $rm $removelist
1082     exit $error
1083     fi
1084     fi
1085    
1086 nigel 75 # Append the name of the non-PIC object the libtool object file.
1087     # Only append if the libtool object file exists.
1088     test -z "$run" && cat >> ${libobj}T <<EOF
1089     # Name of the non-PIC object.
1090     non_pic_object='$objname'
1091    
1092     EOF
1093     else
1094     # Append the name of the non-PIC object the libtool object file.
1095     # Only append if the libtool object file exists.
1096     test -z "$run" && cat >> ${libobj}T <<EOF
1097     # Name of the non-PIC object.
1098     non_pic_object=none
1099    
1100     EOF
1101 nigel 41 fi
1102    
1103 nigel 75 $run $mv "${libobj}T" "${libobj}"
1104    
1105 nigel 41 # Unlock the critical section if it was locked
1106     if test "$need_locks" != no; then
1107 nigel 53 $run $rm "$lockfile"
1108 nigel 41 fi
1109    
1110 nigel 75 exit $EXIT_SUCCESS
1111 nigel 41 ;;
1112    
1113     # libtool link mode
1114 nigel 53 link | relink)
1115 nigel 41 modename="$modename: link"
1116 nigel 53 case $host in
1117     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1118 nigel 41 # It is impossible to link a dll without this setting, and
1119     # we shouldn't force the makefile maintainer to figure out
1120     # which system we are compiling for in order to pass an extra
1121 nigel 75 # flag for every libtool invocation.
1122 nigel 41 # allow_undefined=no
1123    
1124     # FIXME: Unfortunately, there are problems with the above when trying
1125     # to make a dll which has undefined symbols, in which case not
1126     # even a static library is built. For now, we need to specify
1127     # -no-undefined on the libtool link line when we can be certain
1128     # that all symbols are satisfied, otherwise we get a static library.
1129     allow_undefined=yes
1130     ;;
1131     *)
1132     allow_undefined=yes
1133     ;;
1134     esac
1135 nigel 53 libtool_args="$nonopt"
1136 nigel 75 base_compile="$nonopt $@"
1137 nigel 41 compile_command="$nonopt"
1138     finalize_command="$nonopt"
1139    
1140     compile_rpath=
1141     finalize_rpath=
1142     compile_shlibpath=
1143     finalize_shlibpath=
1144     convenience=
1145     old_convenience=
1146     deplibs=
1147 nigel 53 old_deplibs=
1148     compiler_flags=
1149     linker_flags=
1150     dllsearchpath=
1151     lib_search_path=`pwd`
1152 nigel 75 inst_prefix_dir=
1153 nigel 41
1154     avoid_version=no
1155     dlfiles=
1156     dlprefiles=
1157     dlself=no
1158     export_dynamic=no
1159     export_symbols=
1160     export_symbols_regex=
1161     generated=
1162     libobjs=
1163     ltlibs=
1164     module=no
1165 nigel 53 no_install=no
1166 nigel 41 objs=
1167 nigel 75 non_pic_objects=
1168 nigel 87 notinst_path= # paths that contain not-installed libtool libraries
1169 nigel 75 precious_files_regex=
1170 nigel 41 prefer_static_libs=no
1171     preload=no
1172     prev=
1173     prevarg=
1174     release=
1175     rpath=
1176     xrpath=
1177     perm_rpath=
1178     temp_rpath=
1179     thread_safe=no
1180     vinfo=
1181 nigel 75 vinfo_number=no
1182 nigel 41
1183 nigel 75 func_infer_tag $base_compile
1184    
1185 nigel 41 # We need to know -static, to get the right output filenames.
1186     for arg
1187     do
1188 nigel 53 case $arg in
1189 nigel 41 -all-static | -static)
1190     if test "X$arg" = "X-all-static"; then
1191     if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1192     $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1193     fi
1194     if test -n "$link_static_flag"; then
1195     dlopen_self=$dlopen_self_static
1196     fi
1197 nigel 87 prefer_static_libs=yes
1198 nigel 41 else
1199     if test -z "$pic_flag" && test -n "$link_static_flag"; then
1200     dlopen_self=$dlopen_self_static
1201     fi
1202 nigel 87 prefer_static_libs=built
1203 nigel 41 fi
1204     build_libtool_libs=no
1205     build_old_libs=yes
1206     break
1207     ;;
1208     esac
1209     done
1210    
1211     # See if our shared archives depend on static archives.
1212     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1213    
1214     # Go through the arguments, transforming them on the way.
1215 nigel 75 while test "$#" -gt 0; do
1216 nigel 41 arg="$1"
1217     shift
1218 nigel 53 case $arg in
1219 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1220 nigel 53 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1221     ;;
1222     *) qarg=$arg ;;
1223     esac
1224     libtool_args="$libtool_args $qarg"
1225 nigel 41
1226     # If the previous option needs an argument, assign it.
1227     if test -n "$prev"; then
1228 nigel 53 case $prev in
1229 nigel 41 output)
1230     compile_command="$compile_command @OUTPUT@"
1231     finalize_command="$finalize_command @OUTPUT@"
1232     ;;
1233     esac
1234    
1235 nigel 53 case $prev in
1236 nigel 41 dlfiles|dlprefiles)
1237     if test "$preload" = no; then
1238     # Add the symbol object into the linking commands.
1239     compile_command="$compile_command @SYMFILE@"
1240     finalize_command="$finalize_command @SYMFILE@"
1241     preload=yes
1242     fi
1243 nigel 53 case $arg in
1244 nigel 41 *.la | *.lo) ;; # We handle these cases below.
1245     force)
1246     if test "$dlself" = no; then
1247     dlself=needless
1248     export_dynamic=yes
1249     fi
1250     prev=
1251     continue
1252     ;;
1253     self)
1254     if test "$prev" = dlprefiles; then
1255     dlself=yes
1256     elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1257     dlself=yes
1258     else
1259     dlself=needless
1260     export_dynamic=yes
1261     fi
1262     prev=
1263     continue
1264     ;;
1265     *)
1266     if test "$prev" = dlfiles; then
1267     dlfiles="$dlfiles $arg"
1268     else
1269     dlprefiles="$dlprefiles $arg"
1270     fi
1271     prev=
1272 nigel 53 continue
1273 nigel 41 ;;
1274     esac
1275     ;;
1276     expsyms)
1277     export_symbols="$arg"
1278     if test ! -f "$arg"; then
1279     $echo "$modename: symbol file \`$arg' does not exist"
1280 nigel 75 exit $EXIT_FAILURE
1281 nigel 41 fi
1282     prev=
1283     continue
1284     ;;
1285     expsyms_regex)
1286     export_symbols_regex="$arg"
1287     prev=
1288     continue
1289     ;;
1290 nigel 75 inst_prefix)
1291     inst_prefix_dir="$arg"
1292     prev=
1293     continue
1294     ;;
1295     precious_regex)
1296     precious_files_regex="$arg"
1297     prev=
1298     continue
1299     ;;
1300 nigel 41 release)
1301     release="-$arg"
1302     prev=
1303     continue
1304     ;;
1305 nigel 75 objectlist)
1306     if test -f "$arg"; then
1307     save_arg=$arg
1308     moreargs=
1309     for fil in `cat $save_arg`
1310     do
1311     # moreargs="$moreargs $fil"
1312     arg=$fil
1313     # A libtool-controlled object.
1314    
1315     # Check to see that this really is a libtool object.
1316     if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1317     pic_object=
1318     non_pic_object=
1319    
1320     # Read the .lo file
1321     # If there is no directory component, then add one.
1322     case $arg in
1323     */* | *\\*) . $arg ;;
1324     *) . ./$arg ;;
1325     esac
1326    
1327     if test -z "$pic_object" || \
1328     test -z "$non_pic_object" ||
1329     test "$pic_object" = none && \
1330     test "$non_pic_object" = none; then
1331     $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1332     exit $EXIT_FAILURE
1333     fi
1334    
1335     # Extract subdirectory from the argument.
1336     xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1337     if test "X$xdir" = "X$arg"; then
1338     xdir=
1339     else
1340     xdir="$xdir/"
1341     fi
1342    
1343     if test "$pic_object" != none; then
1344     # Prepend the subdirectory the object is found in.
1345     pic_object="$xdir$pic_object"
1346    
1347     if test "$prev" = dlfiles; then
1348     if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1349     dlfiles="$dlfiles $pic_object"
1350     prev=
1351     continue
1352     else
1353     # If libtool objects are unsupported, then we need to preload.
1354     prev=dlprefiles
1355     fi
1356     fi
1357    
1358     # CHECK ME: I think I busted this. -Ossama
1359     if test "$prev" = dlprefiles; then
1360     # Preload the old-style object.
1361     dlprefiles="$dlprefiles $pic_object"
1362     prev=
1363     fi
1364    
1365     # A PIC object.
1366     libobjs="$libobjs $pic_object"
1367     arg="$pic_object"
1368     fi
1369    
1370     # Non-PIC object.
1371     if test "$non_pic_object" != none; then
1372     # Prepend the subdirectory the object is found in.
1373     non_pic_object="$xdir$non_pic_object"
1374    
1375     # A standard non-PIC object
1376     non_pic_objects="$non_pic_objects $non_pic_object"
1377     if test -z "$pic_object" || test "$pic_object" = none ; then
1378     arg="$non_pic_object"
1379     fi
1380 nigel 87 else
1381     # If the PIC object exists, use it instead.
1382     # $xdir was prepended to $pic_object above.
1383     non_pic_object="$pic_object"
1384     non_pic_objects="$non_pic_objects $non_pic_object"
1385 nigel 75 fi
1386     else
1387     # Only an error if not doing a dry-run.
1388     if test -z "$run"; then
1389     $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1390     exit $EXIT_FAILURE
1391     else
1392     # Dry-run case.
1393    
1394     # Extract subdirectory from the argument.
1395     xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1396     if test "X$xdir" = "X$arg"; then
1397     xdir=
1398     else
1399     xdir="$xdir/"
1400     fi
1401    
1402     pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1403     non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1404     libobjs="$libobjs $pic_object"
1405     non_pic_objects="$non_pic_objects $non_pic_object"
1406     fi
1407     fi
1408     done
1409     else
1410     $echo "$modename: link input file \`$save_arg' does not exist"
1411     exit $EXIT_FAILURE
1412     fi
1413     arg=$save_arg
1414     prev=
1415     continue
1416     ;;
1417 nigel 41 rpath | xrpath)
1418     # We need an absolute path.
1419 nigel 53 case $arg in
1420 nigel 41 [\\/]* | [A-Za-z]:[\\/]*) ;;
1421     *)
1422     $echo "$modename: only absolute run-paths are allowed" 1>&2
1423 nigel 75 exit $EXIT_FAILURE
1424 nigel 41 ;;
1425     esac
1426     if test "$prev" = rpath; then
1427     case "$rpath " in
1428     *" $arg "*) ;;
1429     *) rpath="$rpath $arg" ;;
1430     esac
1431     else
1432     case "$xrpath " in
1433     *" $arg "*) ;;
1434     *) xrpath="$xrpath $arg" ;;
1435     esac
1436     fi
1437     prev=
1438     continue
1439     ;;
1440 nigel 53 xcompiler)
1441     compiler_flags="$compiler_flags $qarg"
1442     prev=
1443     compile_command="$compile_command $qarg"
1444     finalize_command="$finalize_command $qarg"
1445     continue
1446     ;;
1447     xlinker)
1448     linker_flags="$linker_flags $qarg"
1449     compiler_flags="$compiler_flags $wl$qarg"
1450     prev=
1451     compile_command="$compile_command $wl$qarg"
1452     finalize_command="$finalize_command $wl$qarg"
1453     continue
1454     ;;
1455 nigel 75 xcclinker)
1456     linker_flags="$linker_flags $qarg"
1457     compiler_flags="$compiler_flags $qarg"
1458     prev=
1459     compile_command="$compile_command $qarg"
1460     finalize_command="$finalize_command $qarg"
1461     continue
1462     ;;
1463     shrext)
1464 nigel 83 shrext_cmds="$arg"
1465 nigel 75 prev=
1466     continue
1467     ;;
1468 nigel 87 darwin_framework|darwin_framework_skip)
1469     test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1470 nigel 83 compile_command="$compile_command $arg"
1471     finalize_command="$finalize_command $arg"
1472     prev=
1473     continue
1474     ;;
1475 nigel 41 *)
1476     eval "$prev=\"\$arg\""
1477     prev=
1478     continue
1479     ;;
1480     esac
1481 nigel 75 fi # test -n "$prev"
1482 nigel 41
1483     prevarg="$arg"
1484    
1485 nigel 53 case $arg in
1486 nigel 41 -all-static)
1487     if test -n "$link_static_flag"; then
1488     compile_command="$compile_command $link_static_flag"
1489     finalize_command="$finalize_command $link_static_flag"
1490     fi
1491     continue
1492     ;;
1493    
1494     -allow-undefined)
1495     # FIXME: remove this flag sometime in the future.
1496     $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1497     continue
1498     ;;
1499    
1500     -avoid-version)
1501     avoid_version=yes
1502     continue
1503     ;;
1504    
1505     -dlopen)
1506     prev=dlfiles
1507     continue
1508     ;;
1509    
1510     -dlpreopen)
1511     prev=dlprefiles
1512     continue
1513     ;;
1514    
1515     -export-dynamic)
1516     export_dynamic=yes
1517     continue
1518     ;;
1519    
1520     -export-symbols | -export-symbols-regex)
1521     if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1522 nigel 53 $echo "$modename: more than one -exported-symbols argument is not allowed"
1523 nigel 75 exit $EXIT_FAILURE
1524 nigel 41 fi
1525     if test "X$arg" = "X-export-symbols"; then
1526     prev=expsyms
1527     else
1528     prev=expsyms_regex
1529     fi
1530     continue
1531     ;;
1532    
1533 nigel 87 -framework|-arch|-isysroot)
1534     case " $CC " in
1535     *" ${arg} ${1} "* | *" ${arg} ${1} "*)
1536     prev=darwin_framework_skip ;;
1537     *) compiler_flags="$compiler_flags $arg"
1538     prev=darwin_framework ;;
1539     esac
1540 nigel 83 compile_command="$compile_command $arg"
1541     finalize_command="$finalize_command $arg"
1542 nigel 87 continue
1543     ;;
1544 nigel 83
1545 nigel 75 -inst-prefix-dir)
1546     prev=inst_prefix
1547     continue
1548     ;;
1549    
1550 nigel 53 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1551     # so, if we see these flags be careful not to treat them like -L
1552     -L[A-Z][A-Z]*:*)
1553     case $with_gcc/$host in
1554 nigel 75 no/*-*-irix* | /*-*-irix*)
1555 nigel 53 compile_command="$compile_command $arg"
1556     finalize_command="$finalize_command $arg"
1557     ;;
1558     esac
1559     continue
1560     ;;
1561    
1562 nigel 41 -L*)
1563     dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1564     # We need an absolute path.
1565 nigel 53 case $dir in
1566 nigel 41 [\\/]* | [A-Za-z]:[\\/]*) ;;
1567     *)
1568     absdir=`cd "$dir" && pwd`
1569     if test -z "$absdir"; then
1570 nigel 53 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1571 nigel 87 absdir="$dir"
1572     notinst_path="$notinst_path $dir"
1573 nigel 41 fi
1574     dir="$absdir"
1575     ;;
1576     esac
1577 nigel 53 case "$deplibs " in
1578     *" -L$dir "*) ;;
1579     *)
1580     deplibs="$deplibs -L$dir"
1581     lib_search_path="$lib_search_path $dir"
1582     ;;
1583 nigel 41 esac
1584 nigel 53 case $host in
1585     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1586 nigel 87 testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1587 nigel 53 case :$dllsearchpath: in
1588     *":$dir:"*) ;;
1589     *) dllsearchpath="$dllsearchpath:$dir";;
1590 nigel 41 esac
1591 nigel 87 case :$dllsearchpath: in
1592     *":$testbindir:"*) ;;
1593     *) dllsearchpath="$dllsearchpath:$testbindir";;
1594     esac
1595 nigel 41 ;;
1596     esac
1597 nigel 53 continue
1598 nigel 41 ;;
1599    
1600     -l*)
1601 nigel 53 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1602     case $host in
1603 nigel 87 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1604 nigel 53 # These systems don't actually have a C or math library (as such)
1605 nigel 41 continue
1606     ;;
1607 nigel 87 *-*-os2*)
1608 nigel 53 # These systems don't actually have a C library (as such)
1609     test "X$arg" = "X-lc" && continue
1610 nigel 41 ;;
1611 nigel 83 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1612 nigel 63 # Do not include libc due to us having libc/libc_r.
1613     test "X$arg" = "X-lc" && continue
1614     ;;
1615 nigel 75 *-*-rhapsody* | *-*-darwin1.[012])
1616     # Rhapsody C and math libraries are in the System framework
1617     deplibs="$deplibs -framework System"
1618     continue
1619 nigel 87 ;;
1620     *-*-sco3.2v5* | *-*-sco5v6*)
1621     # Causes problems with __ctype
1622     test "X$arg" = "X-lc" && continue
1623     ;;
1624     *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1625     # Compiler inserts libc in the correct place for threads to work
1626     test "X$arg" = "X-lc" && continue
1627     ;;
1628 nigel 41 esac
1629 nigel 75 elif test "X$arg" = "X-lc_r"; then
1630     case $host in
1631 nigel 83 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1632 nigel 75 # Do not include libc_r directly, use -pthread flag.
1633     continue
1634     ;;
1635     esac
1636 nigel 41 fi
1637     deplibs="$deplibs $arg"
1638 nigel 53 continue
1639 nigel 41 ;;
1640    
1641 nigel 83 # Tru64 UNIX uses -model [arg] to determine the layout of C++
1642     # classes, name mangling, and exception handling.
1643     -model)
1644     compile_command="$compile_command $arg"
1645     compiler_flags="$compiler_flags $arg"
1646     finalize_command="$finalize_command $arg"
1647     prev=xcompiler
1648     continue
1649     ;;
1650    
1651 nigel 75 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1652 nigel 83 compiler_flags="$compiler_flags $arg"
1653     compile_command="$compile_command $arg"
1654     finalize_command="$finalize_command $arg"
1655 nigel 75 continue
1656     ;;
1657    
1658 nigel 41 -module)
1659     module=yes
1660     continue
1661     ;;
1662    
1663 nigel 83 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1664     # -r[0-9][0-9]* specifies the processor on the SGI compiler
1665     # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1666     # +DA*, +DD* enable 64-bit mode on the HP compiler
1667     # -q* pass through compiler args for the IBM compiler
1668     # -m* pass through architecture-specific compiler args for GCC
1669 nigel 87 # -m*, -t[45]*, -txscale* pass through architecture-specific
1670     # compiler args for GCC
1671     # -pg pass through profiling flag for GCC
1672     # @file GCC response files
1673     -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1674     -t[45]*|-txscale*|@*)
1675 nigel 83
1676 nigel 75 # Unknown arguments in both finalize_command and compile_command need
1677     # to be aesthetically quoted because they are evaled later.
1678     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1679     case $arg in
1680 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1681 nigel 75 arg="\"$arg\""
1682     ;;
1683     esac
1684     compile_command="$compile_command $arg"
1685     finalize_command="$finalize_command $arg"
1686 nigel 87 compiler_flags="$compiler_flags $arg"
1687 nigel 75 continue
1688     ;;
1689    
1690     -shrext)
1691     prev=shrext
1692     continue
1693     ;;
1694    
1695 nigel 53 -no-fast-install)
1696     fast_install=no
1697     continue
1698     ;;
1699    
1700     -no-install)
1701     case $host in
1702     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1703     # The PATH hackery in wrapper scripts is required on Windows
1704     # in order for the loader to find any dlls it needs.
1705     $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1706     $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1707     fast_install=no
1708     ;;
1709     *) no_install=yes ;;
1710     esac
1711     continue
1712     ;;
1713    
1714 nigel 41 -no-undefined)
1715     allow_undefined=no
1716     continue
1717     ;;
1718    
1719 nigel 75 -objectlist)
1720     prev=objectlist
1721     continue
1722     ;;
1723    
1724 nigel 41 -o) prev=output ;;
1725    
1726 nigel 75 -precious-files-regex)
1727     prev=precious_regex
1728     continue
1729     ;;
1730    
1731 nigel 41 -release)
1732     prev=release
1733     continue
1734     ;;
1735    
1736     -rpath)
1737     prev=rpath
1738     continue
1739     ;;
1740    
1741     -R)
1742     prev=xrpath
1743     continue
1744     ;;
1745    
1746     -R*)
1747     dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1748     # We need an absolute path.
1749 nigel 53 case $dir in
1750 nigel 41 [\\/]* | [A-Za-z]:[\\/]*) ;;
1751     *)
1752     $echo "$modename: only absolute run-paths are allowed" 1>&2
1753 nigel 75 exit $EXIT_FAILURE
1754 nigel 41 ;;
1755     esac
1756     case "$xrpath " in
1757     *" $dir "*) ;;
1758     *) xrpath="$xrpath $dir" ;;
1759     esac
1760     continue
1761     ;;
1762    
1763     -static)
1764 nigel 53 # The effects of -static are defined in a previous loop.
1765     # We used to do the same as -all-static on platforms that
1766     # didn't have a PIC flag, but the assumption that the effects
1767     # would be equivalent was wrong. It would break on at least
1768     # Digital Unix and AIX.
1769 nigel 41 continue
1770     ;;
1771    
1772     -thread-safe)
1773     thread_safe=yes
1774     continue
1775     ;;
1776    
1777     -version-info)
1778     prev=vinfo
1779     continue
1780     ;;
1781 nigel 75 -version-number)
1782     prev=vinfo
1783     vinfo_number=yes
1784     continue
1785     ;;
1786 nigel 41
1787 nigel 53 -Wc,*)
1788     args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1789     arg=
1790 nigel 63 save_ifs="$IFS"; IFS=','
1791 nigel 53 for flag in $args; do
1792     IFS="$save_ifs"
1793     case $flag in
1794 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1795 nigel 53 flag="\"$flag\""
1796     ;;
1797     esac
1798     arg="$arg $wl$flag"
1799     compiler_flags="$compiler_flags $flag"
1800     done
1801     IFS="$save_ifs"
1802     arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1803     ;;
1804    
1805     -Wl,*)
1806     args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1807     arg=
1808 nigel 63 save_ifs="$IFS"; IFS=','
1809 nigel 53 for flag in $args; do
1810     IFS="$save_ifs"
1811     case $flag in
1812 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1813 nigel 53 flag="\"$flag\""
1814     ;;
1815     esac
1816     arg="$arg $wl$flag"
1817     compiler_flags="$compiler_flags $wl$flag"
1818     linker_flags="$linker_flags $flag"
1819     done
1820     IFS="$save_ifs"
1821     arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1822     ;;
1823    
1824     -Xcompiler)
1825     prev=xcompiler
1826     continue
1827     ;;
1828    
1829     -Xlinker)
1830     prev=xlinker
1831     continue
1832     ;;
1833    
1834 nigel 75 -XCClinker)
1835     prev=xcclinker
1836     continue
1837     ;;
1838    
1839 nigel 41 # Some other compiler flag.
1840     -* | +*)
1841     # Unknown arguments in both finalize_command and compile_command need
1842     # to be aesthetically quoted because they are evaled later.
1843     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1844 nigel 53 case $arg in
1845 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1846 nigel 41 arg="\"$arg\""
1847     ;;
1848     esac
1849     ;;
1850    
1851 nigel 75 *.$objext)
1852     # A standard object.
1853     objs="$objs $arg"
1854     ;;
1855    
1856     *.lo)
1857     # A libtool-controlled object.
1858    
1859     # Check to see that this really is a libtool object.
1860     if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1861     pic_object=
1862     non_pic_object=
1863    
1864     # Read the .lo file
1865     # If there is no directory component, then add one.
1866     case $arg in
1867     */* | *\\*) . $arg ;;
1868     *) . ./$arg ;;
1869     esac
1870    
1871     if test -z "$pic_object" || \
1872     test -z "$non_pic_object" ||
1873     test "$pic_object" = none && \
1874     test "$non_pic_object" = none; then
1875     $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1876     exit $EXIT_FAILURE
1877     fi
1878    
1879     # Extract subdirectory from the argument.
1880     xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1881     if test "X$xdir" = "X$arg"; then
1882     xdir=
1883 nigel 83 else
1884 nigel 75 xdir="$xdir/"
1885 nigel 41 fi
1886    
1887 nigel 75 if test "$pic_object" != none; then
1888     # Prepend the subdirectory the object is found in.
1889     pic_object="$xdir$pic_object"
1890    
1891     if test "$prev" = dlfiles; then
1892     if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1893     dlfiles="$dlfiles $pic_object"
1894     prev=
1895     continue
1896     else
1897     # If libtool objects are unsupported, then we need to preload.
1898     prev=dlprefiles
1899     fi
1900     fi
1901    
1902     # CHECK ME: I think I busted this. -Ossama
1903     if test "$prev" = dlprefiles; then
1904     # Preload the old-style object.
1905     dlprefiles="$dlprefiles $pic_object"
1906     prev=
1907     fi
1908    
1909     # A PIC object.
1910     libobjs="$libobjs $pic_object"
1911     arg="$pic_object"
1912     fi
1913    
1914     # Non-PIC object.
1915     if test "$non_pic_object" != none; then
1916     # Prepend the subdirectory the object is found in.
1917     non_pic_object="$xdir$non_pic_object"
1918    
1919     # A standard non-PIC object
1920     non_pic_objects="$non_pic_objects $non_pic_object"
1921     if test -z "$pic_object" || test "$pic_object" = none ; then
1922     arg="$non_pic_object"
1923     fi
1924 nigel 87 else
1925     # If the PIC object exists, use it instead.
1926     # $xdir was prepended to $pic_object above.
1927     non_pic_object="$pic_object"
1928     non_pic_objects="$non_pic_objects $non_pic_object"
1929 nigel 75 fi
1930 nigel 53 else
1931 nigel 75 # Only an error if not doing a dry-run.
1932     if test -z "$run"; then
1933     $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1934     exit $EXIT_FAILURE
1935     else
1936     # Dry-run case.
1937    
1938     # Extract subdirectory from the argument.
1939     xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1940     if test "X$xdir" = "X$arg"; then
1941     xdir=
1942     else
1943     xdir="$xdir/"
1944     fi
1945    
1946     pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1947     non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1948     libobjs="$libobjs $pic_object"
1949     non_pic_objects="$non_pic_objects $non_pic_object"
1950     fi
1951 nigel 41 fi
1952     ;;
1953    
1954 nigel 53 *.$libext)
1955     # An archive.
1956     deplibs="$deplibs $arg"
1957     old_deplibs="$old_deplibs $arg"
1958     continue
1959     ;;
1960    
1961 nigel 41 *.la)
1962     # A libtool-controlled library.
1963    
1964 nigel 53 if test "$prev" = dlfiles; then
1965     # This library was specified with -dlopen.
1966     dlfiles="$dlfiles $arg"
1967     prev=
1968     elif test "$prev" = dlprefiles; then
1969     # The library was specified with -dlpreopen.
1970     dlprefiles="$dlprefiles $arg"
1971     prev=
1972     else
1973     deplibs="$deplibs $arg"
1974     fi
1975     continue
1976     ;;
1977 nigel 41
1978 nigel 53 # Some other compiler argument.
1979     *)
1980     # Unknown arguments in both finalize_command and compile_command need
1981     # to be aesthetically quoted because they are evaled later.
1982     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1983     case $arg in
1984 nigel 87 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1985 nigel 53 arg="\"$arg\""
1986     ;;
1987     esac
1988     ;;
1989     esac # arg
1990    
1991     # Now actually substitute the argument into the commands.
1992     if test -n "$arg"; then
1993     compile_command="$compile_command $arg"
1994     finalize_command="$finalize_command $arg"
1995     fi
1996     done # argument parsing loop
1997    
1998     if test -n "$prev"; then
1999     $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
2000     $echo "$help" 1>&2
2001 nigel 75 exit $EXIT_FAILURE
2002 nigel 53 fi
2003    
2004     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
2005     eval arg=\"$export_dynamic_flag_spec\"
2006     compile_command="$compile_command $arg"
2007     finalize_command="$finalize_command $arg"
2008     fi
2009    
2010 nigel 75 oldlibs=
2011 nigel 53 # calculate the name of the file, without its directory
2012     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2013     libobjs_save="$libobjs"
2014    
2015     if test -n "$shlibpath_var"; then
2016     # get the directories listed in $shlibpath_var
2017     eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2018     else
2019     shlib_search_path=
2020     fi
2021     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2022     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2023    
2024     output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2025     if test "X$output_objdir" = "X$output"; then
2026     output_objdir="$objdir"
2027     else
2028     output_objdir="$output_objdir/$objdir"
2029     fi
2030     # Create the object directory.
2031 nigel 75 if test ! -d "$output_objdir"; then
2032 nigel 53 $show "$mkdir $output_objdir"
2033     $run $mkdir $output_objdir
2034 nigel 87 exit_status=$?
2035     if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
2036     exit $exit_status
2037 nigel 53 fi
2038     fi
2039    
2040     # Determine the type of output
2041     case $output in
2042     "")
2043     $echo "$modename: you must specify an output file" 1>&2
2044     $echo "$help" 1>&2
2045 nigel 75 exit $EXIT_FAILURE
2046 nigel 53 ;;
2047     *.$libext) linkmode=oldlib ;;
2048     *.lo | *.$objext) linkmode=obj ;;
2049     *.la) linkmode=lib ;;
2050     *) linkmode=prog ;; # Anything else should be a program.
2051     esac
2052    
2053 nigel 75 case $host in
2054     *cygwin* | *mingw* | *pw32*)
2055     # don't eliminate duplications in $postdeps and $predeps
2056     duplicate_compiler_generated_deps=yes
2057     ;;
2058     *)
2059     duplicate_compiler_generated_deps=$duplicate_deps
2060     ;;
2061     esac
2062 nigel 53 specialdeplibs=
2063 nigel 75
2064 nigel 53 libs=
2065     # Find all interdependent deplibs by searching for libraries
2066     # that are linked more than once (e.g. -la -lb -la)
2067     for deplib in $deplibs; do
2068 nigel 63 if test "X$duplicate_deps" = "Xyes" ; then
2069     case "$libs " in
2070     *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2071     esac
2072     fi
2073 nigel 53 libs="$libs $deplib"
2074     done
2075 nigel 75
2076     if test "$linkmode" = lib; then
2077     libs="$predeps $libs $compiler_lib_search_path $postdeps"
2078    
2079     # Compute libraries that are listed more than once in $predeps
2080     # $postdeps and mark them as special (i.e., whose duplicates are
2081     # not to be eliminated).
2082     pre_post_deps=
2083     if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2084     for pre_post_dep in $predeps $postdeps; do
2085     case "$pre_post_deps " in
2086     *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2087     esac
2088     pre_post_deps="$pre_post_deps $pre_post_dep"
2089     done
2090     fi
2091     pre_post_deps=
2092     fi
2093    
2094 nigel 53 deplibs=
2095     newdependency_libs=
2096     newlib_search_path=
2097     need_relink=no # whether we're linking any uninstalled libtool libraries
2098     notinst_deplibs= # not-installed libtool libraries
2099     case $linkmode in
2100     lib)
2101     passes="conv link"
2102     for file in $dlfiles $dlprefiles; do
2103     case $file in
2104     *.la) ;;
2105     *)
2106     $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2107 nigel 75 exit $EXIT_FAILURE
2108 nigel 53 ;;
2109     esac
2110     done
2111     ;;
2112     prog)
2113     compile_deplibs=
2114     finalize_deplibs=
2115     alldeplibs=no
2116     newdlfiles=
2117     newdlprefiles=
2118     passes="conv scan dlopen dlpreopen link"
2119     ;;
2120     *) passes="conv"
2121     ;;
2122     esac
2123     for pass in $passes; do
2124 nigel 75 if test "$linkmode,$pass" = "lib,link" ||
2125     test "$linkmode,$pass" = "prog,scan"; then
2126     libs="$deplibs"
2127     deplibs=
2128     fi
2129     if test "$linkmode" = prog; then
2130 nigel 53 case $pass in
2131 nigel 75 dlopen) libs="$dlfiles" ;;
2132 nigel 53 dlpreopen) libs="$dlprefiles" ;;
2133     link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
2134     esac
2135     fi
2136 nigel 75 if test "$pass" = dlopen; then
2137     # Collect dlpreopened libraries
2138     save_deplibs="$deplibs"
2139     deplibs=
2140     fi
2141 nigel 53 for deplib in $libs; do
2142     lib=
2143     found=no
2144     case $deplib in
2145 nigel 75 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2146     if test "$linkmode,$pass" = "prog,link"; then
2147     compile_deplibs="$deplib $compile_deplibs"
2148     finalize_deplibs="$deplib $finalize_deplibs"
2149     else
2150 nigel 83 compiler_flags="$compiler_flags $deplib"
2151 nigel 75 fi
2152     continue
2153     ;;
2154 nigel 53 -l*)
2155 nigel 75 if test "$linkmode" != lib && test "$linkmode" != prog; then
2156     $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2157 nigel 53 continue
2158     fi
2159     name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2160     for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2161 nigel 75 for search_ext in .la $std_shrext .so .a; do
2162     # Search the libtool library
2163     lib="$searchdir/lib${name}${search_ext}"
2164     if test -f "$lib"; then
2165     if test "$search_ext" = ".la"; then
2166     found=yes
2167     else
2168     found=no
2169     fi
2170     break 2
2171     fi
2172     done
2173 nigel 53 done
2174     if test "$found" != yes; then
2175     # deplib doesn't seem to be a libtool library
2176     if test "$linkmode,$pass" = "prog,link"; then
2177     compile_deplibs="$deplib $compile_deplibs"
2178     finalize_deplibs="$deplib $finalize_deplibs"
2179     else
2180     deplibs="$deplib $deplibs"
2181 nigel 75 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2182 nigel 53 fi
2183     continue
2184 nigel 75 else # deplib is a libtool library
2185     # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2186     # We need to do some special things here, and not later.
2187     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2188     case " $predeps $postdeps " in
2189     *" $deplib "*)
2190     if (${SED} -e '2q' $lib |
2191     grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2192     library_names=
2193     old_library=
2194     case $lib in
2195     */* | *\\*) . $lib ;;
2196     *) . ./$lib ;;
2197     esac
2198     for l in $old_library $library_names; do
2199     ll="$l"
2200     done
2201     if test "X$ll" = "X$old_library" ; then # only static version available
2202     found=no
2203     ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2204     test "X$ladir" = "X$lib" && ladir="."
2205     lib=$ladir/$old_library
2206     if test "$linkmode,$pass" = "prog,link"; then
2207     compile_deplibs="$deplib $compile_deplibs"
2208     finalize_deplibs="$deplib $finalize_deplibs"
2209     else
2210     deplibs="$deplib $deplibs"
2211     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2212     fi
2213     continue
2214     fi
2215     fi
2216 nigel 83 ;;
2217 nigel 75 *) ;;
2218     esac
2219     fi
2220 nigel 53 fi
2221     ;; # -l
2222     -L*)
2223     case $linkmode in
2224     lib)
2225     deplibs="$deplib $deplibs"
2226 nigel 75 test "$pass" = conv && continue
2227 nigel 53 newdependency_libs="$deplib $newdependency_libs"
2228     newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2229     ;;
2230     prog)
2231 nigel 75 if test "$pass" = conv; then
2232 nigel 53 deplibs="$deplib $deplibs"
2233     continue
2234     fi
2235 nigel 75 if test "$pass" = scan; then
2236 nigel 53 deplibs="$deplib $deplibs"
2237     else
2238     compile_deplibs="$deplib $compile_deplibs"
2239     finalize_deplibs="$deplib $finalize_deplibs"
2240     fi
2241 nigel 75 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2242 nigel 53 ;;
2243     *)
2244 nigel 75 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2245 nigel 53 ;;
2246     esac # linkmode
2247     continue
2248     ;; # -L
2249     -R*)
2250 nigel 75 if test "$pass" = link; then
2251 nigel 53 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2252     # Make sure the xrpath contains only unique directories.
2253     case "$xrpath " in
2254     *" $dir "*) ;;
2255     *) xrpath="$xrpath $dir" ;;
2256     esac
2257     fi
2258     deplibs="$deplib $deplibs"
2259     continue
2260     ;;
2261     *.la) lib="$deplib" ;;
2262     *.$libext)
2263 nigel 75 if test "$pass" = conv; then
2264 nigel 53 deplibs="$deplib $deplibs"
2265     continue
2266     fi
2267     case $linkmode in
2268     lib)
2269 nigel 75 valid_a_lib=no
2270     case $deplibs_check_method in
2271     match_pattern*)
2272     set dummy $deplibs_check_method
2273 nigel 83 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2274 nigel 75 if eval $echo \"$deplib\" 2>/dev/null \
2275     | $SED 10q \
2276     | $EGREP "$match_pattern_regex" > /dev/null; then
2277     valid_a_lib=yes
2278     fi
2279     ;;
2280     pass_all)
2281     valid_a_lib=yes
2282     ;;
2283     esac
2284     if test "$valid_a_lib" != yes; then
2285     $echo
2286     $echo "*** Warning: Trying to link with static lib archive $deplib."
2287     $echo "*** I have the capability to make that library automatically link in when"
2288     $echo "*** you link to this library. But I can only do this if you have a"
2289     $echo "*** shared version of the library, which you do not appear to have"
2290     $echo "*** because the file extensions .$libext of this argument makes me believe"
2291     $echo "*** that it is just a static archive that I should not used here."
2292 nigel 53 else
2293 nigel 75 $echo
2294     $echo "*** Warning: Linking the shared library $output against the"
2295     $echo "*** static library $deplib is not portable!"
2296 nigel 53 deplibs="$deplib $deplibs"
2297     fi
2298     continue
2299     ;;
2300     prog)
2301 nigel 75 if test "$pass" != link; then
2302 nigel 53 deplibs="$deplib $deplibs"
2303     else
2304     compile_deplibs="$deplib $compile_deplibs"
2305     finalize_deplibs="$deplib $finalize_deplibs"
2306     fi
2307     continue
2308     ;;
2309     esac # linkmode
2310     ;; # *.$libext
2311     *.lo | *.$objext)
2312 nigel 75 if test "$pass" = conv; then
2313     deplibs="$deplib $deplibs"
2314     elif test "$linkmode" = prog; then
2315     if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2316     # If there is no dlopen support or we're linking statically,
2317     # we need to preload.
2318     newdlprefiles="$newdlprefiles $deplib"
2319     compile_deplibs="$deplib $compile_deplibs"
2320     finalize_deplibs="$deplib $finalize_deplibs"
2321     else
2322     newdlfiles="$newdlfiles $deplib"
2323     fi
2324 nigel 53 fi
2325     continue
2326     ;;
2327     %DEPLIBS%)
2328     alldeplibs=yes
2329     continue
2330     ;;
2331     esac # case $deplib
2332 nigel 75 if test "$found" = yes || test -f "$lib"; then :
2333 nigel 53 else
2334 nigel 87 $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2335 nigel 75 exit $EXIT_FAILURE
2336 nigel 53 fi
2337    
2338 nigel 41 # Check to see that this really is a libtool archive.
2339 nigel 75 if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2340 nigel 41 else
2341 nigel 53 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2342 nigel 75 exit $EXIT_FAILURE
2343 nigel 41 fi
2344    
2345 nigel 53 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2346     test "X$ladir" = "X$lib" && ladir="."
2347    
2348     dlname=
2349     dlopen=
2350     dlpreopen=
2351     libdir=
2352     library_names=
2353     old_library=
2354 nigel 41 # If the library was installed with an old release of libtool,
2355 nigel 75 # it will not redefine variables installed, or shouldnotlink
2356 nigel 41 installed=yes
2357 nigel 75 shouldnotlink=no
2358 nigel 83 avoidtemprpath=
2359 nigel 41
2360 nigel 83
2361 nigel 41 # Read the .la file
2362 nigel 53 case $lib in
2363     */* | *\\*) . $lib ;;
2364     *) . ./$lib ;;
2365 nigel 41 esac
2366    
2367 nigel 53 if test "$linkmode,$pass" = "lib,link" ||
2368     test "$linkmode,$pass" = "prog,scan" ||
2369 nigel 75 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2370 nigel 53 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2371     test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2372     fi
2373    
2374 nigel 75 if test "$pass" = conv; then
2375 nigel 53 # Only check for convenience libraries
2376     deplibs="$lib $deplibs"
2377     if test -z "$libdir"; then
2378     if test -z "$old_library"; then
2379     $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2380 nigel 75 exit $EXIT_FAILURE
2381 nigel 53 fi
2382     # It is a libtool convenience library, so add in its objects.
2383     convenience="$convenience $ladir/$objdir/$old_library"
2384     old_convenience="$old_convenience $ladir/$objdir/$old_library"
2385     tmp_libs=
2386     for deplib in $dependency_libs; do
2387     deplibs="$deplib $deplibs"
2388 nigel 63 if test "X$duplicate_deps" = "Xyes" ; then
2389 nigel 83 case "$tmp_libs " in
2390     *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2391     esac
2392 nigel 63 fi
2393 nigel 53 tmp_libs="$tmp_libs $deplib"
2394     done
2395 nigel 75 elif test "$linkmode" != prog && test "$linkmode" != lib; then
2396 nigel 53 $echo "$modename: \`$lib' is not a convenience library" 1>&2
2397 nigel 75 exit $EXIT_FAILURE
2398 nigel 53 fi
2399     continue
2400     fi # $pass = conv
2401    
2402 nigel 75
2403 nigel 41 # Get the name of the library we link against.
2404     linklib=
2405     for l in $old_library $library_names; do
2406     linklib="$l"
2407     done
2408     if test -z "$linklib"; then
2409 nigel 53 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2410 nigel 75 exit $EXIT_FAILURE
2411 nigel 41 fi
2412    
2413 nigel 53 # This library was specified with -dlopen.
2414 nigel 75 if test "$pass" = dlopen; then
2415 nigel 53 if test -z "$libdir"; then
2416     $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2417 nigel 75 exit $EXIT_FAILURE
2418 nigel 53 fi
2419 nigel 75 if test -z "$dlname" ||
2420     test "$dlopen_support" != yes ||
2421     test "$build_libtool_libs" = no; then
2422 nigel 53 # If there is no dlname, no dlopen support or we're linking
2423 nigel 75 # statically, we need to preload. We also need to preload any
2424     # dependent libraries so libltdl's deplib preloader doesn't
2425     # bomb out in the load deplibs phase.
2426     dlprefiles="$dlprefiles $lib $dependency_libs"
2427 nigel 41 else
2428 nigel 53 newdlfiles="$newdlfiles $lib"
2429 nigel 41 fi
2430 nigel 53 continue
2431     fi # $pass = dlopen
2432 nigel 41
2433 nigel 53 # We need an absolute path.
2434     case $ladir in
2435     [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2436     *)
2437     abs_ladir=`cd "$ladir" && pwd`
2438     if test -z "$abs_ladir"; then
2439     $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2440     $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2441     abs_ladir="$ladir"
2442     fi
2443     ;;
2444     esac
2445     laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2446 nigel 41
2447 nigel 53 # Find the relevant object directory and library name.
2448     if test "X$installed" = Xyes; then
2449     if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2450     $echo "$modename: warning: library \`$lib' was moved." 1>&2
2451     dir="$ladir"
2452     absdir="$abs_ladir"
2453     libdir="$abs_ladir"
2454 nigel 41 else
2455 nigel 53 dir="$libdir"
2456     absdir="$libdir"
2457 nigel 41 fi
2458 nigel 83 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2459 nigel 53 else
2460 nigel 75 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2461     dir="$ladir"
2462     absdir="$abs_ladir"
2463     # Remove this search path later
2464     notinst_path="$notinst_path $abs_ladir"
2465     else
2466     dir="$ladir/$objdir"
2467     absdir="$abs_ladir/$objdir"
2468     # Remove this search path later
2469     notinst_path="$notinst_path $abs_ladir"
2470     fi
2471 nigel 53 fi # $installed = yes
2472     name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2473 nigel 41
2474 nigel 53 # This library was specified with -dlpreopen.
2475 nigel 75 if test "$pass" = dlpreopen; then
2476 nigel 53 if test -z "$libdir"; then
2477     $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2478 nigel 75 exit $EXIT_FAILURE
2479 nigel 53 fi
2480 nigel 41 # Prefer using a static library (so that no silly _DYNAMIC symbols
2481     # are required to link).
2482     if test -n "$old_library"; then
2483 nigel 53 newdlprefiles="$newdlprefiles $dir/$old_library"
2484     # Otherwise, use the dlname, so that lt_dlopen finds it.
2485     elif test -n "$dlname"; then
2486     newdlprefiles="$newdlprefiles $dir/$dlname"
2487 nigel 41 else
2488 nigel 53 newdlprefiles="$newdlprefiles $dir/$linklib"
2489 nigel 41 fi
2490 nigel 53 fi # $pass = dlpreopen
2491    
2492     if test -z "$libdir"; then
2493     # Link the convenience library
2494 nigel 75 if test "$linkmode" = lib; then
2495 nigel 53 deplibs="$dir/$old_library $deplibs"
2496     elif test "$linkmode,$pass" = "prog,link"; then
2497     compile_deplibs="$dir/$old_library $compile_deplibs"
2498     finalize_deplibs="$dir/$old_library $finalize_deplibs"
2499     else
2500 nigel 75 deplibs="$lib $deplibs" # used for prog,scan pass
2501 nigel 53 fi
2502     continue
2503 nigel 41 fi
2504    
2505 nigel 75
2506     if test "$linkmode" = prog && test "$pass" != link; then
2507 nigel 53 newlib_search_path="$newlib_search_path $ladir"
2508     deplibs="$lib $deplibs"
2509    
2510     linkalldeplibs=no
2511     if test "$link_all_deplibs" != no || test -z "$library_names" ||
2512     test "$build_libtool_libs" = no; then
2513     linkalldeplibs=yes
2514     fi
2515    
2516     tmp_libs=
2517     for deplib in $dependency_libs; do
2518     case $deplib in
2519     -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2520     esac
2521     # Need to link against all dependency_libs?
2522 nigel 75 if test "$linkalldeplibs" = yes; then
2523 nigel 53 deplibs="$deplib $deplibs"
2524     else
2525     # Need to hardcode shared library paths
2526     # or/and link against static libraries
2527     newdependency_libs="$deplib $newdependency_libs"
2528     fi
2529 nigel 63 if test "X$duplicate_deps" = "Xyes" ; then
2530     case "$tmp_libs " in
2531     *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2532     esac
2533     fi
2534 nigel 53 tmp_libs="$tmp_libs $deplib"
2535     done # for deplib
2536     continue
2537     fi # $linkmode = prog...
2538    
2539 nigel 75 if test "$linkmode,$pass" = "prog,link"; then
2540     if test -n "$library_names" &&
2541     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2542     # We need to hardcode the library path
2543 nigel 83 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2544 nigel 75 # Make sure the rpath contains only unique directories.
2545     case "$temp_rpath " in
2546     *" $dir "*) ;;
2547     *" $absdir "*) ;;
2548 nigel 87 *) temp_rpath="$temp_rpath $absdir" ;;
2549 nigel 75 esac
2550     fi
2551 nigel 41
2552 nigel 53 # Hardcode the library path.
2553     # Skip directories that are in the system default run-time
2554     # search path.
2555     case " $sys_lib_dlsearch_path " in
2556 nigel 41 *" $absdir "*) ;;
2557 nigel 53 *)
2558     case "$compile_rpath " in
2559     *" $absdir "*) ;;
2560     *) compile_rpath="$compile_rpath $absdir"
2561     esac
2562     ;;
2563 nigel 41 esac
2564 nigel 53 case " $sys_lib_dlsearch_path " in
2565 nigel 41 *" $libdir "*) ;;
2566 nigel 53 *)
2567     case "$finalize_rpath " in
2568     *" $libdir "*) ;;
2569     *) finalize_rpath="$finalize_rpath $libdir"
2570     esac
2571     ;;
2572 nigel 41 esac
2573 nigel 53 fi # $linkmode,$pass = prog,link...
2574 nigel 41
2575 nigel 53 if test "$alldeplibs" = yes &&
2576     { test "$deplibs_check_method" = pass_all ||
2577     { test "$build_libtool_libs" = yes &&
2578     test -n "$library_names"; }; }; then
2579     # We only need to search for static libraries
2580     continue
2581     fi
2582 nigel 75 fi
2583 nigel 53
2584 nigel 75 link_static=no # Whether the deplib will be linked statically
2585 nigel 87 use_static_libs=$prefer_static_libs
2586     if test "$use_static_libs" = built && test "$installed" = yes ; then
2587     use_static_libs=no
2588     fi
2589 nigel 75 if test -n "$library_names" &&
2590 nigel 87 { test "$use_static_libs" = no || test -z "$old_library"; }; then
2591 nigel 53 if test "$installed" = no; then
2592     notinst_deplibs="$notinst_deplibs $lib"
2593     need_relink=yes
2594     fi
2595 nigel 75 # This is a shared library
2596 nigel 53
2597 nigel 75 # Warn about portability, can't link against -module's on
2598     # some systems (darwin)
2599     if test "$shouldnotlink" = yes && test "$pass" = link ; then
2600     $echo
2601     if test "$linkmode" = prog; then
2602     $echo "*** Warning: Linking the executable $output against the loadable module"
2603     else
2604     $echo "*** Warning: Linking the shared library $output against the loadable module"
2605     fi
2606     $echo "*** $linklib is not portable!"
2607     fi
2608     if test "$linkmode" = lib &&
2609     test "$hardcode_into_libs" = yes; then
2610     # Hardcode the library path.
2611     # Skip directories that are in the system default run-time
2612     # search path.
2613     case " $sys_lib_dlsearch_path " in
2614     *" $absdir "*) ;;
2615     *)
2616     case "$compile_rpath " in
2617     *" $absdir "*) ;;
2618     *) compile_rpath="$compile_rpath $absdir"
2619     esac
2620     ;;
2621     esac
2622     case " $sys_lib_dlsearch_path " in
2623     *" $libdir "*) ;;
2624     *)
2625     case "$finalize_rpath " in
2626     *" $libdir "*) ;;
2627     *) finalize_rpath="$finalize_rpath $libdir"
2628     esac
2629     ;;
2630     esac
2631     fi
2632    
2633 nigel 53 if test -n "$old_archive_from_expsyms_cmds"; then
2634     # figure out the soname
2635     set dummy $library_names
2636     realname="$2"
2637     shift; shift
2638     libname=`eval \\$echo \"$libname_spec\"`
2639     # use dlname if we got it. it's perfectly good, no?
2640     if test -n "$dlname"; then
2641     soname="$dlname"
2642     elif test -n "$soname_spec"; then
2643     # bleh windows
2644     case $host in
2645 nigel 75 *cygwin* | mingw*)
2646 nigel 53 major=`expr $current - $age`
2647     versuffix="-$major"
2648 nigel 41 ;;
2649     esac
2650 nigel 53 eval soname=\"$soname_spec\"
2651     else
2652     soname="$realname"
2653     fi
2654    
2655     # Make a new name for the extract_expsyms_cmds to use
2656     soroot="$soname"
2657 nigel 75 soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2658     newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2659 nigel 53
2660     # If the library has no export list, then create one now
2661     if test -f "$output_objdir/$soname-def"; then :
2662     else
2663     $show "extracting exported symbol list from \`$soname'"
2664 nigel 63 save_ifs="$IFS"; IFS='~'
2665 nigel 75 cmds=$extract_expsyms_cmds
2666 nigel 53 for cmd in $cmds; do
2667     IFS="$save_ifs"
2668 nigel 75 eval cmd=\"$cmd\"
2669 nigel 53 $show "$cmd"
2670     $run eval "$cmd" || exit $?
2671     done
2672     IFS="$save_ifs"
2673     fi
2674    
2675     # Create $newlib
2676     if test -f "$output_objdir/$newlib"; then :; else
2677     $show "generating import library for \`$soname'"
2678 nigel 63 save_ifs="$IFS"; IFS='~'
2679 nigel 75 cmds=$old_archive_from_expsyms_cmds
2680 nigel 53 for cmd in $cmds; do
2681     IFS="$save_ifs"
2682 nigel 75 eval cmd=\"$cmd\"
2683 nigel 53 $show "$cmd"
2684     $run eval "$cmd" || exit $?
2685     done
2686     IFS="$save_ifs"
2687     fi
2688     # make sure the library variables are pointing to the new library
2689     dir=$output_objdir
2690     linklib=$newlib
2691 nigel 75 fi # test -n "$old_archive_from_expsyms_cmds"
2692 nigel 53
2693 nigel 75 if test "$linkmode" = prog || test "$mode" != relink; then
2694 nigel 53 add_shlibpath=
2695     add_dir=
2696     add=
2697     lib_linked=yes
2698     case $hardcode_action in
2699     immediate | unsupported)
2700     if test "$hardcode_direct" = no; then
2701     add="$dir/$linklib"
2702 nigel 75 case $host in
2703 nigel 87 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2704     *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2705     *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2706     *-*-unixware7*) add_dir="-L$dir" ;;
2707 nigel 75 *-*-darwin* )
2708     # if the lib is a module then we can not link against
2709     # it, someone is ignoring the new warnings I added
2710 nigel 87 if /usr/bin/file -L $add 2> /dev/null |
2711     $EGREP ": [^:]* bundle" >/dev/null ; then
2712 nigel 75 $echo "** Warning, lib $linklib is a module, not a shared library"
2713     if test -z "$old_library" ; then
2714 nigel 83 $echo
2715     $echo "** And there doesn't seem to be a static archive available"
2716     $echo "** The link will probably fail, sorry"
2717 nigel 75 else
2718 nigel 83 add="$dir/$old_library"
2719 nigel 75 fi
2720     fi
2721     esac
2722 nigel 53 elif test "$hardcode_minus_L" = no; then
2723     case $host in
2724     *-*-sunos*) add_shlibpath="$dir" ;;
2725     esac
2726     add_dir="-L$dir"
2727     add="-l$name"
2728     elif test "$hardcode_shlibpath_var" = no; then
2729     add_shlibpath="$dir"
2730     add="-l$name"
2731     else
2732     lib_linked=no
2733     fi
2734     ;;
2735     relink)
2736     if test "$hardcode_direct" = yes; then
2737     add="$dir/$linklib"
2738     elif test "$hardcode_minus_L" = yes; then
2739     add_dir="-L$dir"
2740 nigel 75 # Try looking first in the location we're being installed to.
2741     if test -n "$inst_prefix_dir"; then
2742 nigel 87 case $libdir in
2743 nigel 75 [\\/]*)
2744     add_dir="$add_dir -L$inst_prefix_dir$libdir"
2745     ;;
2746     esac
2747     fi
2748 nigel 53 add="-l$name"
2749     elif test "$hardcode_shlibpath_var" = yes; then
2750     add_shlibpath="$dir"
2751     add="-l$name"
2752     else
2753     lib_linked=no
2754     fi
2755     ;;
2756     *) lib_linked=no ;;
2757     esac
2758    
2759     if test "$lib_linked" != yes; then
2760     $echo "$modename: configuration error: unsupported hardcode properties"
2761 nigel 75 exit $EXIT_FAILURE
2762 nigel 53 fi
2763    
2764     if test -n "$add_shlibpath"; then
2765     case :$compile_shlibpath: in
2766     *":$add_shlibpath:"*) ;;
2767     *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2768 nigel 41 esac
2769 nigel 53 fi
2770 nigel 75 if test "$linkmode" = prog; then
2771 nigel 53 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2772     test -n "$add" && compile_deplibs="$add $compile_deplibs"
2773 nigel 41 else
2774 nigel 53 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2775     test -n "$add" && deplibs="$add $deplibs"
2776     if test "$hardcode_direct" != yes && \
2777     test "$hardcode_minus_L" != yes && \
2778     test "$hardcode_shlibpath_var" = yes; then
2779     case :$finalize_shlibpath: in
2780     *":$libdir:"*) ;;
2781     *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2782     esac
2783     fi
2784 nigel 41 fi
2785 nigel 53 fi
2786 nigel 41
2787 nigel 75 if test "$linkmode" = prog || test "$mode" = relink; then
2788 nigel 53 add_shlibpath=
2789     add_dir=
2790     add=
2791     # Finalize command for both is simple: just hardcode it.
2792 nigel 41 if test "$hardcode_direct" = yes; then
2793 nigel 53 add="$libdir/$linklib"
2794 nigel 41 elif test "$hardcode_minus_L" = yes; then
2795 nigel 53 add_dir="-L$libdir"
2796     add="-l$name"
2797 nigel 41 elif test "$hardcode_shlibpath_var" = yes; then
2798 nigel 53 case :$finalize_shlibpath: in
2799     *":$libdir:"*) ;;
2800     *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2801 nigel 41 esac
2802 nigel 53 add="-l$name"
2803 nigel 75 elif test "$hardcode_automatic" = yes; then
2804     if test -n "$inst_prefix_dir" &&
2805     test -f "$inst_prefix_dir$libdir/$linklib" ; then
2806 nigel 83 add="$inst_prefix_dir$libdir/$linklib"
2807 nigel 75 else
2808 nigel 83 add="$libdir/$linklib"
2809 nigel 75 fi
2810 nigel 41 else
2811 nigel 53 # We cannot seem to hardcode it, guess we'll fake it.
2812     add_dir="-L$libdir"
2813 nigel 75 # Try looking first in the location we're being installed to.
2814     if test -n "$inst_prefix_dir"; then
2815 nigel 87 case $libdir in
2816 nigel 75 [\\/]*)
2817     add_dir="$add_dir -L$inst_prefix_dir$libdir"
2818     ;;
2819     esac
2820     fi
2821 nigel 53 add="-l$name"
2822 nigel 41 fi
2823    
2824 nigel 75 if test "$linkmode" = prog; then
2825 nigel 53 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2826     test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2827     else
2828     test -n "$add_dir" && deplibs="$add_dir $deplibs"
2829     test -n "$add" && deplibs="$add $deplibs"
2830     fi
2831 nigel 41 fi
2832 nigel 75 elif test "$linkmode" = prog; then
2833 nigel 41 # Here we assume that one of hardcode_direct or hardcode_minus_L
2834     # is not unsupported. This is valid on all known static and
2835     # shared platforms.
2836     if test "$hardcode_direct" != unsupported; then
2837     test -n "$old_library" && linklib="$old_library"
2838 nigel 53 compile_deplibs="$dir/$linklib $compile_deplibs"
2839     finalize_deplibs="$dir/$linklib $finalize_deplibs"
2840 nigel 41 else
2841 nigel 53 compile_deplibs="-l$name -L$dir $compile_deplibs"
2842     finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2843 nigel 41 fi
2844 nigel 53 elif test "$build_libtool_libs" = yes; then
2845     # Not a shared library
2846     if test "$deplibs_check_method" != pass_all; then
2847     # We're trying link a shared library against a static one
2848     # but the system doesn't support it.
2849 nigel 41
2850 nigel 53 # Just print a warning and add the library to dependency_libs so
2851     # that the program can be linked against the static library.
2852 nigel 75 $echo
2853     $echo "*** Warning: This system can not link to static lib archive $lib."
2854     $echo "*** I have the capability to make that library automatically link in when"
2855     $echo "*** you link to this library. But I can only do this if you have a"
2856     $echo "*** shared version of the library, which you do not appear to have."
2857 nigel 53 if test "$module" = yes; then
2858 nigel 75 $echo "*** But as you try to build a module library, libtool will still create "
2859     $echo "*** a static module, that should work as long as the dlopening application"
2860     $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2861 nigel 53 if test -z "$global_symbol_pipe"; then
2862 nigel 75 $echo
2863     $echo "*** However, this would only work if libtool was able to extract symbol"
2864     $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2865     $echo "*** not find such a program. So, this module is probably useless."
2866     $echo "*** \`nm' from GNU binutils and a full rebuild may help."
2867 nigel 53 fi
2868     if test "$build_old_libs" = no; then
2869 nigel 63 build_libtool_libs=module
2870     build_old_libs=yes
2871 nigel 53 else
2872 nigel 63 build_libtool_libs=no
2873 nigel 53 fi
2874     fi
2875     else
2876     deplibs="$dir/$old_library $deplibs"
2877     link_static=yes
2878     fi
2879     fi # link shared/static library?
2880 nigel 41
2881 nigel 75 if test "$linkmode" = lib; then
2882 nigel 53 if test -n "$dependency_libs" &&
2883 nigel 75 { test "$hardcode_into_libs" != yes ||
2884     test "$build_old_libs" = yes ||
2885     test "$link_static" = yes; }; then
2886 nigel 53 # Extract -R from dependency_libs
2887     temp_deplibs=
2888     for libdir in $dependency_libs; do
2889     case $libdir in
2890     -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2891     case " $xrpath " in
2892     *" $temp_xrpath "*) ;;
2893     *) xrpath="$xrpath $temp_xrpath";;
2894     esac;;
2895     *) temp_deplibs="$temp_deplibs $libdir";;
2896     esac
2897     done
2898     dependency_libs="$temp_deplibs"
2899     fi
2900 nigel 41
2901 nigel 53 newlib_search_path="$newlib_search_path $absdir"
2902     # Link against this library
2903     test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2904     # ... and its dependency_libs
2905     tmp_libs=
2906     for deplib in $dependency_libs; do
2907     newdependency_libs="$deplib $newdependency_libs"
2908 nigel 63 if test "X$duplicate_deps" = "Xyes" ; then
2909     case "$tmp_libs " in
2910     *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2911     esac
2912     fi
2913 nigel 53 tmp_libs="$tmp_libs $deplib"
2914     done
2915 nigel 41
2916 nigel 75 if test "$link_all_deplibs" != no; then
2917 nigel 53 # Add the search paths of all dependency libraries
2918     for deplib in $dependency_libs; do
2919     case $deplib in
2920     -L*) path="$deplib" ;;
2921     *.la)
2922     dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2923     test "X$dir" = "X$deplib" && dir="."
2924     # We need an absolute path.
2925     case $dir in
2926     [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2927     *)
2928     absdir=`cd "$dir" && pwd`
2929     if test -z "$absdir"; then
2930     $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2931     absdir="$dir"
2932     fi
2933     ;;
2934     esac
2935     if grep "^installed=no" $deplib > /dev/null; then
2936 nigel 75 path="$absdir/$objdir"
2937 nigel 53 else
2938 nigel 63 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2939 nigel 53 if test -z "$libdir"; then
2940     $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2941 nigel 75 exit $EXIT_FAILURE
2942 nigel 53 fi
2943     if test "$absdir" != "$libdir"; then
2944     $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2945     fi
2946 nigel 75 path="$absdir"
2947 nigel 53 fi
2948 nigel 75 depdepl=
2949     case $host in
2950     *-*-darwin*)
2951     # we do not want to link against static libs,
2952     # but need to link against shared
2953     eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2954     if test -n "$deplibrary_names" ; then
2955     for tmp in $deplibrary_names ; do
2956     depdepl=$tmp
2957     done
2958     if test -f "$path/$depdepl" ; then
2959     depdepl="$path/$depdepl"
2960     fi
2961     # do not add paths which are already there
2962     case " $newlib_search_path " in
2963     *" $path "*) ;;
2964     *) newlib_search_path="$newlib_search_path $path";;
2965     esac
2966     fi
2967     path=""
2968     ;;
2969     *)
2970     path="-L$path"
2971     ;;
2972     esac
2973 nigel 53 ;;
2974 nigel 75 -l*)
2975     case $host in
2976     *-*-darwin*)
2977     # Again, we only want to link against shared libraries
2978     eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2979     for tmp in $newlib_search_path ; do
2980     if test -f "$tmp/lib$tmp_libs.dylib" ; then
2981     eval depdepl="$tmp/lib$tmp_libs.dylib"
2982     break
2983     fi
2984     done
2985     path=""
2986     ;;
2987     *) continue ;;
2988     esac
2989     ;;
2990 nigel 53 *) continue ;;
2991     esac
2992     case " $deplibs " in
2993 nigel 83 *" $path "*) ;;
2994     *) deplibs="$path $deplibs" ;;
2995     esac
2996     case " $deplibs " in
2997 nigel 75 *" $depdepl "*) ;;
2998     *) deplibs="$depdepl $deplibs" ;;
2999     esac
3000 nigel 53 done
3001     fi # link_all_deplibs != no
3002     fi # linkmode = lib
3003     done # for deplib in $libs
3004 nigel 75 dependency_libs="$newdependency_libs"
3005     if test "$pass" = dlpreopen; then
3006 nigel 53 # Link the dlpreopened libraries before other libraries
3007     for deplib in $save_deplibs; do
3008     deplibs="$deplib $deplibs"
3009     done
3010 nigel 41 fi
3011 nigel 75 if test "$pass" != dlopen; then
3012     if test "$pass" != conv; then
3013 nigel 53 # Make sure lib_search_path contains only unique directories.
3014     lib_search_path=
3015     for dir in $newlib_search_path; do
3016     case "$lib_search_path " in
3017     *" $dir "*) ;;
3018     *) lib_search_path="$lib_search_path $dir" ;;
3019     esac
3020     done
3021     newlib_search_path=
3022     fi
3023 nigel 41
3024 nigel 53 if test "$linkmode,$pass" != "prog,link"; then
3025     vars="deplibs"
3026     else
3027     vars="compile_deplibs finalize_deplibs"
3028     fi
3029     for var in $vars dependency_libs; do
3030     # Add libraries to $var in reverse order
3031     eval tmp_libs=\"\$$var\"
3032     new_libs=
3033     for deplib in $tmp_libs; do
3034 nigel 75 # FIXME: Pedantically, this is the right thing to do, so
3035 nigel 83 # that some nasty dependency loop isn't accidentally
3036     # broken:
3037 nigel 75 #new_libs="$deplib $new_libs"
3038     # Pragmatically, this seems to cause very few problems in
3039     # practice:
3040 nigel 53 case $deplib in
3041     -L*) new_libs="$deplib $new_libs" ;;
3042 nigel 75 -R*) ;;
3043 nigel 53 *)
3044 nigel 75 # And here is the reason: when a library appears more
3045     # than once as an explicit dependence of a library, or
3046     # is implicitly linked in more than once by the
3047     # compiler, it is considered special, and multiple
3048     # occurrences thereof are not removed. Compare this
3049     # with having the same library being listed as a
3050     # dependency of multiple other libraries: in this case,
3051     # we know (pedantically, we assume) the library does not
3052     # need to be listed more than once, so we keep only the
3053     # last copy. This is not always right, but it is rare
3054     # enough that we require users that really mean to play
3055     # such unportable linking tricks to link the library
3056     # using -Wl,-lname, so that libtool does not consider it
3057     # for duplicate removal.
3058 nigel 53 case " $specialdeplibs " in
3059     *" $deplib "*) new_libs="$deplib $new_libs" ;;
3060     *)
3061     case " $new_libs " in
3062     *" $deplib "*) ;;
3063     *) new_libs="$deplib $new_libs" ;;
3064     esac
3065     ;;
3066     esac
3067     ;;
3068     esac
3069     done
3070     tmp_libs=
3071     for deplib in $new_libs; do
3072     case $deplib in
3073     -L*)
3074     case " $tmp_libs " in
3075     *" $deplib "*) ;;
3076     *) tmp_libs="$tmp_libs $deplib" ;;
3077     esac
3078     ;;
3079     *) tmp_libs="$tmp_libs $deplib" ;;
3080     esac
3081     done
3082     eval $var=\"$tmp_libs\"
3083     done # for var
3084 nigel 41 fi
3085 nigel 75 # Last step: remove runtime libs from dependency_libs
3086     # (they stay in deplibs)
3087     tmp_libs=
3088     for i in $dependency_libs ; do
3089     case " $predeps $postdeps $compiler_lib_search_path " in
3090     *" $i "*)
3091     i=""
3092     ;;
3093     esac
3094     if test -n "$i" ; then
3095     tmp_libs="$tmp_libs $i"
3096     fi
3097     done
3098     dependency_libs=$tmp_libs
3099 nigel 53 done # for pass
3100 nigel 75 if test "$linkmode" = prog; then
3101 nigel 53 dlfiles="$newdlfiles"
3102     dlprefiles="$newdlprefiles"
3103     fi
3104 nigel 41
3105 nigel 53 case $linkmode in
3106     oldlib)
3107 nigel 75 if test -n "$deplibs"; then
3108     $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3109     fi
3110    
3111 nigel 41 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3112     $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3113     fi
3114    
3115     if test -n "$rpath"; then
3116     $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3117     fi
3118    
3119     if test -n "$xrpath"; then
3120     $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3121     fi
3122    
3123     if test -n "$vinfo"; then
3124 nigel 75 $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3125 nigel 41 fi
3126    
3127     if test -n "$release"; then
3128     $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3129     fi
3130    
3131     if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3132     $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3133     fi
3134    
3135     # Now set the variables for building old libraries.
3136     build_libtool_libs=no
3137     oldlibs="$output"
3138 nigel 53 objs="$objs$old_deplibs"
3139 nigel 41 ;;
3140    
3141 nigel 53 lib)
3142 nigel 41 # Make sure we only generate libraries of the form `libNAME.la'.
3143 nigel 53 case $outputname in
3144 nigel 41 lib*)
3145     name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3146 nigel 75 eval shared_ext=\"$shrext_cmds\"
3147 nigel 41 eval libname=\"$libname_spec\"
3148     ;;
3149     *)
3150     if test "$module" = no; then
3151     $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3152     $echo "$help" 1>&2
3153 nigel 75 exit $EXIT_FAILURE
3154 nigel 41 fi
3155     if test "$need_lib_prefix" != no; then
3156     # Add the "lib" prefix for modules if required
3157     name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3158 nigel 75 eval shared_ext=\"$shrext_cmds\"
3159 nigel 41 eval libname=\"$libname_spec\"
3160     else
3161     libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3162     fi
3163     ;;
3164     esac
3165    
3166     if test -n "$objs"; then
3167 nigel 53 if test "$deplibs_check_method" != pass_all; then
3168     $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3169 nigel 75 exit $EXIT_FAILURE
3170 nigel 53 else
3171 nigel 75 $echo
3172     $echo "*** Warning: Linking the shared library $output against the non-libtool"
3173     $echo "*** objects $objs is not portable!"
3174 nigel 53 libobjs="$libobjs $objs"
3175     fi
3176 nigel 41 fi
3177    
3178 nigel 53 if test "$dlself" != no; then
3179     $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3180 nigel 41 fi
3181    
3182     set dummy $rpath
3183 nigel 75 if test "$#" -gt 2; then
3184 nigel 41 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3185     fi
3186     install_libdir="$2"
3187    
3188     oldlibs=
3189     if test -z "$rpath"; then
3190     if test "$build_libtool_libs" = yes; then
3191     # Building a libtool convenience library.
3192 nigel 75 # Some compilers have problems with a `.al' extension so
3193     # convenience libraries should have the same extension an
3194     # archive normally would.
3195 nigel 41 oldlibs="$output_objdir/$libname.$libext $oldlibs"
3196     build_libtool_libs=convenience
3197     build_old_libs=yes
3198     fi
3199    
3200     if test -n "$vinfo"; then
3201 nigel 75 $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3202 nigel 41 fi
3203    
3204     if test -n "$release"; then
3205     $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3206     fi
3207     else
3208    
3209     # Parse the version information argument.
3210 nigel 63 save_ifs="$IFS"; IFS=':'
3211 nigel 41 set dummy $vinfo 0 0 0
3212     IFS="$save_ifs"
3213    
3214     if test -n "$8"; then
3215     $echo "$modename: too many parameters to \`-version-info'" 1>&2
3216     $echo "$help" 1>&2
3217 nigel 75 exit $EXIT_FAILURE
3218 nigel 41 fi
3219    
3220 nigel 75 # convert absolute version numbers to libtool ages
3221     # this retains compatibility with .la files and attempts
3222     # to make the code below a bit more comprehensible
3223 nigel 41
3224 nigel 75 case $vinfo_number in
3225     yes)
3226     number_major="$2"
3227     number_minor="$3"
3228     number_revision="$4"
3229     #
3230     # There are really only two kinds -- those that
3231     # use the current revision as the major version
3232     # and those that subtract age and use age as
3233     # a minor version. But, then there is irix
3234     # which has an extra 1 added just for fun
3235     #
3236     case $version_type in
3237     darwin|linux|osf|windows)
3238     current=`expr $number_major + $number_minor`
3239     age="$number_minor"
3240     revision="$number_revision"
3241     ;;
3242     freebsd-aout|freebsd-elf|sunos)
3243     current="$number_major"
3244     revision="$number_minor"
3245     age="0"
3246     ;;
3247     irix|nonstopux)
3248     current=`expr $number_major + $number_minor - 1`
3249     age="$number_minor"
3250     revision="$number_minor"
3251     ;;
3252     esac
3253     ;;
3254     no)
3255     current="$2"
3256     revision="$3"
3257     age="$4"
3258     ;;
3259     esac
3260    
3261 nigel 41 # Check that each of the things are valid numbers.
3262 nigel 53 case $current in
3263 nigel 83 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3264 nigel 41 *)
3265 nigel 83 $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3266 nigel 41 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3267 nigel 75 exit $EXIT_FAILURE
3268 nigel 41 ;;
3269     esac
3270    
3271 nigel 53 case $revision in
3272 nigel 83 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3273 nigel 41 *)
3274 nigel 83 $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3275 nigel 41 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3276 nigel 75 exit $EXIT_FAILURE
3277 nigel 41 ;;
3278     esac
3279    
3280 nigel 53 case $age in
3281 nigel 83 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
3282 nigel 41 *)
3283 nigel 83 $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3284 nigel 41 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3285 nigel 75 exit $EXIT_FAILURE
3286 nigel 41 ;;
3287     esac
3288    
3289 nigel 75 if test "$age" -gt "$current"; then
3290 nigel 41 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3291     $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3292 nigel 75 exit $EXIT_FAILURE
3293 nigel 41 fi
3294    
3295     # Calculate the version variables.
3296     major=
3297     versuffix=
3298     verstring=
3299 nigel 53 case $version_type in
3300 nigel 41 none) ;;
3301    
3302 nigel 53 darwin)
3303     # Like Linux, but with the current version available in
3304     # verstring for coding it into the library header
3305     major=.`expr $current - $age`
3306     versuffix="$major.$age.$revision"
3307     # Darwin ld doesn't like 0 for these options...
3308     minor_current=`expr $current + 1`
3309 nigel 75 verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3310 nigel 53 ;;
3311    
3312     freebsd-aout)
3313     major=".$current"
3314     versuffix=".$current.$revision";
3315     ;;
3316    
3317     freebsd-elf)
3318     major=".$current"
3319     versuffix=".$current";
3320     ;;
3321    
3322 nigel 63 irix | nonstopux)
3323 nigel 41 major=`expr $current - $age + 1`
3324    
3325 nigel 63 case $version_type in
3326     nonstopux) verstring_prefix=nonstopux ;;
3327 nigel 83 *) verstring_prefix=sgi ;;
3328 nigel 63 esac
3329     verstring="$verstring_prefix$major.$revision"
3330    
3331 nigel 41 # Add in all the interfaces that we are compatible with.
3332     loop=$revision
3333 nigel 75 while test "$loop" -ne 0; do
3334 nigel 41 iface=`expr $revision - $loop`
3335     loop=`expr $loop - 1`
3336 nigel 63 verstring="$verstring_prefix$major.$iface:$verstring"
3337 nigel 41 done
3338 nigel 53
3339     # Before this point, $major must not contain `.'.
3340     major=.$major
3341     versuffix="$major.$revision"
3342 nigel 41 ;;
3343    
3344     linux)
3345     major=.`expr $current - $age`
3346     versuffix="$major.$age.$revision"
3347     ;;
3348    
3349     osf)
3350 nigel 63 major=.`expr $current - $age`
3351 nigel 41 versuffix=".$current.$age.$revision"
3352     verstring="$current.$age.$revision"
3353    
3354     # Add in all the interfaces that we are compatible with.
3355     loop=$age
3356 nigel 75 while test "$loop" -ne 0; do
3357 nigel 41 iface=`expr $current - $loop`
3358     loop=`expr $loop - 1`
3359     verstring="$verstring:${iface}.0"
3360     done
3361    
3362     # Make executables depend on our current version.
3363     verstring="$verstring:${current}.0"
3364     ;;
3365    
3366     sunos)
3367     major=".$current"
3368     versuffix=".$current.$revision"
3369     ;;
3370    
3371     windows)
3372 nigel 53 # Use '-' rather than '.', since we only want one
3373     # extension on DOS 8.3 filesystems.
3374 nigel 41 major=`expr $current - $age`
3375 nigel 53 versuffix="-$major"
3376 nigel 41 ;;
3377    
3378     *)
3379     $echo "$modename: unknown library version type \`$version_type'" 1>&2
3380 nigel 75 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3381     exit $EXIT_FAILURE
3382 nigel 41 ;;
3383     esac
3384    
3385     # Clear the version info if we defaulted, and they specified a release.
3386     if test -z "$vinfo" && test -n "$release"; then
3387     major=
3388 nigel 63 case $version_type in
3389     darwin)
3390     # we can't check for "0.0" in archive_cmds due to quoting
3391     # problems, so we reset it completely
3392 nigel 75 verstring=
3393 nigel 63 ;;
3394     *)
3395     verstring="0.0"
3396     ;;
3397     esac
3398 nigel 41 if test "$need_version" = no; then
3399     versuffix=
3400     else
3401     versuffix=".0.0"
3402     fi
3403     fi
3404    
3405     # Remove version info from name if versioning should be avoided
3406     if test "$avoid_version" = yes && test "$need_version" = no; then
3407     major=
3408     versuffix=
3409     verstring=""
3410     fi
3411 nigel 53
3412 nigel 41 # Check to see if the archive will have undefined symbols.
3413     if test "$allow_undefined" = yes; then
3414     if test "$allow_undefined_flag" = unsupported; then
3415     $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3416     build_libtool_libs=no
3417     build_old_libs=yes
3418     fi
3419     else
3420     # Don't allow undefined symbols.
3421     allow_undefined_flag="$no_undefined_flag"
3422     fi
3423     fi
3424    
3425 nigel 53 if test "$mode" != relink; then
3426 nigel 75 # Remove our outputs, but don't remove object files since they
3427     # may have been created when compiling PIC objects.
3428     removelist=
3429     tempremovelist=`$echo "$output_objdir/*"`
3430     for p in $tempremovelist; do
3431     case $p in
3432     *.$objext)
3433     ;;
3434     $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3435     if test "X$precious_files_regex" != "X"; then
3436 nigel 83 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3437     then
3438 nigel 75 continue
3439     fi
3440     fi
3441     removelist="$removelist $p"
3442     ;;
3443     *) ;;
3444     esac
3445     done
3446     if test -n "$removelist"; then
3447     $show "${rm}r $removelist"
3448     $run ${rm}r $removelist
3449     fi
3450 nigel 41 fi
3451    
3452     # Now set the variables for building old libraries.
3453     if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3454     oldlibs="$oldlibs $output_objdir/$libname.$libext"
3455    
3456     # Transform .lo files to .o files.
3457     oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3458     fi
3459    
3460 nigel 53 # Eliminate all temporary directories.
3461     for path in $notinst_path; do
3462 nigel 87 lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3463     deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3464     dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3465 nigel 53 done
3466    
3467     if test -n "$xrpath"; then
3468     # If the user specified any rpath flags, then add them.
3469     temp_xrpath=
3470     for libdir in $xrpath; do
3471     temp_xrpath="$temp_xrpath -R$libdir"
3472     case "$finalize_rpath " in
3473     *" $libdir "*) ;;
3474     *) finalize_rpath="$finalize_rpath $libdir" ;;
3475     esac
3476     done
3477 nigel 75 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3478 nigel 53 dependency_libs="$temp_xrpath $dependency_libs"
3479     fi
3480     fi
3481    
3482     # Make sure dlfiles contains only unique files that won't be dlpreopened
3483     old_dlfiles="$dlfiles"
3484     dlfiles=
3485     for lib in $old_dlfiles; do
3486     case " $dlprefiles $dlfiles " in
3487     *" $lib "*) ;;
3488     *) dlfiles="$dlfiles $lib" ;;
3489     esac
3490     done
3491    
3492     # Make sure dlprefiles contains only unique files
3493     old_dlprefiles="$dlprefiles"
3494     dlprefiles=
3495     for lib in $old_dlprefiles; do
3496     case "$dlprefiles " in
3497     *" $lib "*) ;;
3498     *) dlprefiles="$dlprefiles $lib" ;;
3499     esac
3500     done
3501    
3502 nigel 41 if test "$build_libtool_libs" = yes; then
3503 nigel 53 if test -n "$rpath"; then
3504     case $host in
3505     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3506     # these systems don't actually have a c library (as such)!
3507     ;;
3508     *-*-rhapsody* | *-*-darwin1.[012])
3509     # Rhapsody C library is in the System framework
3510     deplibs="$deplibs -framework System"
3511     ;;
3512     *-*-netbsd*)
3513     # Don't link with libc until the a.out ld.so is fixed.
3514     ;;
3515 nigel 83 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3516 nigel 63 # Do not include libc due to us having libc/libc_r.
3517     ;;
3518 nigel 87 *-*-sco3.2v5* | *-*-sco5v6*)
3519     # Causes problems with __ctype
3520     ;;
3521     *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3522     # Compiler inserts libc in the correct place for threads to work
3523     ;;
3524 nigel 83 *)
3525 nigel 53 # Add libc to deplibs on all other systems if necessary.
3526 nigel 75 if test "$build_libtool_need_lc" = "yes"; then
3527 nigel 53 deplibs="$deplibs -lc"
3528     fi
3529     ;;
3530     esac
3531     fi
3532    
3533 nigel 41 # Transform deplibs into only deplibs that can be linked in shared.
3534     name_save=$name
3535     libname_save=$libname
3536     release_save=$release
3537     versuffix_save=$versuffix
3538     major_save=$major
3539     # I'm not sure if I'm treating the release correctly. I think
3540     # release should show up in the -l (ie -lgmp5) so we don't want to
3541     # add it in twice. Is that correct?
3542     release=""
3543     versuffix=""
3544     major=""
3545     newdeplibs=
3546     droppeddeps=no
3547 nigel 53 case $deplibs_check_method in
3548 nigel 41 pass_all)
3549     # Don't check for shared/static. Everything works.
3550     # This might be a little naive. We might want to check
3551 nigel 83 # whether the library exists or not. But this is on
3552 nigel 41 # osf3 & osf4 and I'm not really sure... Just
3553 nigel 75 # implementing what was already the behavior.
3554 nigel 41 newdeplibs=$deplibs
3555     ;;
3556     test_compile)
3557     # This code stresses the "libraries are programs" paradigm to its
3558     # limits. Maybe even breaks it. We compile a program, linking it
3559     # against the deplibs as a proxy for the library. Then we can check
3560     # whether they linked in statically or dynamically with ldd.
3561     $rm conftest.c
3562     cat > conftest.c <<EOF
3563     int main() { return 0; }
3564     EOF
3565     $rm conftest
3566 nigel 87 $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3567 nigel 75 if test "$?" -eq 0 ; then
3568 nigel 41 ldd_output=`ldd conftest`
3569     for i in $deplibs; do
3570 nigel 87 name=`expr $i : '-l\(.*\)'`
3571 nigel 41 # If $name is empty we are operating on a -L argument.
3572 nigel 75 if test "$name" != "" && test "$name" -ne "0"; then
3573     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3574     case " $predeps $postdeps " in
3575     *" $i "*)
3576     newdeplibs="$newdeplibs $i"
3577     i=""
3578     ;;
3579     esac
3580 nigel 83 fi
3581 nigel 75 if test -n "$i" ; then
3582     libname=`eval \\$echo \"$libname_spec\"`
3583     deplib_matches=`eval \\$echo \"$library_names_spec\"`
3584     set dummy $deplib_matches
3585     deplib_match=$2
3586     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3587     newdeplibs="$newdeplibs $i"
3588     else
3589     droppeddeps=yes
3590     $echo
3591     $echo "*** Warning: dynamic linker does not accept needed library $i."
3592     $echo "*** I have the capability to make that library automatically link in when"
3593     $echo "*** you link to this library. But I can only do this if you have a"
3594     $echo "*** shared version of the library, which I believe you do not have"
3595     $echo "*** because a test_compile did reveal that the linker did not use it for"
3596     $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3597     fi
3598     fi
3599 nigel 41 else
3600     newdeplibs="$newdeplibs $i"
3601     fi
3602     done
3603     else
3604 nigel 75 # Error occurred in the first compile. Let's try to salvage
3605 nigel 63 # the situation: Compile a separate program for each library.
3606 nigel 41 for i in $deplibs; do
3607 nigel 87 name=`expr $i : '-l\(.*\)'`
3608 nigel 75 # If $name is empty we are operating on a -L argument.
3609     if test "$name" != "" && test "$name" != "0"; then
3610 nigel 41 $rm conftest
3611 nigel 87 $LTCC $LTCFLAGS -o conftest conftest.c $i
3612 nigel 41 # Did it work?
3613 nigel 75 if test "$?" -eq 0 ; then
3614 nigel 41 ldd_output=`ldd conftest`
3615 nigel 75 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3616     case " $predeps $postdeps " in
3617     *" $i "*)
3618     newdeplibs="$newdeplibs $i"
3619     i=""
3620     ;;
3621     esac
3622 nigel 41 fi
3623 nigel 75 if test -n "$i" ; then
3624     libname=`eval \\$echo \"$libname_spec\"`
3625     deplib_matches=`eval \\$echo \"$library_names_spec\"`
3626     set dummy $deplib_matches
3627     deplib_match=$2
3628     if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3629     newdeplibs="$newdeplibs $i"
3630     else
3631     droppeddeps=yes
3632     $echo
3633     $echo "*** Warning: dynamic linker does not accept needed library $i."
3634     $echo "*** I have the capability to make that library automatically link in when"
3635     $echo "*** you link to this library. But I can only do this if you have a"
3636     $echo "*** shared version of the library, which you do not appear to have"
3637     $echo "*** because a test_compile did reveal that the linker did not use this one"
3638     $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3639     fi
3640     fi
3641 nigel 41 else
3642     droppeddeps=yes
3643 nigel 75 $echo
3644     $echo "*** Warning! Library $i is needed by this library but I was not able to"
3645 nigel 83 $echo "*** make it link in! You will probably need to install it or some"
3646 nigel 75 $echo "*** library that it depends on before this library will be fully"
3647     $echo "*** functional. Installing it before continuing would be even better."
3648 nigel 41 fi
3649     else
3650     newdeplibs="$newdeplibs $i"
3651     fi
3652     done
3653     fi
3654     ;;
3655     file_magic*)
3656     set dummy $deplibs_check_method
3657 nigel 53 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3658 nigel 41 for a_deplib in $deplibs; do
3659 nigel 87 name=`expr $a_deplib : '-l\(.*\)'`
3660 nigel 41 # If $name is empty we are operating on a -L argument.
3661 nigel 75 if test "$name" != "" && test "$name" != "0"; then
3662     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3663     case " $predeps $postdeps " in
3664     *" $a_deplib "*)
3665     newdeplibs="$newdeplibs $a_deplib"
3666     a_deplib=""
3667     ;;
3668     esac
3669     fi
3670     if test -n "$a_deplib" ; then
3671     libname=`eval \\$echo \"$libname_spec\"`
3672     for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3673     potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3674     for potent_lib in $potential_libs; do
3675 nigel 41 # Follow soft links.
3676     if ls -lLd "$potent_lib" 2>/dev/null \
3677     | grep " -> " >/dev/null; then
3678 nigel 53 continue
3679 nigel 41 fi
3680     # The statement above tries to avoid entering an
3681     # endless loop below, in case of cyclic links.
3682     # We might still enter an endless loop, since a link
3683     # loop can be closed while we follow links,
3684     # but so what?
3685     potlib="$potent_lib"
3686     while test -h "$potlib" 2>/dev/null; do
3687 nigel 63 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3688 nigel 53 case $potliblink in
3689 nigel 41 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3690     *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3691     esac
3692     done
3693 nigel 83 # It is ok to link against an archive when
3694     # building a shared library.
3695     if $AR -t $potlib > /dev/null 2>&1; then
3696     newdeplibs="$newdeplibs $a_deplib"
3697     a_deplib=""
3698     break 2
3699     fi
3700 nigel 41 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3701 nigel 63 | ${SED} 10q \
3702 nigel 75 | $EGREP "$file_magic_regex" > /dev/null; then
3703 nigel 41 newdeplibs="$newdeplibs $a_deplib"
3704     a_deplib=""
3705     break 2
3706     fi
3707 nigel 75 done
3708     done
3709     fi
3710 nigel 41 if test -n "$a_deplib" ; then
3711     droppeddeps=yes
3712 nigel 75 $echo
3713     $echo "*** Warning: linker path does not have real file for library $a_deplib."
3714     $echo "*** I have the capability to make that library automatically link in when"
3715     $echo "*** you link to this library. But I can only do this if you have a"
3716     $echo "*** shared version of the library, which you do not appear to have"
3717     $echo "*** because I did check the linker path looking for a file starting"
3718 nigel 63 if test -z "$potlib" ; then
3719 nigel 75 $echo "*** with $libname but no candidates were found. (...for file magic test)"
3720 nigel 63 else
3721 nigel 75 $echo "*** with $libname and none of the candidates passed a file format test"
3722     $echo "*** using a file magic. Last file checked: $potlib"
3723 nigel 63 fi
3724 nigel 41 fi
3725     else
3726     # Add a -L argument.
3727     newdeplibs="$newdeplibs $a_deplib"
3728     fi
3729     done # Gone through all deplibs.
3730     ;;
3731 nigel 53 match_pattern*)
3732     set dummy $deplibs_check_method
3733     match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3734     for a_deplib in $deplibs; do
3735 nigel 87 name=`expr $a_deplib : '-l\(.*\)'`
3736 nigel 53 # If $name is empty we are operating on a -L argument.
3737     if test -n "$name" && test "$name" != "0"; then
3738 nigel 75 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3739     case " $predeps $postdeps " in
3740     *" $a_deplib "*)
3741     newdeplibs="$newdeplibs $a_deplib"
3742     a_deplib=""
3743     ;;
3744     esac
3745     fi
3746     if test -n "$a_deplib" ; then
3747     libname=`eval \\$echo \"$libname_spec\"`
3748     for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3749     potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3750     for potent_lib in $potential_libs; do
3751     potlib="$potent_lib" # see symlink-check above in file_magic test
3752     if eval $echo \"$potent_lib\" 2>/dev/null \
3753 nigel 83 | ${SED} 10q \
3754     | $EGREP "$match_pattern_regex" > /dev/null; then
3755 nigel 75 newdeplibs="$newdeplibs $a_deplib"
3756     a_deplib=""
3757     break 2
3758     fi
3759     done
3760 nigel 53 done
3761 nigel 75 fi
3762 nigel 53 if test -n "$a_deplib" ; then
3763     droppeddeps=yes
3764 nigel 75 $echo
3765     $echo "*** Warning: linker path does not have real file for library $a_deplib."
3766     $echo "*** I have the capability to make that library automatically link in when"
3767     $echo "*** you link to this library. But I can only do this if you have a"
3768     $echo "*** shared version of the library, which you do not appear to have"
3769     $echo "*** because I did check the linker path looking for a file starting"
3770 nigel 63 if test -z "$potlib" ; then
3771 nigel 75 $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3772 nigel 63 else
3773 nigel 75 $echo "*** with $libname and none of the candidates passed a file format test"
3774     $echo "*** using a regex pattern. Last file checked: $potlib"
3775 nigel 63 fi
3776 nigel 53 fi
3777     else
3778     # Add a -L argument.
3779     newdeplibs="$newdeplibs $a_deplib"
3780     fi
3781     done # Gone through all deplibs.
3782     ;;
3783 nigel 41 none | unknown | *)
3784     newdeplibs=""
3785 nigel 75 tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3786     -e 's/ -[LR][^ ]*//g'`
3787     if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3788     for i in $predeps $postdeps ; do
3789     # can't use Xsed below, because $i might contain '/'
3790     tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3791     done
3792     fi
3793 nigel 83 if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
3794 nigel 75 | grep . >/dev/null; then
3795     $echo
3796 nigel 41 if test "X$deplibs_check_method" = "Xnone"; then
3797 nigel 75 $echo "*** Warning: inter-library dependencies are not supported in this platform."
3798 nigel 41 else
3799 nigel 75 $echo "*** Warning: inter-library dependencies are not known to be supported."
3800 nigel 41 fi
3801 nigel 75 $echo "*** All declared inter-library dependencies are being dropped."
3802 nigel 41 droppeddeps=yes
3803     fi
3804     ;;
3805     esac
3806     versuffix=$versuffix_save
3807     major=$major_save
3808     release=$release_save
3809     libname=$libname_save
3810     name=$name_save
3811    
3812 nigel 53 case $host in
3813     *-*-rhapsody* | *-*-darwin1.[012])
3814     # On Rhapsody replace the C library is the System framework
3815     newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3816     ;;
3817     esac
3818    
3819 nigel 41 if test "$droppeddeps" = yes; then
3820     if test "$module" = yes; then
3821 nigel 75 $echo
3822     $echo "*** Warning: libtool could not satisfy all declared inter-library"
3823     $echo "*** dependencies of module $libname. Therefore, libtool will create"
3824     $echo "*** a static module, that should work as long as the dlopening"
3825     $echo "*** application is linked with the -dlopen flag."
3826 nigel 41 if test -z "$global_symbol_pipe"; then
3827 nigel 75 $echo
3828     $echo "*** However, this would only work if libtool was able to extract symbol"
3829     $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3830     $echo "*** not find such a program. So, this module is probably useless."
3831     $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3832 nigel 41 fi
3833     if test "$build_old_libs" = no; then
3834     oldlibs="$output_objdir/$libname.$libext"
3835     build_libtool_libs=module
3836     build_old_libs=yes
3837     else
3838     build_libtool_libs=no
3839     fi
3840     else
3841 nigel 75 $echo "*** The inter-library dependencies that have been dropped here will be"
3842     $echo "*** automatically added whenever a program is linked with this library"
3843     $echo "*** or is declared to -dlopen it."
3844 nigel 53
3845 nigel 75 if test "$allow_undefined" = no; then
3846     $echo
3847     $echo "*** Since this library must not contain undefined symbols,"
3848     $echo "*** because either the platform does not support them or"
3849     $echo "*** it was explicitly requested with -no-undefined,"
3850     $echo "*** libtool will only create a static version of it."
3851 nigel 53 if test "$build_old_libs" = no; then
3852     oldlibs="$output_objdir/$libname.$libext"
3853     build_libtool_libs=module
3854     build_old_libs=yes
3855     else
3856     build_libtool_libs=no
3857     fi
3858     fi
3859 nigel 41 fi
3860     fi
3861     # Done checking deplibs!
3862     deplibs=$newdeplibs
3863     fi
3864    
3865 nigel 87
3866     # move library search paths that coincide with paths to not yet
3867     # installed libraries to the beginning of the library search list
3868     new_libs=
3869     for path in $notinst_path; do
3870     case " $new_libs " in
3871     *" -L$path/$objdir "*) ;;
3872     *)
3873     case " $deplibs " in
3874     *" -L$path/$objdir "*)
3875     new_libs="$new_libs -L$path/$objdir" ;;
3876     esac
3877     ;;
3878     esac
3879     done
3880     for deplib in $deplibs; do
3881     case $deplib in
3882     -L*)
3883     case " $new_libs " in
3884     *" $deplib "*) ;;
3885     *) new_libs="$new_libs $deplib" ;;
3886     esac
3887     ;;
3888     *) new_libs="$new_libs $deplib" ;;
3889     esac
3890     done
3891     deplibs="$new_libs"
3892    
3893    
3894 nigel 41 # All the library-specific variables (install_libdir is set above).
3895     library_names=
3896     old_library=
3897     dlname=
3898 nigel 53
3899 nigel 41 # Test again, we may have decided not to build it any more
3900     if test "$build_libtool_libs" = yes; then
3901 nigel 75 if test "$hardcode_into_libs" = yes; then
3902 nigel 53 # Hardcode the library paths
3903     hardcode_libdirs=
3904     dep_rpath=
3905     rpath="$finalize_rpath"
3906     test "$mode" != relink && rpath="$compile_rpath$rpath"
3907     for libdir in $rpath; do
3908     if test -n "$hardcode_libdir_flag_spec"; then
3909     if test -n "$hardcode_libdir_separator"; then
3910     if test -z "$hardcode_libdirs"; then
3911     hardcode_libdirs="$libdir"
3912     else
3913     # Just accumulate the unique libdirs.
3914     case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3915     *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3916     ;;
3917     *)
3918     hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3919     ;;
3920     esac
3921     fi
3922     else
3923     eval flag=\"$hardcode_libdir_flag_spec\"
3924     dep_rpath="$dep_rpath $flag"
3925     fi
3926     elif test -n "$runpath_var"; then
3927     case "$perm_rpath " in
3928     *" $libdir "*) ;;
3929     *) perm_rpath="$perm_rpath $libdir" ;;
3930     esac
3931     fi
3932     done
3933     # Substitute the hardcoded libdirs into the rpath.
3934     if test -n "$hardcode_libdir_separator" &&
3935     test -n "$hardcode_libdirs"; then
3936     libdir="$hardcode_libdirs"
3937 nigel 75 if test -n "$hardcode_libdir_flag_spec_ld"; then
3938     eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3939     else
3940     eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3941     fi
3942 nigel 53 fi
3943     if test -n "$runpath_var" && test -n "$perm_rpath"; then
3944     # We should set the runpath_var.
3945     rpath=
3946     for dir in $perm_rpath; do
3947     rpath="$rpath$dir:"
3948     done
3949     eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3950     fi
3951     test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3952     fi
3953    
3954     shlibpath="$finalize_shlibpath"
3955     test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3956     if test -n "$shlibpath"; then
3957     eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3958     fi
3959    
3960 nigel 41 # Get the real and link names of the library.
3961 nigel 75 eval shared_ext=\"$shrext_cmds\"
3962 nigel 41 eval library_names=\"$library_names_spec\"
3963     set dummy $library_names
3964     realname="$2"
3965     shift; shift
3966    
3967     if test -n "$soname_spec"; then
3968     eval soname=\"$soname_spec\"
3969     else
3970     soname="$realname"
3971     fi
3972 nigel 75 if test -z "$dlname"; then
3973     dlname=$soname
3974     fi
3975 nigel 41
3976     lib="$output_objdir/$realname"
3977 nigel 87 linknames=
3978 nigel 41 for link
3979     do