comparison spandsp-0.0.3/spandsp-0.0.3/libtool @ 5:f762bf195c4b

import spandsp-0.0.3
author Peter Meerwald <pmeerw@cosy.sbg.ac.at>
date Fri, 25 Jun 2010 16:00:21 +0200
parents
children
comparison
equal deleted inserted replaced
4:26cd8f1ef0b1 5:f762bf195c4b
1 #! /bin/sh
2
3 # libtoolT - Provide generalized library-building support services.
4 # Generated automatically by (GNU spandsp 0.0.3)
5 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
6 #
7 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
8 # Free Software Foundation, Inc.
9 #
10 # This file is part of GNU Libtool:
11 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
12 #
13 # This program is free software; you can redistribute it and/or modify
14 # it under the terms of the GNU General Public License as published by
15 # the Free Software Foundation; either version 2 of the License, or
16 # (at your option) any later version.
17 #
18 # This program is distributed in the hope that it will be useful, but
19 # WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 # General Public License for more details.
22 #
23 # You should have received a copy of the GNU General Public License
24 # along with this program; if not, write to the Free Software
25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 #
27 # As a special exception to the GNU General Public License, if you
28 # distribute this file as part of a program that contains a
29 # configuration script generated by Autoconf, you may include it under
30 # the same distribution terms that you use for the rest of that program.
31
32 # A sed program that does not truncate output.
33 SED="/bin/sed"
34
35 # Sed that helps us avoid accidentally triggering echo(1) options like -n.
36 Xsed="/bin/sed -e 1s/^X//"
37
38 # The HP-UX ksh and POSIX shell print the target directory to stdout
39 # if CDPATH is set.
40 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
41
42 # The names of the tagged configurations supported by this script.
43 available_tags=" CXX"
44
45 # ### BEGIN LIBTOOL CONFIG
46
47 # Libtool was configured on host bunny:
48
49 # Shell to use when invoking shell scripts.
50 SHELL="/bin/sh"
51
52 # Whether or not to build shared libraries.
53 build_libtool_libs=yes
54
55 # Whether or not to build static libraries.
56 build_old_libs=yes
57
58 # Whether or not to add -lc for building shared libraries.
59 build_libtool_need_lc=no
60
61 # Whether or not to disallow shared libs when runtime libs are static
62 allow_libtool_libs_with_static_runtimes=no
63
64 # Whether or not to optimize for fast installation.
65 fast_install=yes
66
67 # The host system.
68 host_alias=
69 host=i686-pc-linux-gnu
70 host_os=linux-gnu
71
72 # The build system.
73 build_alias=
74 build=i686-pc-linux-gnu
75 build_os=linux-gnu
76
77 # An echo program that does not interpret backslashes.
78 echo="echo"
79
80 # The archiver.
81 AR="ar"
82 AR_FLAGS="cru"
83
84 # A C compiler.
85 LTCC="gcc"
86
87 # A language-specific compiler.
88 CC="gcc"
89
90 # Is the compiler the GNU C compiler?
91 with_gcc=yes
92
93 # An ERE matcher.
94 EGREP="grep -E"
95
96 # The linker used to build libraries.
97 LD="/usr/bin/ld"
98
99 # Whether we need hard or soft links.
100 LN_S="ln -s"
101
102 # A BSD-compatible nm program.
103 NM="/usr/bin/nm -B"
104
105 # A symbol stripping program
106 STRIP="strip"
107
108 # Used to examine libraries when file_magic_cmd begins "file"
109 MAGIC_CMD=file
110
111 # Used on cygwin: DLL creation program.
112 DLLTOOL="dlltool"
113
114 # Used on cygwin: object dumper.
115 OBJDUMP="objdump"
116
117 # Used on cygwin: assembler.
118 AS="as"
119
120 # The name of the directory that contains temporary libtool files.
121 objdir=.libs
122
123 # How to create reloadable object files.
124 reload_flag=" -r"
125 reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
126
127 # How to pass a linker flag through the compiler.
128 wl="-Wl,"
129
130 # Object file suffix (normally "o").
131 objext="o"
132
133 # Old archive suffix (normally "a").
134 libext="a"
135
136 # Shared library suffix (normally ".so").
137 shrext_cmds='.so'
138
139 # Executable file suffix (normally "").
140 exeext=""
141
142 # Additional compiler flags for building library objects.
143 pic_flag=" -fPIC -DPIC"
144 pic_mode=default
145
146 # What is the maximum length of a command?
147 max_cmd_len=32768
148
149 # Does compiler simultaneously support -c and -o options?
150 compiler_c_o="yes"
151
152 # Must we lock files when doing compilation?
153 need_locks="no"
154
155 # Do we need the lib prefix for modules?
156 need_lib_prefix=no
157
158 # Do we need a version for libraries?
159 need_version=no
160
161 # Whether dlopen is supported.
162 dlopen_support=unknown
163
164 # Whether dlopen of programs is supported.
165 dlopen_self=unknown
166
167 # Whether dlopen of statically linked programs is supported.
168 dlopen_self_static=unknown
169
170 # Compiler flag to prevent dynamic linking.
171 link_static_flag="-static"
172
173 # Compiler flag to turn off builtin functions.
174 no_builtin_flag=" -fno-builtin"
175
176 # Compiler flag to allow reflexive dlopens.
177 export_dynamic_flag_spec="\${wl}--export-dynamic"
178
179 # Compiler flag to generate shared objects directly from archives.
180 whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
181
182 # Compiler flag to generate thread-safe objects.
183 thread_safe_flag_spec=""
184
185 # Library versioning type.
186 version_type=linux
187
188 # Format of library name prefix.
189 libname_spec="lib\$name"
190
191 # List of archive names. First name is the real one, the rest are links.
192 # The last name is the one that the linker finds with -lNAME.
193 library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
194
195 # The coded name of the library, if different from the real name.
196 soname_spec="\${libname}\${release}\${shared_ext}\$major"
197
198 # Commands used to build and install an old-style archive.
199 RANLIB="ranlib"
200 old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
201 old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
202 old_postuninstall_cmds=""
203
204 # Create an old-style archive from a shared archive.
205 old_archive_from_new_cmds=""
206
207 # Create a temporary old-style archive to link instead of a shared archive.
208 old_archive_from_expsyms_cmds=""
209
210 # Commands used to build and install a shared archive.
211 archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
212 archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
213 cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
214 \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
215 \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
216 postinstall_cmds=""
217 postuninstall_cmds=""
218
219 # Commands used to build a loadable module (assumed same as above if empty)
220 module_cmds=""
221 module_expsym_cmds=""
222
223 # Commands to strip libraries.
224 old_striplib="strip --strip-debug"
225 striplib="strip --strip-unneeded"
226
227 # Dependencies to place before the objects being linked to create a
228 # shared library.
229 predep_objects=""
230
231 # Dependencies to place after the objects being linked to create a
232 # shared library.
233 postdep_objects=""
234
235 # Dependencies to place before the objects being linked to create a
236 # shared library.
237 predeps=""
238
239 # Dependencies to place after the objects being linked to create a
240 # shared library.
241 postdeps=""
242
243 # The library search path used internally by the compiler when linking
244 # a shared library.
245 compiler_lib_search_path=""
246
247 # Method to check whether dependent libraries are shared objects.
248 deplibs_check_method="pass_all"
249
250 # Command to use when deplibs_check_method == file_magic.
251 file_magic_cmd="\$MAGIC_CMD"
252
253 # Flag that allows shared libraries with undefined symbols to be built.
254 allow_undefined_flag=""
255
256 # Flag that forces no undefined symbols.
257 no_undefined_flag=""
258
259 # Commands used to finish a libtool library installation in a directory.
260 finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
261
262 # Same as above, but a single script fragment to be evaled but not shown.
263 finish_eval=""
264
265 # Take the output of nm and produce a listing of raw symbols and C names.
266 global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
267
268 # Transform the output of nm in a proper C declaration
269 global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
270
271 # Transform the output of nm in a C name address pair
272 global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (lt_ptr) \\&\\2},/p'"
273
274 # This is the shared library runtime path variable.
275 runpath_var=LD_RUN_PATH
276
277 # This is the shared library path variable.
278 shlibpath_var=LD_LIBRARY_PATH
279
280 # Is shlibpath searched before the hard-coded library search path?
281 shlibpath_overrides_runpath=no
282
283 # How to hardcode a shared library path into an executable.
284 hardcode_action=immediate
285
286 # Whether we should hardcode library paths into libraries.
287 hardcode_into_libs=yes
288
289 # Flag to hardcode $libdir into a binary during linking.
290 # This must work even if $libdir does not exist.
291 hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
292
293 # If ld is used when linking, flag to hardcode $libdir into
294 # a binary during linking. This must work even if $libdir does
295 # not exist.
296 hardcode_libdir_flag_spec_ld=""
297
298 # Whether we need a single -rpath flag with a separated argument.
299 hardcode_libdir_separator=""
300
301 # Set to yes if using DIR/libNAME during linking hardcodes DIR into the
302 # resulting binary.
303 hardcode_direct=no
304
305 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the
306 # resulting binary.
307 hardcode_minus_L=no
308
309 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
310 # the resulting binary.
311 hardcode_shlibpath_var=unsupported
312
313 # Set to yes if building a shared library automatically hardcodes DIR into the library
314 # and all subsequent libraries and executables linked against it.
315 hardcode_automatic=no
316
317 # Variables whose values should be saved in libtool wrapper scripts and
318 # restored at relink time.
319 variables_saved_for_relink="PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
320
321 # Whether libtool must link a program against all its dependency libraries.
322 link_all_deplibs=unknown
323
324 # Compile-time system search path for libraries
325 sys_lib_search_path_spec=" /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../ /lib/i486-linux-gnu/4.0.3/ /lib/ /usr/lib/i486-linux-gnu/4.0.3/ /usr/lib/"
326
327 # Run-time system search path for libraries
328 sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas "
329
330 # Fix the shell variable $srcfile for the compiler.
331 fix_srcfile_path=""
332
333 # Set to yes if exported symbols are required.
334 always_export_symbols=no
335
336 # The commands to list exported symbols.
337 export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
338
339 # The commands to extract the exported symbol list from a shared archive.
340 extract_expsyms_cmds=""
341
342 # Symbols that should not be listed in the preloaded symbols.
343 exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
344
345 # Symbols that must always be exported.
346 include_expsyms=""
347
348 # ### END LIBTOOL CONFIG
349
350 # ltmain.sh - Provide generalized library-building support services.
351 # NOTE: Changing this file will not affect anything until you rerun configure.
352 #
353 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
354 # Free Software Foundation, Inc.
355 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
356 #
357 # This program is free software; you can redistribute it and/or modify
358 # it under the terms of the GNU General Public License as published by
359 # the Free Software Foundation; either version 2 of the License, or
360 # (at your option) any later version.
361 #
362 # This program is distributed in the hope that it will be useful, but
363 # WITHOUT ANY WARRANTY; without even the implied warranty of
364 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
365 # General Public License for more details.
366 #
367 # You should have received a copy of the GNU General Public License
368 # along with this program; if not, write to the Free Software
369 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
370 #
371 # As a special exception to the GNU General Public License, if you
372 # distribute this file as part of a program that contains a
373 # configuration script generated by Autoconf, you may include it under
374 # the same distribution terms that you use for the rest of that program.
375
376 basename="s,^.*/,,g"
377
378 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
379 # is ksh but when the shell is invoked as "sh" and the current value of
380 # the _XPG environment variable is not equal to 1 (one), the special
381 # positional parameter $0, within a function call, is the name of the
382 # function.
383 progpath="$0"
384
385 # The name of this program:
386 progname=`echo "$progpath" | $SED $basename`
387 modename="$progname"
388
389 # Global variables:
390 EXIT_SUCCESS=0
391 EXIT_FAILURE=1
392
393 PROGRAM=ltmain.sh
394 PACKAGE=libtool
395 VERSION=1.5.16
396 TIMESTAMP=" (1.1220.2.235 2005/04/25 18:13:26)"
397
398 # See if we are running on zsh, and set the options which allow our
399 # commands through without removal of \ escapes.
400 if test -n "${ZSH_VERSION+set}" ; then
401 setopt NO_GLOB_SUBST
402 fi
403
404 # Check that we have a working $echo.
405 if test "X$1" = X--no-reexec; then
406 # Discard the --no-reexec flag, and continue.
407 shift
408 elif test "X$1" = X--fallback-echo; then
409 # Avoid inline document here, it may be left over
410 :
411 elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
412 # Yippee, $echo works!
413 :
414 else
415 # Restart under the correct shell, and then maybe $echo will work.
416 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
417 fi
418
419 if test "X$1" = X--fallback-echo; then
420 # used as fallback echo
421 shift
422 cat <<EOF
423 $*
424 EOF
425 exit $EXIT_SUCCESS
426 fi
427
428 default_mode=
429 help="Try \`$progname --help' for more information."
430 magic="%%%MAGIC variable%%%"
431 mkdir="mkdir"
432 mv="mv -f"
433 rm="rm -f"
434
435 # Sed substitution that helps us do robust quoting. It backslashifies
436 # metacharacters that are still active within double-quoted strings.
437 Xsed="${SED}"' -e 1s/^X//'
438 sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
439 # test EBCDIC or ASCII
440 case `echo A|tr A '\301'` in
441 A) # EBCDIC based system
442 SP2NL="tr '\100' '\n'"
443 NL2SP="tr '\r\n' '\100\100'"
444 ;;
445 *) # Assume ASCII based system
446 SP2NL="tr '\040' '\012'"
447 NL2SP="tr '\015\012' '\040\040'"
448 ;;
449 esac
450
451 # NLS nuisances.
452 # Only set LANG and LC_ALL to C if already set.
453 # These must not be set unconditionally because not all systems understand
454 # e.g. LANG=C (notably SCO).
455 # We save the old values to restore during execute mode.
456 if test "${LC_ALL+set}" = set; then
457 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
458 fi
459 if test "${LANG+set}" = set; then
460 save_LANG="$LANG"; LANG=C; export LANG
461 fi
462
463 # Make sure IFS has a sensible default
464 lt_nl='
465 '
466 IFS=" $lt_nl"
467
468 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
469 $echo "$modename: not configured to build any kind of library" 1>&2
470 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
471 exit $EXIT_FAILURE
472 fi
473
474 # Global variables.
475 mode=$default_mode
476 nonopt=
477 prev=
478 prevopt=
479 run=
480 show="$echo"
481 show_help=
482 execute_dlfiles=
483 lo2o="s/\\.lo\$/.${objext}/"
484 o2lo="s/\\.${objext}\$/.lo/"
485 quote_scanset='[[~#^*{};<>?'"'"' ]'
486
487 #####################################
488 # Shell function definitions:
489 # This seems to be the best place for them
490
491 # func_win32_libid arg
492 # return the library type of file 'arg'
493 #
494 # Need a lot of goo to handle *both* DLLs and import libs
495 # Has to be a shell function in order to 'eat' the argument
496 # that is supplied when $file_magic_command is called.
497 func_win32_libid ()
498 {
499 win32_libid_type="unknown"
500 win32_fileres=`file -L $1 2>/dev/null`
501 case $win32_fileres in
502 *ar\ archive\ import\ library*) # definitely import
503 win32_libid_type="x86 archive import"
504 ;;
505 *ar\ archive*) # could be an import, or static
506 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
507 $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
508 win32_nmres=`eval $NM -f posix -A $1 | \
509 sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
510 if test "X$win32_nmres" = "Ximport" ; then
511 win32_libid_type="x86 archive import"
512 else
513 win32_libid_type="x86 archive static"
514 fi
515 fi
516 ;;
517 *DLL*)
518 win32_libid_type="x86 DLL"
519 ;;
520 *executable*) # but shell scripts are "executable" too...
521 case $win32_fileres in
522 *MS\ Windows\ PE\ Intel*)
523 win32_libid_type="x86 DLL"
524 ;;
525 esac
526 ;;
527 esac
528 $echo $win32_libid_type
529 }
530
531
532 # func_infer_tag arg
533 # Infer tagged configuration to use if any are available and
534 # if one wasn't chosen via the "--tag" command line option.
535 # Only attempt this if the compiler in the base compile
536 # command doesn't match the default compiler.
537 # arg is usually of the form 'gcc ...'
538 func_infer_tag ()
539 {
540 if test -n "$available_tags" && test -z "$tagname"; then
541 CC_quoted=
542 for arg in $CC; do
543 case $arg in
544 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
545 arg="\"$arg\""
546 ;;
547 esac
548 CC_quoted="$CC_quoted $arg"
549 done
550 case $@ in
551 # Blanks in the command may have been stripped by the calling shell,
552 # but not from the CC environment variable when configure was run.
553 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
554 # Blanks at the start of $base_compile will cause this to fail
555 # if we don't check for them as well.
556 *)
557 for z in $available_tags; do
558 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
559 # Evaluate the configuration.
560 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
561 CC_quoted=
562 for arg in $CC; do
563 # Double-quote args containing other shell metacharacters.
564 case $arg in
565 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
566 arg="\"$arg\""
567 ;;
568 esac
569 CC_quoted="$CC_quoted $arg"
570 done
571 case "$@ " in
572 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
573 # The compiler in the base compile command matches
574 # the one in the tagged configuration.
575 # Assume this is the tagged configuration we want.
576 tagname=$z
577 break
578 ;;
579 esac
580 fi
581 done
582 # If $tagname still isn't set, then no tagged configuration
583 # was found and let the user know that the "--tag" command
584 # line option must be used.
585 if test -z "$tagname"; then
586 $echo "$modename: unable to infer tagged configuration"
587 $echo "$modename: specify a tag with \`--tag'" 1>&2
588 exit $EXIT_FAILURE
589 # else
590 # $echo "$modename: using $tagname tagged configuration"
591 fi
592 ;;
593 esac
594 fi
595 }
596
597
598 # func_extract_an_archive dir oldlib
599 func_extract_an_archive ()
600 {
601 f_ex_an_ar_dir="$1"; shift
602 f_ex_an_ar_oldlib="$1"
603
604 $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
605 $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
606 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
607 :
608 else
609 $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
610 exit $EXIT_FAILURE
611 fi
612 }
613
614 # func_extract_archives gentop oldlib ...
615 func_extract_archives ()
616 {
617 my_gentop="$1"; shift
618 my_oldlibs=${1+"$@"}
619 my_oldobjs=""
620 my_xlib=""
621 my_xabs=""
622 my_xdir=""
623 my_status=""
624
625 $show "${rm}r $my_gentop"
626 $run ${rm}r "$my_gentop"
627 $show "$mkdir $my_gentop"
628 $run $mkdir "$my_gentop"
629 my_status=$?
630 if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
631 exit $my_status
632 fi
633
634 for my_xlib in $my_oldlibs; do
635 # Extract the objects.
636 case $my_xlib in
637 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
638 *) my_xabs=`pwd`"/$my_xlib" ;;
639 esac
640 my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
641 my_xdir="$my_gentop/$my_xlib"
642
643 $show "${rm}r $my_xdir"
644 $run ${rm}r "$my_xdir"
645 $show "$mkdir $my_xdir"
646 $run $mkdir "$my_xdir"
647 status=$?
648 if test "$status" -ne 0 && test ! -d "$my_xdir"; then
649 exit $status
650 fi
651 case $host in
652 *-darwin*)
653 $show "Extracting $my_xabs"
654 # Do not bother doing anything if just a dry run
655 if test -z "$run"; then
656 darwin_orig_dir=`pwd`
657 cd $my_xdir || exit $?
658 darwin_archive=$my_xabs
659 darwin_curdir=`pwd`
660 darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
661 darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
662 if test -n "$darwin_arches"; then
663 darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
664 darwin_arch=
665 $show "$darwin_base_archive has multiple architectures $darwin_arches"
666 for darwin_arch in $darwin_arches ; do
667 mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
668 lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
669 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
670 func_extract_an_archive "`pwd`" "${darwin_base_archive}"
671 cd "$darwin_curdir"
672 $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
673 done # $darwin_arches
674 ## Okay now we have a bunch of thin objects, gotta fatten them up :)
675 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
676 darwin_file=
677 darwin_files=
678 for darwin_file in $darwin_filelist; do
679 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
680 lipo -create -output "$darwin_file" $darwin_files
681 done # $darwin_filelist
682 ${rm}r unfat-$$
683 cd "$darwin_orig_dir"
684 else
685 cd "$darwin_orig_dir"
686 func_extract_an_archive "$my_xdir" "$my_xabs"
687 fi # $darwin_arches
688 fi # $run
689 ;;
690 *)
691 func_extract_an_archive "$my_xdir" "$my_xabs"
692 ;;
693 esac
694 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
695 done
696 func_extract_archives_result="$my_oldobjs"
697 }
698 # End of Shell function definitions
699 #####################################
700
701 # Darwin sucks
702 eval std_shrext=\"$shrext_cmds\"
703
704 # Parse our command line options once, thoroughly.
705 while test "$#" -gt 0
706 do
707 arg="$1"
708 shift
709
710 case $arg in
711 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
712 *) optarg= ;;
713 esac
714
715 # If the previous option needs an argument, assign it.
716 if test -n "$prev"; then
717 case $prev in
718 execute_dlfiles)
719 execute_dlfiles="$execute_dlfiles $arg"
720 ;;
721 tag)
722 tagname="$arg"
723 preserve_args="${preserve_args}=$arg"
724
725 # Check whether tagname contains only valid characters
726 case $tagname in
727 *[!-_A-Za-z0-9,/]*)
728 $echo "$progname: invalid tag name: $tagname" 1>&2
729 exit $EXIT_FAILURE
730 ;;
731 esac
732
733 case $tagname in
734 CC)
735 # Don't test for the "default" C tag, as we know, it's there, but
736 # not specially marked.
737 ;;
738 *)
739 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
740 taglist="$taglist $tagname"
741 # Evaluate the configuration.
742 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
743 else
744 $echo "$progname: ignoring unknown tag $tagname" 1>&2
745 fi
746 ;;
747 esac
748 ;;
749 *)
750 eval "$prev=\$arg"
751 ;;
752 esac
753
754 prev=
755 prevopt=
756 continue
757 fi
758
759 # Have we seen a non-optional argument yet?
760 case $arg in
761 --help)
762 show_help=yes
763 ;;
764
765 --version)
766 $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
767 $echo
768 $echo "Copyright (C) 2005 Free Software Foundation, Inc."
769 $echo "This is free software; see the source for copying conditions. There is NO"
770 $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
771 exit $?
772 ;;
773
774 --config)
775 ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
776 # Now print the configurations for the tags.
777 for tagname in $taglist; do
778 ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
779 done
780 exit $?
781 ;;
782
783 --debug)
784 $echo "$progname: enabling shell trace mode"
785 set -x
786 preserve_args="$preserve_args $arg"
787 ;;
788
789 --dry-run | -n)
790 run=:
791 ;;
792
793 --features)
794 $echo "host: $host"
795 if test "$build_libtool_libs" = yes; then
796 $echo "enable shared libraries"
797 else
798 $echo "disable shared libraries"
799 fi
800 if test "$build_old_libs" = yes; then
801 $echo "enable static libraries"
802 else
803 $echo "disable static libraries"
804 fi
805 exit $?
806 ;;
807
808 --finish) mode="finish" ;;
809
810 --mode) prevopt="--mode" prev=mode ;;
811 --mode=*) mode="$optarg" ;;
812
813 --preserve-dup-deps) duplicate_deps="yes" ;;
814
815 --quiet | --silent)
816 show=:
817 preserve_args="$preserve_args $arg"
818 ;;
819
820 --tag) prevopt="--tag" prev=tag ;;
821 --tag=*)
822 set tag "$optarg" ${1+"$@"}
823 shift
824 prev=tag
825 preserve_args="$preserve_args --tag"
826 ;;
827
828 -dlopen)
829 prevopt="-dlopen"
830 prev=execute_dlfiles
831 ;;
832
833 -*)
834 $echo "$modename: unrecognized option \`$arg'" 1>&2
835 $echo "$help" 1>&2
836 exit $EXIT_FAILURE
837 ;;
838
839 *)
840 nonopt="$arg"
841 break
842 ;;
843 esac
844 done
845
846 if test -n "$prevopt"; then
847 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
848 $echo "$help" 1>&2
849 exit $EXIT_FAILURE
850 fi
851
852 # If this variable is set in any of the actions, the command in it
853 # will be execed at the end. This prevents here-documents from being
854 # left over by shells.
855 exec_cmd=
856
857 if test -z "$show_help"; then
858
859 # Infer the operation mode.
860 if test -z "$mode"; then
861 $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
862 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
863 case $nonopt in
864 *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
865 mode=link
866 for arg
867 do
868 case $arg in
869 -c)
870 mode=compile
871 break
872 ;;
873 esac
874 done
875 ;;
876 *db | *dbx | *strace | *truss)
877 mode=execute
878 ;;
879 *install*|cp|mv)
880 mode=install
881 ;;
882 *rm)
883 mode=uninstall
884 ;;
885 *)
886 # If we have no mode, but dlfiles were specified, then do execute mode.
887 test -n "$execute_dlfiles" && mode=execute
888
889 # Just use the default operation mode.
890 if test -z "$mode"; then
891 if test -n "$nonopt"; then
892 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
893 else
894 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
895 fi
896 fi
897 ;;
898 esac
899 fi
900
901 # Only execute mode is allowed to have -dlopen flags.
902 if test -n "$execute_dlfiles" && test "$mode" != execute; then
903 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
904 $echo "$help" 1>&2
905 exit $EXIT_FAILURE
906 fi
907
908 # Change the help message to a mode-specific one.
909 generic_help="$help"
910 help="Try \`$modename --help --mode=$mode' for more information."
911
912 # These modes are in order of execution frequency so that they run quickly.
913 case $mode in
914 # libtool compile mode
915 compile)
916 modename="$modename: compile"
917 # Get the compilation command and the source file.
918 base_compile=
919 srcfile="$nonopt" # always keep a non-empty value in "srcfile"
920 suppress_opt=yes
921 suppress_output=
922 arg_mode=normal
923 libobj=
924 later=
925
926 for arg
927 do
928 case "$arg_mode" in
929 arg )
930 # do not "continue". Instead, add this to base_compile
931 lastarg="$arg"
932 arg_mode=normal
933 ;;
934
935 target )
936 libobj="$arg"
937 arg_mode=normal
938 continue
939 ;;
940
941 normal )
942 # Accept any command-line options.
943 case $arg in
944 -o)
945 if test -n "$libobj" ; then
946 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
947 exit $EXIT_FAILURE
948 fi
949 arg_mode=target
950 continue
951 ;;
952
953 -static | -prefer-pic | -prefer-non-pic)
954 later="$later $arg"
955 continue
956 ;;
957
958 -no-suppress)
959 suppress_opt=no
960 continue
961 ;;
962
963 -Xcompiler)
964 arg_mode=arg # the next one goes into the "base_compile" arg list
965 continue # The current "srcfile" will either be retained or
966 ;; # replaced later. I would guess that would be a bug.
967
968 -Wc,*)
969 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
970 lastarg=
971 save_ifs="$IFS"; IFS=','
972 for arg in $args; do
973 IFS="$save_ifs"
974
975 # Double-quote args containing other shell metacharacters.
976 # Many Bourne shells cannot handle close brackets correctly
977 # in scan sets, so we specify it separately.
978 case $arg in
979 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
980 arg="\"$arg\""
981 ;;
982 esac
983 lastarg="$lastarg $arg"
984 done
985 IFS="$save_ifs"
986 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
987
988 # Add the arguments to base_compile.
989 base_compile="$base_compile $lastarg"
990 continue
991 ;;
992
993 * )
994 # Accept the current argument as the source file.
995 # The previous "srcfile" becomes the current argument.
996 #
997 lastarg="$srcfile"
998 srcfile="$arg"
999 ;;
1000 esac # case $arg
1001 ;;
1002 esac # case $arg_mode
1003
1004 # Aesthetically quote the previous argument.
1005 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
1006
1007 case $lastarg in
1008 # Double-quote args containing other shell metacharacters.
1009 # Many Bourne shells cannot handle close brackets correctly
1010 # in scan sets, and some SunOS ksh mistreat backslash-escaping
1011 # in scan sets (worked around with variable expansion),
1012 # and furthermore cannot handle '|' '&' '(' ')' in scan sets
1013 # at all, so we specify them separately.
1014 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
1015 lastarg="\"$lastarg\""
1016 ;;
1017 esac
1018
1019 base_compile="$base_compile $lastarg"
1020 done # for arg
1021
1022 case $arg_mode in
1023 arg)
1024 $echo "$modename: you must specify an argument for -Xcompile"
1025 exit $EXIT_FAILURE
1026 ;;
1027 target)
1028 $echo "$modename: you must specify a target with \`-o'" 1>&2
1029 exit $EXIT_FAILURE
1030 ;;
1031 *)
1032 # Get the name of the library object.
1033 [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
1034 ;;
1035 esac
1036
1037 # Recognize several different file suffixes.
1038 # If the user specifies -o file.o, it is replaced with file.lo
1039 xform='[cCFSifmso]'
1040 case $libobj in
1041 *.ada) xform=ada ;;
1042 *.adb) xform=adb ;;
1043 *.ads) xform=ads ;;
1044 *.asm) xform=asm ;;
1045 *.c++) xform=c++ ;;
1046 *.cc) xform=cc ;;
1047 *.ii) xform=ii ;;
1048 *.class) xform=class ;;
1049 *.cpp) xform=cpp ;;
1050 *.cxx) xform=cxx ;;
1051 *.f90) xform=f90 ;;
1052 *.for) xform=for ;;
1053 *.java) xform=java ;;
1054 esac
1055
1056 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
1057
1058 case $libobj in
1059 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
1060 *)
1061 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
1062 exit $EXIT_FAILURE
1063 ;;
1064 esac
1065
1066 func_infer_tag $base_compile
1067
1068 for arg in $later; do
1069 case $arg in
1070 -static)
1071 build_old_libs=yes
1072 continue
1073 ;;
1074
1075 -prefer-pic)
1076 pic_mode=yes
1077 continue
1078 ;;
1079
1080 -prefer-non-pic)
1081 pic_mode=no
1082 continue
1083 ;;
1084 esac
1085 done
1086
1087 qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
1088 case $qlibobj in
1089 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
1090 qlibobj="\"$qlibobj\"" ;;
1091 esac
1092 if test "X$libobj" != "X$qlibobj"; then
1093 $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
1094 exit $EXIT_FAILURE
1095 fi
1096 objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
1097 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
1098 if test "X$xdir" = "X$obj"; then
1099 xdir=
1100 else
1101 xdir=$xdir/
1102 fi
1103 lobj=${xdir}$objdir/$objname
1104
1105 if test -z "$base_compile"; then
1106 $echo "$modename: you must specify a compilation command" 1>&2
1107 $echo "$help" 1>&2
1108 exit $EXIT_FAILURE
1109 fi
1110
1111 # Delete any leftover library objects.
1112 if test "$build_old_libs" = yes; then
1113 removelist="$obj $lobj $libobj ${libobj}T"
1114 else
1115 removelist="$lobj $libobj ${libobj}T"
1116 fi
1117
1118 $run $rm $removelist
1119 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
1120
1121 # On Cygwin there's no "real" PIC flag so we must build both object types
1122 case $host_os in
1123 cygwin* | mingw* | pw32* | os2*)
1124 pic_mode=default
1125 ;;
1126 esac
1127 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
1128 # non-PIC code in shared libraries is not supported
1129 pic_mode=default
1130 fi
1131
1132 # Calculate the filename of the output object if compiler does
1133 # not support -o with -c
1134 if test "$compiler_c_o" = no; then
1135 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
1136 lockfile="$output_obj.lock"
1137 removelist="$removelist $output_obj $lockfile"
1138 trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
1139 else
1140 output_obj=
1141 need_locks=no
1142 lockfile=
1143 fi
1144
1145 # Lock this critical section if it is needed
1146 # We use this script file to make the link, it avoids creating a new file
1147 if test "$need_locks" = yes; then
1148 until $run ln "$progpath" "$lockfile" 2>/dev/null; do
1149 $show "Waiting for $lockfile to be removed"
1150 sleep 2
1151 done
1152 elif test "$need_locks" = warn; then
1153 if test -f "$lockfile"; then
1154 $echo "\
1155 *** ERROR, $lockfile exists and contains:
1156 `cat $lockfile 2>/dev/null`
1157
1158 This indicates that another process is trying to use the same
1159 temporary object file, and libtool could not work around it because
1160 your compiler does not support \`-c' and \`-o' together. If you
1161 repeat this compilation, it may succeed, by chance, but you had better
1162 avoid parallel builds (make -j) in this platform, or get a better
1163 compiler."
1164
1165 $run $rm $removelist
1166 exit $EXIT_FAILURE
1167 fi
1168 $echo "$srcfile" > "$lockfile"
1169 fi
1170
1171 if test -n "$fix_srcfile_path"; then
1172 eval srcfile=\"$fix_srcfile_path\"
1173 fi
1174 qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
1175 case $qsrcfile in
1176 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
1177 qsrcfile="\"$qsrcfile\"" ;;
1178 esac
1179
1180 $run $rm "$libobj" "${libobj}T"
1181
1182 # Create a libtool object file (analogous to a ".la" file),
1183 # but don't create it if we're doing a dry run.
1184 test -z "$run" && cat > ${libobj}T <<EOF
1185 # $libobj - a libtool object file
1186 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
1187 #
1188 # Please DO NOT delete this file!
1189 # It is necessary for linking the library.
1190
1191 # Name of the PIC object.
1192 EOF
1193
1194 # Only build a PIC object if we are building libtool libraries.
1195 if test "$build_libtool_libs" = yes; then
1196 # Without this assignment, base_compile gets emptied.
1197 fbsd_hideous_sh_bug=$base_compile
1198
1199 if test "$pic_mode" != no; then
1200 command="$base_compile $qsrcfile $pic_flag"
1201 else
1202 # Don't build PIC code
1203 command="$base_compile $qsrcfile"
1204 fi
1205
1206 if test ! -d "${xdir}$objdir"; then
1207 $show "$mkdir ${xdir}$objdir"
1208 $run $mkdir ${xdir}$objdir
1209 status=$?
1210 if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
1211 exit $status
1212 fi
1213 fi
1214
1215 if test -z "$output_obj"; then
1216 # Place PIC objects in $objdir
1217 command="$command -o $lobj"
1218 fi
1219
1220 $run $rm "$lobj" "$output_obj"
1221
1222 $show "$command"
1223 if $run eval "$command"; then :
1224 else
1225 test -n "$output_obj" && $run $rm $removelist
1226 exit $EXIT_FAILURE
1227 fi
1228
1229 if test "$need_locks" = warn &&
1230 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1231 $echo "\
1232 *** ERROR, $lockfile contains:
1233 `cat $lockfile 2>/dev/null`
1234
1235 but it should contain:
1236 $srcfile
1237
1238 This indicates that another process is trying to use the same
1239 temporary object file, and libtool could not work around it because
1240 your compiler does not support \`-c' and \`-o' together. If you
1241 repeat this compilation, it may succeed, by chance, but you had better
1242 avoid parallel builds (make -j) in this platform, or get a better
1243 compiler."
1244
1245 $run $rm $removelist
1246 exit $EXIT_FAILURE
1247 fi
1248
1249 # Just move the object if needed, then go on to compile the next one
1250 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
1251 $show "$mv $output_obj $lobj"
1252 if $run $mv $output_obj $lobj; then :
1253 else
1254 error=$?
1255 $run $rm $removelist
1256 exit $error
1257 fi
1258 fi
1259
1260 # Append the name of the PIC object to the libtool object file.
1261 test -z "$run" && cat >> ${libobj}T <<EOF
1262 pic_object='$objdir/$objname'
1263
1264 EOF
1265
1266 # Allow error messages only from the first compilation.
1267 if test "$suppress_opt" = yes; then
1268 suppress_output=' >/dev/null 2>&1'
1269 fi
1270 else
1271 # No PIC object so indicate it doesn't exist in the libtool
1272 # object file.
1273 test -z "$run" && cat >> ${libobj}T <<EOF
1274 pic_object=none
1275
1276 EOF
1277 fi
1278
1279 # Only build a position-dependent object if we build old libraries.
1280 if test "$build_old_libs" = yes; then
1281 if test "$pic_mode" != yes; then
1282 # Don't build PIC code
1283 command="$base_compile $qsrcfile"
1284 else
1285 command="$base_compile $qsrcfile $pic_flag"
1286 fi
1287 if test "$compiler_c_o" = yes; then
1288 command="$command -o $obj"
1289 fi
1290
1291 # Suppress compiler output if we already did a PIC compilation.
1292 command="$command$suppress_output"
1293 $run $rm "$obj" "$output_obj"
1294 $show "$command"
1295 if $run eval "$command"; then :
1296 else
1297 $run $rm $removelist
1298 exit $EXIT_FAILURE
1299 fi
1300
1301 if test "$need_locks" = warn &&
1302 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1303 $echo "\
1304 *** ERROR, $lockfile contains:
1305 `cat $lockfile 2>/dev/null`
1306
1307 but it should contain:
1308 $srcfile
1309
1310 This indicates that another process is trying to use the same
1311 temporary object file, and libtool could not work around it because
1312 your compiler does not support \`-c' and \`-o' together. If you
1313 repeat this compilation, it may succeed, by chance, but you had better
1314 avoid parallel builds (make -j) in this platform, or get a better
1315 compiler."
1316
1317 $run $rm $removelist
1318 exit $EXIT_FAILURE
1319 fi
1320
1321 # Just move the object if needed
1322 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1323 $show "$mv $output_obj $obj"
1324 if $run $mv $output_obj $obj; then :
1325 else
1326 error=$?
1327 $run $rm $removelist
1328 exit $error
1329 fi
1330 fi
1331
1332 # Append the name of the non-PIC object the libtool object file.
1333 # Only append if the libtool object file exists.
1334 test -z "$run" && cat >> ${libobj}T <<EOF
1335 # Name of the non-PIC object.
1336 non_pic_object='$objname'
1337
1338 EOF
1339 else
1340 # Append the name of the non-PIC object the libtool object file.
1341 # Only append if the libtool object file exists.
1342 test -z "$run" && cat >> ${libobj}T <<EOF
1343 # Name of the non-PIC object.
1344 non_pic_object=none
1345
1346 EOF
1347 fi
1348
1349 $run $mv "${libobj}T" "${libobj}"
1350
1351 # Unlock the critical section if it was locked
1352 if test "$need_locks" != no; then
1353 $run $rm "$lockfile"
1354 fi
1355
1356 exit $EXIT_SUCCESS
1357 ;;
1358
1359 # libtool link mode
1360 link | relink)
1361 modename="$modename: link"
1362 case $host in
1363 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1364 # It is impossible to link a dll without this setting, and
1365 # we shouldn't force the makefile maintainer to figure out
1366 # which system we are compiling for in order to pass an extra
1367 # flag for every libtool invocation.
1368 # allow_undefined=no
1369
1370 # FIXME: Unfortunately, there are problems with the above when trying
1371 # to make a dll which has undefined symbols, in which case not
1372 # even a static library is built. For now, we need to specify
1373 # -no-undefined on the libtool link line when we can be certain
1374 # that all symbols are satisfied, otherwise we get a static library.
1375 allow_undefined=yes
1376 ;;
1377 *)
1378 allow_undefined=yes
1379 ;;
1380 esac
1381 libtool_args="$nonopt"
1382 base_compile="$nonopt $@"
1383 compile_command="$nonopt"
1384 finalize_command="$nonopt"
1385
1386 compile_rpath=
1387 finalize_rpath=
1388 compile_shlibpath=
1389 finalize_shlibpath=
1390 convenience=
1391 old_convenience=
1392 deplibs=
1393 old_deplibs=
1394 compiler_flags=
1395 linker_flags=
1396 dllsearchpath=
1397 lib_search_path=`pwd`
1398 inst_prefix_dir=
1399
1400 avoid_version=no
1401 dlfiles=
1402 dlprefiles=
1403 dlself=no
1404 export_dynamic=no
1405 export_symbols=
1406 export_symbols_regex=
1407 generated=
1408 libobjs=
1409 ltlibs=
1410 module=no
1411 no_install=no
1412 objs=
1413 non_pic_objects=
1414 precious_files_regex=
1415 prefer_static_libs=no
1416 preload=no
1417 prev=
1418 prevarg=
1419 release=
1420 rpath=
1421 xrpath=
1422 perm_rpath=
1423 temp_rpath=
1424 thread_safe=no
1425 vinfo=
1426 vinfo_number=no
1427
1428 func_infer_tag $base_compile
1429
1430 # We need to know -static, to get the right output filenames.
1431 for arg
1432 do
1433 case $arg in
1434 -all-static | -static)
1435 if test "X$arg" = "X-all-static"; then
1436 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1437 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1438 fi
1439 if test -n "$link_static_flag"; then
1440 dlopen_self=$dlopen_self_static
1441 fi
1442 else
1443 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1444 dlopen_self=$dlopen_self_static
1445 fi
1446 fi
1447 build_libtool_libs=no
1448 build_old_libs=yes
1449 prefer_static_libs=yes
1450 break
1451 ;;
1452 esac
1453 done
1454
1455 # See if our shared archives depend on static archives.
1456 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1457
1458 # Go through the arguments, transforming them on the way.
1459 while test "$#" -gt 0; do
1460 arg="$1"
1461 shift
1462 case $arg in
1463 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
1464 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1465 ;;
1466 *) qarg=$arg ;;
1467 esac
1468 libtool_args="$libtool_args $qarg"
1469
1470 # If the previous option needs an argument, assign it.
1471 if test -n "$prev"; then
1472 case $prev in
1473 output)
1474 compile_command="$compile_command @OUTPUT@"
1475 finalize_command="$finalize_command @OUTPUT@"
1476 ;;
1477 esac
1478
1479 case $prev in
1480 dlfiles|dlprefiles)
1481 if test "$preload" = no; then
1482 # Add the symbol object into the linking commands.
1483 compile_command="$compile_command @SYMFILE@"
1484 finalize_command="$finalize_command @SYMFILE@"
1485 preload=yes
1486 fi
1487 case $arg in
1488 *.la | *.lo) ;; # We handle these cases below.
1489 force)
1490 if test "$dlself" = no; then
1491 dlself=needless
1492 export_dynamic=yes
1493 fi
1494 prev=
1495 continue
1496 ;;
1497 self)
1498 if test "$prev" = dlprefiles; then
1499 dlself=yes
1500 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1501 dlself=yes
1502 else
1503 dlself=needless
1504 export_dynamic=yes
1505 fi
1506 prev=
1507 continue
1508 ;;
1509 *)
1510 if test "$prev" = dlfiles; then
1511 dlfiles="$dlfiles $arg"
1512 else
1513 dlprefiles="$dlprefiles $arg"
1514 fi
1515 prev=
1516 continue
1517 ;;
1518 esac
1519 ;;
1520 expsyms)
1521 export_symbols="$arg"
1522 if test ! -f "$arg"; then
1523 $echo "$modename: symbol file \`$arg' does not exist"
1524 exit $EXIT_FAILURE
1525 fi
1526 prev=
1527 continue
1528 ;;
1529 expsyms_regex)
1530 export_symbols_regex="$arg"
1531 prev=
1532 continue
1533 ;;
1534 inst_prefix)
1535 inst_prefix_dir="$arg"
1536 prev=
1537 continue
1538 ;;
1539 precious_regex)
1540 precious_files_regex="$arg"
1541 prev=
1542 continue
1543 ;;
1544 release)
1545 release="-$arg"
1546 prev=
1547 continue
1548 ;;
1549 objectlist)
1550 if test -f "$arg"; then
1551 save_arg=$arg
1552 moreargs=
1553 for fil in `cat $save_arg`
1554 do
1555 # moreargs="$moreargs $fil"
1556 arg=$fil
1557 # A libtool-controlled object.
1558
1559 # Check to see that this really is a libtool object.
1560 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1561 pic_object=
1562 non_pic_object=
1563
1564 # Read the .lo file
1565 # If there is no directory component, then add one.
1566 case $arg in
1567 */* | *\\*) . $arg ;;
1568 *) . ./$arg ;;
1569 esac
1570
1571 if test -z "$pic_object" || \
1572 test -z "$non_pic_object" ||
1573 test "$pic_object" = none && \
1574 test "$non_pic_object" = none; then
1575 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1576 exit $EXIT_FAILURE
1577 fi
1578
1579 # Extract subdirectory from the argument.
1580 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1581 if test "X$xdir" = "X$arg"; then
1582 xdir=
1583 else
1584 xdir="$xdir/"
1585 fi
1586
1587 if test "$pic_object" != none; then
1588 # Prepend the subdirectory the object is found in.
1589 pic_object="$xdir$pic_object"
1590
1591 if test "$prev" = dlfiles; then
1592 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1593 dlfiles="$dlfiles $pic_object"
1594 prev=
1595 continue
1596 else
1597 # If libtool objects are unsupported, then we need to preload.
1598 prev=dlprefiles
1599 fi
1600 fi
1601
1602 # CHECK ME: I think I busted this. -Ossama
1603 if test "$prev" = dlprefiles; then
1604 # Preload the old-style object.
1605 dlprefiles="$dlprefiles $pic_object"
1606 prev=
1607 fi
1608
1609 # A PIC object.
1610 libobjs="$libobjs $pic_object"
1611 arg="$pic_object"
1612 fi
1613
1614 # Non-PIC object.
1615 if test "$non_pic_object" != none; then
1616 # Prepend the subdirectory the object is found in.
1617 non_pic_object="$xdir$non_pic_object"
1618
1619 # A standard non-PIC object
1620 non_pic_objects="$non_pic_objects $non_pic_object"
1621 if test -z "$pic_object" || test "$pic_object" = none ; then
1622 arg="$non_pic_object"
1623 fi
1624 fi
1625 else
1626 # Only an error if not doing a dry-run.
1627 if test -z "$run"; then
1628 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1629 exit $EXIT_FAILURE
1630 else
1631 # Dry-run case.
1632
1633 # Extract subdirectory from the argument.
1634 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1635 if test "X$xdir" = "X$arg"; then
1636 xdir=
1637 else
1638 xdir="$xdir/"
1639 fi
1640
1641 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1642 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1643 libobjs="$libobjs $pic_object"
1644 non_pic_objects="$non_pic_objects $non_pic_object"
1645 fi
1646 fi
1647 done
1648 else
1649 $echo "$modename: link input file \`$save_arg' does not exist"
1650 exit $EXIT_FAILURE
1651 fi
1652 arg=$save_arg
1653 prev=
1654 continue
1655 ;;
1656 rpath | xrpath)
1657 # We need an absolute path.
1658 case $arg in
1659 [\\/]* | [A-Za-z]:[\\/]*) ;;
1660 *)
1661 $echo "$modename: only absolute run-paths are allowed" 1>&2
1662 exit $EXIT_FAILURE
1663 ;;
1664 esac
1665 if test "$prev" = rpath; then
1666 case "$rpath " in
1667 *" $arg "*) ;;
1668 *) rpath="$rpath $arg" ;;
1669 esac
1670 else
1671 case "$xrpath " in
1672 *" $arg "*) ;;
1673 *) xrpath="$xrpath $arg" ;;
1674 esac
1675 fi
1676 prev=
1677 continue
1678 ;;
1679 xcompiler)
1680 compiler_flags="$compiler_flags $qarg"
1681 prev=
1682 compile_command="$compile_command $qarg"
1683 finalize_command="$finalize_command $qarg"
1684 continue
1685 ;;
1686 xlinker)
1687 linker_flags="$linker_flags $qarg"
1688 compiler_flags="$compiler_flags $wl$qarg"
1689 prev=
1690 compile_command="$compile_command $wl$qarg"
1691 finalize_command="$finalize_command $wl$qarg"
1692 continue
1693 ;;
1694 xcclinker)
1695 linker_flags="$linker_flags $qarg"
1696 compiler_flags="$compiler_flags $qarg"
1697 prev=
1698 compile_command="$compile_command $qarg"
1699 finalize_command="$finalize_command $qarg"
1700 continue
1701 ;;
1702 shrext)
1703 shrext_cmds="$arg"
1704 prev=
1705 continue
1706 ;;
1707 darwin_framework)
1708 compiler_flags="$compiler_flags $arg"
1709 prev=
1710 continue
1711 ;;
1712 *)
1713 eval "$prev=\"\$arg\""
1714 prev=
1715 continue
1716 ;;
1717 esac
1718 fi # test -n "$prev"
1719
1720 prevarg="$arg"
1721
1722 case $arg in
1723 -all-static)
1724 if test -n "$link_static_flag"; then
1725 compile_command="$compile_command $link_static_flag"
1726 finalize_command="$finalize_command $link_static_flag"
1727 fi
1728 continue
1729 ;;
1730
1731 -allow-undefined)
1732 # FIXME: remove this flag sometime in the future.
1733 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1734 continue
1735 ;;
1736
1737 -avoid-version)
1738 avoid_version=yes
1739 continue
1740 ;;
1741
1742 -dlopen)
1743 prev=dlfiles
1744 continue
1745 ;;
1746
1747 -dlpreopen)
1748 prev=dlprefiles
1749 continue
1750 ;;
1751
1752 -export-dynamic)
1753 export_dynamic=yes
1754 continue
1755 ;;
1756
1757 -export-symbols | -export-symbols-regex)
1758 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1759 $echo "$modename: more than one -exported-symbols argument is not allowed"
1760 exit $EXIT_FAILURE
1761 fi
1762 if test "X$arg" = "X-export-symbols"; then
1763 prev=expsyms
1764 else
1765 prev=expsyms_regex
1766 fi
1767 continue
1768 ;;
1769
1770 -framework)
1771 prev=darwin_framework
1772 compiler_flags="$compiler_flags $arg"
1773 continue
1774 ;;
1775
1776 -inst-prefix-dir)
1777 prev=inst_prefix
1778 continue
1779 ;;
1780
1781 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1782 # so, if we see these flags be careful not to treat them like -L
1783 -L[A-Z][A-Z]*:*)
1784 case $with_gcc/$host in
1785 no/*-*-irix* | /*-*-irix*)
1786 compile_command="$compile_command $arg"
1787 finalize_command="$finalize_command $arg"
1788 ;;
1789 esac
1790 continue
1791 ;;
1792
1793 -L*)
1794 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1795 # We need an absolute path.
1796 case $dir in
1797 [\\/]* | [A-Za-z]:[\\/]*) ;;
1798 *)
1799 absdir=`cd "$dir" && pwd`
1800 if test -z "$absdir"; then
1801 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1802 exit $EXIT_FAILURE
1803 fi
1804 dir="$absdir"
1805 ;;
1806 esac
1807 case "$deplibs " in
1808 *" -L$dir "*) ;;
1809 *)
1810 deplibs="$deplibs -L$dir"
1811 lib_search_path="$lib_search_path $dir"
1812 ;;
1813 esac
1814 case $host in
1815 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1816 case :$dllsearchpath: in
1817 *":$dir:"*) ;;
1818 *) dllsearchpath="$dllsearchpath:$dir";;
1819 esac
1820 ;;
1821 esac
1822 continue
1823 ;;
1824
1825 -l*)
1826 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1827 case $host in
1828 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1829 # These systems don't actually have a C or math library (as such)
1830 continue
1831 ;;
1832 *-*-mingw* | *-*-os2*)
1833 # These systems don't actually have a C library (as such)
1834 test "X$arg" = "X-lc" && continue
1835 ;;
1836 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1837 # Do not include libc due to us having libc/libc_r.
1838 test "X$arg" = "X-lc" && continue
1839 ;;
1840 *-*-rhapsody* | *-*-darwin1.[012])
1841 # Rhapsody C and math libraries are in the System framework
1842 deplibs="$deplibs -framework System"
1843 continue
1844 esac
1845 elif test "X$arg" = "X-lc_r"; then
1846 case $host in
1847 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1848 # Do not include libc_r directly, use -pthread flag.
1849 continue
1850 ;;
1851 esac
1852 fi
1853 deplibs="$deplibs $arg"
1854 continue
1855 ;;
1856
1857 # Tru64 UNIX uses -model [arg] to determine the layout of C++
1858 # classes, name mangling, and exception handling.
1859 -model)
1860 compile_command="$compile_command $arg"
1861 compiler_flags="$compiler_flags $arg"
1862 finalize_command="$finalize_command $arg"
1863 prev=xcompiler
1864 continue
1865 ;;
1866
1867 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1868 compiler_flags="$compiler_flags $arg"
1869 compile_command="$compile_command $arg"
1870 finalize_command="$finalize_command $arg"
1871 continue
1872 ;;
1873
1874 -module)
1875 module=yes
1876 continue
1877 ;;
1878
1879 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1880 # -r[0-9][0-9]* specifies the processor on the SGI compiler
1881 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1882 # +DA*, +DD* enable 64-bit mode on the HP compiler
1883 # -q* pass through compiler args for the IBM compiler
1884 # -m* pass through architecture-specific compiler args for GCC
1885 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*)
1886
1887 # Unknown arguments in both finalize_command and compile_command need
1888 # to be aesthetically quoted because they are evaled later.
1889 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1890 case $arg in
1891 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
1892 arg="\"$arg\""
1893 ;;
1894 esac
1895 compile_command="$compile_command $arg"
1896 finalize_command="$finalize_command $arg"
1897 if test "$with_gcc" = "yes" ; then
1898 compiler_flags="$compiler_flags $arg"
1899 fi
1900 continue
1901 ;;
1902
1903 -shrext)
1904 prev=shrext
1905 continue
1906 ;;
1907
1908 -no-fast-install)
1909 fast_install=no
1910 continue
1911 ;;
1912
1913 -no-install)
1914 case $host in
1915 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1916 # The PATH hackery in wrapper scripts is required on Windows
1917 # in order for the loader to find any dlls it needs.
1918 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1919 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1920 fast_install=no
1921 ;;
1922 *) no_install=yes ;;
1923 esac
1924 continue
1925 ;;
1926
1927 -no-undefined)
1928 allow_undefined=no
1929 continue
1930 ;;
1931
1932 -objectlist)
1933 prev=objectlist
1934 continue
1935 ;;
1936
1937 -o) prev=output ;;
1938
1939 -precious-files-regex)
1940 prev=precious_regex
1941 continue
1942 ;;
1943
1944 -release)
1945 prev=release
1946 continue
1947 ;;
1948
1949 -rpath)
1950 prev=rpath
1951 continue
1952 ;;
1953
1954 -R)
1955 prev=xrpath
1956 continue
1957 ;;
1958
1959 -R*)
1960 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1961 # We need an absolute path.
1962 case $dir in
1963 [\\/]* | [A-Za-z]:[\\/]*) ;;
1964 *)
1965 $echo "$modename: only absolute run-paths are allowed" 1>&2
1966 exit $EXIT_FAILURE
1967 ;;
1968 esac
1969 case "$xrpath " in
1970 *" $dir "*) ;;
1971 *) xrpath="$xrpath $dir" ;;
1972 esac
1973 continue
1974 ;;
1975
1976 -static)
1977 # The effects of -static are defined in a previous loop.
1978 # We used to do the same as -all-static on platforms that
1979 # didn't have a PIC flag, but the assumption that the effects
1980 # would be equivalent was wrong. It would break on at least
1981 # Digital Unix and AIX.
1982 continue
1983 ;;
1984
1985 -thread-safe)
1986 thread_safe=yes
1987 continue
1988 ;;
1989
1990 -version-info)
1991 prev=vinfo
1992 continue
1993 ;;
1994 -version-number)
1995 prev=vinfo
1996 vinfo_number=yes
1997 continue
1998 ;;
1999
2000 -Wc,*)
2001 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
2002 arg=
2003 save_ifs="$IFS"; IFS=','
2004 for flag in $args; do
2005 IFS="$save_ifs"
2006 case $flag in
2007 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
2008 flag="\"$flag\""
2009 ;;
2010 esac
2011 arg="$arg $wl$flag"
2012 compiler_flags="$compiler_flags $flag"
2013 done
2014 IFS="$save_ifs"
2015 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
2016 ;;
2017
2018 -Wl,*)
2019 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
2020 arg=
2021 save_ifs="$IFS"; IFS=','
2022 for flag in $args; do
2023 IFS="$save_ifs"
2024 case $flag in
2025 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
2026 flag="\"$flag\""
2027 ;;
2028 esac
2029 arg="$arg $wl$flag"
2030 compiler_flags="$compiler_flags $wl$flag"
2031 linker_flags="$linker_flags $flag"
2032 done
2033 IFS="$save_ifs"
2034 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
2035 ;;
2036
2037 -Xcompiler)
2038 prev=xcompiler
2039 continue
2040 ;;
2041
2042 -Xlinker)
2043 prev=xlinker
2044 continue
2045 ;;
2046
2047 -XCClinker)
2048 prev=xcclinker
2049 continue
2050 ;;
2051
2052 # Some other compiler flag.
2053 -* | +*)
2054 # Unknown arguments in both finalize_command and compile_command need
2055 # to be aesthetically quoted because they are evaled later.
2056 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2057 case $arg in
2058 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
2059 arg="\"$arg\""
2060 ;;
2061 esac
2062 ;;
2063
2064 *.$objext)
2065 # A standard object.
2066 objs="$objs $arg"
2067 ;;
2068
2069 *.lo)
2070 # A libtool-controlled object.
2071
2072 # Check to see that this really is a libtool object.
2073 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2074 pic_object=
2075 non_pic_object=
2076
2077 # Read the .lo file
2078 # If there is no directory component, then add one.
2079 case $arg in
2080 */* | *\\*) . $arg ;;
2081 *) . ./$arg ;;
2082 esac
2083
2084 if test -z "$pic_object" || \
2085 test -z "$non_pic_object" ||
2086 test "$pic_object" = none && \
2087 test "$non_pic_object" = none; then
2088 $echo "$modename: cannot find name of object for \`$arg'" 1>&2
2089 exit $EXIT_FAILURE
2090 fi
2091
2092 # Extract subdirectory from the argument.
2093 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
2094 if test "X$xdir" = "X$arg"; then
2095 xdir=
2096 else
2097 xdir="$xdir/"
2098 fi
2099
2100 if test "$pic_object" != none; then
2101 # Prepend the subdirectory the object is found in.
2102 pic_object="$xdir$pic_object"
2103
2104 if test "$prev" = dlfiles; then
2105 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
2106 dlfiles="$dlfiles $pic_object"
2107 prev=
2108 continue
2109 else
2110 # If libtool objects are unsupported, then we need to preload.
2111 prev=dlprefiles
2112 fi
2113 fi
2114
2115 # CHECK ME: I think I busted this. -Ossama
2116 if test "$prev" = dlprefiles; then
2117 # Preload the old-style object.
2118 dlprefiles="$dlprefiles $pic_object"
2119 prev=
2120 fi
2121
2122 # A PIC object.
2123 libobjs="$libobjs $pic_object"
2124 arg="$pic_object"
2125 fi
2126
2127 # Non-PIC object.
2128 if test "$non_pic_object" != none; then
2129 # Prepend the subdirectory the object is found in.
2130 non_pic_object="$xdir$non_pic_object"
2131
2132 # A standard non-PIC object
2133 non_pic_objects="$non_pic_objects $non_pic_object"
2134 if test -z "$pic_object" || test "$pic_object" = none ; then
2135 arg="$non_pic_object"
2136 fi
2137 fi
2138 else
2139 # Only an error if not doing a dry-run.
2140 if test -z "$run"; then
2141 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
2142 exit $EXIT_FAILURE
2143 else
2144 # Dry-run case.
2145
2146 # Extract subdirectory from the argument.
2147 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
2148 if test "X$xdir" = "X$arg"; then
2149 xdir=
2150 else
2151 xdir="$xdir/"
2152 fi
2153
2154 pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
2155 non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
2156 libobjs="$libobjs $pic_object"
2157 non_pic_objects="$non_pic_objects $non_pic_object"
2158 fi
2159 fi
2160 ;;
2161
2162 *.$libext)
2163 # An archive.
2164 deplibs="$deplibs $arg"
2165 old_deplibs="$old_deplibs $arg"
2166 continue
2167 ;;
2168
2169 *.la)
2170 # A libtool-controlled library.
2171
2172 if test "$prev" = dlfiles; then
2173 # This library was specified with -dlopen.
2174 dlfiles="$dlfiles $arg"
2175 prev=
2176 elif test "$prev" = dlprefiles; then
2177 # The library was specified with -dlpreopen.
2178 dlprefiles="$dlprefiles $arg"
2179 prev=
2180 else
2181 deplibs="$deplibs $arg"
2182 fi
2183 continue
2184 ;;
2185
2186 # Some other compiler argument.
2187 *)
2188 # Unknown arguments in both finalize_command and compile_command need
2189 # to be aesthetically quoted because they are evaled later.
2190 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
2191 case $arg in
2192 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
2193 arg="\"$arg\""
2194 ;;
2195 esac
2196 ;;
2197 esac # arg
2198
2199 # Now actually substitute the argument into the commands.
2200 if test -n "$arg"; then
2201 compile_command="$compile_command $arg"
2202 finalize_command="$finalize_command $arg"
2203 fi
2204 done # argument parsing loop
2205
2206 if test -n "$prev"; then
2207 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
2208 $echo "$help" 1>&2
2209 exit $EXIT_FAILURE
2210 fi
2211
2212 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
2213 eval arg=\"$export_dynamic_flag_spec\"
2214 compile_command="$compile_command $arg"
2215 finalize_command="$finalize_command $arg"
2216 fi
2217
2218 oldlibs=
2219 # calculate the name of the file, without its directory
2220 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2221 libobjs_save="$libobjs"
2222
2223 if test -n "$shlibpath_var"; then
2224 # get the directories listed in $shlibpath_var
2225 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2226 else
2227 shlib_search_path=
2228 fi
2229 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2230 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2231
2232 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2233 if test "X$output_objdir" = "X$output"; then
2234 output_objdir="$objdir"
2235 else
2236 output_objdir="$output_objdir/$objdir"
2237 fi
2238 # Create the object directory.
2239 if test ! -d "$output_objdir"; then
2240 $show "$mkdir $output_objdir"
2241 $run $mkdir $output_objdir
2242 status=$?
2243 if test "$status" -ne 0 && test ! -d "$output_objdir"; then
2244 exit $status
2245 fi
2246 fi
2247
2248 # Determine the type of output
2249 case $output in
2250 "")
2251 $echo "$modename: you must specify an output file" 1>&2
2252 $echo "$help" 1>&2
2253 exit $EXIT_FAILURE
2254 ;;
2255 *.$libext) linkmode=oldlib ;;
2256 *.lo | *.$objext) linkmode=obj ;;
2257 *.la) linkmode=lib ;;
2258 *) linkmode=prog ;; # Anything else should be a program.
2259 esac
2260
2261 case $host in
2262 *cygwin* | *mingw* | *pw32*)
2263 # don't eliminate duplications in $postdeps and $predeps
2264 duplicate_compiler_generated_deps=yes
2265 ;;
2266 *)
2267 duplicate_compiler_generated_deps=$duplicate_deps
2268 ;;
2269 esac
2270 specialdeplibs=
2271
2272 libs=
2273 # Find all interdependent deplibs by searching for libraries
2274 # that are linked more than once (e.g. -la -lb -la)
2275 for deplib in $deplibs; do
2276 if test "X$duplicate_deps" = "Xyes" ; then
2277 case "$libs " in
2278 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2279 esac
2280 fi
2281 libs="$libs $deplib"
2282 done
2283
2284 if test "$linkmode" = lib; then
2285 libs="$predeps $libs $compiler_lib_search_path $postdeps"
2286
2287 # Compute libraries that are listed more than once in $predeps
2288 # $postdeps and mark them as special (i.e., whose duplicates are
2289 # not to be eliminated).
2290 pre_post_deps=
2291 if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2292 for pre_post_dep in $predeps $postdeps; do
2293 case "$pre_post_deps " in
2294 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2295 esac
2296 pre_post_deps="$pre_post_deps $pre_post_dep"
2297 done
2298 fi
2299 pre_post_deps=
2300 fi
2301
2302 deplibs=
2303 newdependency_libs=
2304 newlib_search_path=
2305 need_relink=no # whether we're linking any uninstalled libtool libraries
2306 notinst_deplibs= # not-installed libtool libraries
2307 notinst_path= # paths that contain not-installed libtool libraries
2308 case $linkmode in
2309 lib)
2310 passes="conv link"
2311 for file in $dlfiles $dlprefiles; do
2312 case $file in
2313 *.la) ;;
2314 *)
2315 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2316 exit $EXIT_FAILURE
2317 ;;
2318 esac
2319 done
2320 ;;
2321 prog)
2322 compile_deplibs=
2323 finalize_deplibs=
2324 alldeplibs=no
2325 newdlfiles=
2326 newdlprefiles=
2327 passes="conv scan dlopen dlpreopen link"
2328 ;;
2329 *) passes="conv"
2330 ;;
2331 esac
2332 for pass in $passes; do
2333 if test "$linkmode,$pass" = "lib,link" ||
2334 test "$linkmode,$pass" = "prog,scan"; then
2335 libs="$deplibs"
2336 deplibs=
2337 fi
2338 if test "$linkmode" = prog; then
2339 case $pass in
2340 dlopen) libs="$dlfiles" ;;
2341 dlpreopen) libs="$dlprefiles" ;;
2342 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
2343 esac
2344 fi
2345 if test "$pass" = dlopen; then
2346 # Collect dlpreopened libraries
2347 save_deplibs="$deplibs"
2348 deplibs=
2349 fi
2350 for deplib in $libs; do
2351 lib=
2352 found=no
2353 case $deplib in
2354 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2355 if test "$linkmode,$pass" = "prog,link"; then
2356 compile_deplibs="$deplib $compile_deplibs"
2357 finalize_deplibs="$deplib $finalize_deplibs"
2358 else
2359 compiler_flags="$compiler_flags $deplib"
2360 fi
2361 continue
2362 ;;
2363 -l*)
2364 if test "$linkmode" != lib && test "$linkmode" != prog; then
2365 $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2366 continue
2367 fi
2368 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2369 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2370 for search_ext in .la $std_shrext .so .a; do
2371 # Search the libtool library
2372 lib="$searchdir/lib${name}${search_ext}"
2373 if test -f "$lib"; then
2374 if test "$search_ext" = ".la"; then
2375 found=yes
2376 else
2377 found=no
2378 fi
2379 break 2
2380 fi
2381 done
2382 done
2383 if test "$found" != yes; then
2384 # deplib doesn't seem to be a libtool library
2385 if test "$linkmode,$pass" = "prog,link"; then
2386 compile_deplibs="$deplib $compile_deplibs"
2387 finalize_deplibs="$deplib $finalize_deplibs"
2388 else
2389 deplibs="$deplib $deplibs"
2390 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2391 fi
2392 continue
2393 else # deplib is a libtool library
2394 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2395 # We need to do some special things here, and not later.
2396 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2397 case " $predeps $postdeps " in
2398 *" $deplib "*)
2399 if (${SED} -e '2q' $lib |
2400 grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2401 library_names=
2402 old_library=
2403 case $lib in
2404 */* | *\\*) . $lib ;;
2405 *) . ./$lib ;;
2406 esac
2407 for l in $old_library $library_names; do
2408 ll="$l"
2409 done
2410 if test "X$ll" = "X$old_library" ; then # only static version available
2411 found=no
2412 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2413 test "X$ladir" = "X$lib" && ladir="."
2414 lib=$ladir/$old_library
2415 if test "$linkmode,$pass" = "prog,link"; then
2416 compile_deplibs="$deplib $compile_deplibs"
2417 finalize_deplibs="$deplib $finalize_deplibs"
2418 else
2419 deplibs="$deplib $deplibs"
2420 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2421 fi
2422 continue
2423 fi
2424 fi
2425 ;;
2426 *) ;;
2427 esac
2428 fi
2429 fi
2430 ;; # -l
2431 -L*)
2432 case $linkmode in
2433 lib)
2434 deplibs="$deplib $deplibs"
2435 test "$pass" = conv && continue
2436 newdependency_libs="$deplib $newdependency_libs"
2437 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2438 ;;
2439 prog)
2440 if test "$pass" = conv; then
2441 deplibs="$deplib $deplibs"
2442 continue
2443 fi
2444 if test "$pass" = scan; then
2445 deplibs="$deplib $deplibs"
2446 else
2447 compile_deplibs="$deplib $compile_deplibs"
2448 finalize_deplibs="$deplib $finalize_deplibs"
2449 fi
2450 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2451 ;;
2452 *)
2453 $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2454 ;;
2455 esac # linkmode
2456 continue
2457 ;; # -L
2458 -R*)
2459 if test "$pass" = link; then
2460 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2461 # Make sure the xrpath contains only unique directories.
2462 case "$xrpath " in
2463 *" $dir "*) ;;
2464 *) xrpath="$xrpath $dir" ;;
2465 esac
2466 fi
2467 deplibs="$deplib $deplibs"
2468 continue
2469 ;;
2470 *.la) lib="$deplib" ;;
2471 *.$libext)
2472 if test "$pass" = conv; then
2473 deplibs="$deplib $deplibs"
2474 continue
2475 fi
2476 case $linkmode in
2477 lib)
2478 valid_a_lib=no
2479 case $deplibs_check_method in
2480 match_pattern*)
2481 set dummy $deplibs_check_method
2482 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2483 if eval $echo \"$deplib\" 2>/dev/null \
2484 | $SED 10q \
2485 | $EGREP "$match_pattern_regex" > /dev/null; then
2486 valid_a_lib=yes
2487 fi
2488 ;;
2489 pass_all)
2490 valid_a_lib=yes
2491 ;;
2492 esac
2493 if test "$valid_a_lib" != yes; then
2494 $echo
2495 $echo "*** Warning: Trying to link with static lib archive $deplib."
2496 $echo "*** I have the capability to make that library automatically link in when"
2497 $echo "*** you link to this library. But I can only do this if you have a"
2498 $echo "*** shared version of the library, which you do not appear to have"
2499 $echo "*** because the file extensions .$libext of this argument makes me believe"
2500 $echo "*** that it is just a static archive that I should not used here."
2501 else
2502 $echo
2503 $echo "*** Warning: Linking the shared library $output against the"
2504 $echo "*** static library $deplib is not portable!"
2505 deplibs="$deplib $deplibs"
2506 fi
2507 continue
2508 ;;
2509 prog)
2510 if test "$pass" != link; then
2511 deplibs="$deplib $deplibs"
2512 else
2513 compile_deplibs="$deplib $compile_deplibs"
2514 finalize_deplibs="$deplib $finalize_deplibs"
2515 fi
2516 continue
2517 ;;
2518 esac # linkmode
2519 ;; # *.$libext
2520 *.lo | *.$objext)
2521 if test "$pass" = conv; then
2522 deplibs="$deplib $deplibs"
2523 elif test "$linkmode" = prog; then
2524 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2525 # If there is no dlopen support or we're linking statically,
2526 # we need to preload.
2527 newdlprefiles="$newdlprefiles $deplib"
2528 compile_deplibs="$deplib $compile_deplibs"
2529 finalize_deplibs="$deplib $finalize_deplibs"
2530 else
2531 newdlfiles="$newdlfiles $deplib"
2532 fi
2533 fi
2534 continue
2535 ;;
2536 %DEPLIBS%)
2537 alldeplibs=yes
2538 continue
2539 ;;
2540 esac # case $deplib
2541 if test "$found" = yes || test -f "$lib"; then :
2542 else
2543 $echo "$modename: cannot find the library \`$lib'" 1>&2
2544 exit $EXIT_FAILURE
2545 fi
2546
2547 # Check to see that this really is a libtool archive.
2548 if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2549 else
2550 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2551 exit $EXIT_FAILURE
2552 fi
2553
2554 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2555 test "X$ladir" = "X$lib" && ladir="."
2556
2557 dlname=
2558 dlopen=
2559 dlpreopen=
2560 libdir=
2561 library_names=
2562 old_library=
2563 # If the library was installed with an old release of libtool,
2564 # it will not redefine variables installed, or shouldnotlink
2565 installed=yes
2566 shouldnotlink=no
2567 avoidtemprpath=
2568
2569
2570 # Read the .la file
2571 case $lib in
2572 */* | *\\*) . $lib ;;
2573 *) . ./$lib ;;
2574 esac
2575
2576 if test "$linkmode,$pass" = "lib,link" ||
2577 test "$linkmode,$pass" = "prog,scan" ||
2578 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2579 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2580 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2581 fi
2582
2583 if test "$pass" = conv; then
2584 # Only check for convenience libraries
2585 deplibs="$lib $deplibs"
2586 if test -z "$libdir"; then
2587 if test -z "$old_library"; then
2588 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2589 exit $EXIT_FAILURE
2590 fi
2591 # It is a libtool convenience library, so add in its objects.
2592 convenience="$convenience $ladir/$objdir/$old_library"
2593 old_convenience="$old_convenience $ladir/$objdir/$old_library"
2594 tmp_libs=
2595 for deplib in $dependency_libs; do
2596 deplibs="$deplib $deplibs"
2597 if test "X$duplicate_deps" = "Xyes" ; then
2598 case "$tmp_libs " in
2599 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2600 esac
2601 fi
2602 tmp_libs="$tmp_libs $deplib"
2603 done
2604 elif test "$linkmode" != prog && test "$linkmode" != lib; then
2605 $echo "$modename: \`$lib' is not a convenience library" 1>&2
2606 exit $EXIT_FAILURE
2607 fi
2608 continue
2609 fi # $pass = conv
2610
2611
2612 # Get the name of the library we link against.
2613 linklib=
2614 for l in $old_library $library_names; do
2615 linklib="$l"
2616 done
2617 if test -z "$linklib"; then
2618 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2619 exit $EXIT_FAILURE
2620 fi
2621
2622 # This library was specified with -dlopen.
2623 if test "$pass" = dlopen; then
2624 if test -z "$libdir"; then
2625 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2626 exit $EXIT_FAILURE
2627 fi
2628 if test -z "$dlname" ||
2629 test "$dlopen_support" != yes ||
2630 test "$build_libtool_libs" = no; then
2631 # If there is no dlname, no dlopen support or we're linking
2632 # statically, we need to preload. We also need to preload any
2633 # dependent libraries so libltdl's deplib preloader doesn't
2634 # bomb out in the load deplibs phase.
2635 dlprefiles="$dlprefiles $lib $dependency_libs"
2636 else
2637 newdlfiles="$newdlfiles $lib"
2638 fi
2639 continue
2640 fi # $pass = dlopen
2641
2642 # We need an absolute path.
2643 case $ladir in
2644 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2645 *)
2646 abs_ladir=`cd "$ladir" && pwd`
2647 if test -z "$abs_ladir"; then
2648 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2649 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2650 abs_ladir="$ladir"
2651 fi
2652 ;;
2653 esac
2654 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2655
2656 # Find the relevant object directory and library name.
2657 if test "X$installed" = Xyes; then
2658 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2659 $echo "$modename: warning: library \`$lib' was moved." 1>&2
2660 dir="$ladir"
2661 absdir="$abs_ladir"
2662 libdir="$abs_ladir"
2663 else
2664 dir="$libdir"
2665 absdir="$libdir"
2666 fi
2667 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2668 else
2669 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2670 dir="$ladir"
2671 absdir="$abs_ladir"
2672 # Remove this search path later
2673 notinst_path="$notinst_path $abs_ladir"
2674 else
2675 dir="$ladir/$objdir"
2676 absdir="$abs_ladir/$objdir"
2677 # Remove this search path later
2678 notinst_path="$notinst_path $abs_ladir"
2679 fi
2680 fi # $installed = yes
2681 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2682
2683 # This library was specified with -dlpreopen.
2684 if test "$pass" = dlpreopen; then
2685 if test -z "$libdir"; then
2686 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2687 exit $EXIT_FAILURE
2688 fi
2689 # Prefer using a static library (so that no silly _DYNAMIC symbols
2690 # are required to link).
2691 if test -n "$old_library"; then
2692 newdlprefiles="$newdlprefiles $dir/$old_library"
2693 # Otherwise, use the dlname, so that lt_dlopen finds it.
2694 elif test -n "$dlname"; then
2695 newdlprefiles="$newdlprefiles $dir/$dlname"
2696 else
2697 newdlprefiles="$newdlprefiles $dir/$linklib"
2698 fi
2699 fi # $pass = dlpreopen
2700
2701 if test -z "$libdir"; then
2702 # Link the convenience library
2703 if test "$linkmode" = lib; then
2704 deplibs="$dir/$old_library $deplibs"
2705 elif test "$linkmode,$pass" = "prog,link"; then
2706 compile_deplibs="$dir/$old_library $compile_deplibs"
2707 finalize_deplibs="$dir/$old_library $finalize_deplibs"
2708 else
2709 deplibs="$lib $deplibs" # used for prog,scan pass
2710 fi
2711 continue
2712 fi
2713
2714
2715 if test "$linkmode" = prog && test "$pass" != link; then
2716 newlib_search_path="$newlib_search_path $ladir"
2717 deplibs="$lib $deplibs"
2718
2719 linkalldeplibs=no
2720 if test "$link_all_deplibs" != no || test -z "$library_names" ||
2721 test "$build_libtool_libs" = no; then
2722 linkalldeplibs=yes
2723 fi
2724
2725 tmp_libs=
2726 for deplib in $dependency_libs; do
2727 case $deplib in
2728 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2729 esac
2730 # Need to link against all dependency_libs?
2731 if test "$linkalldeplibs" = yes; then
2732 deplibs="$deplib $deplibs"
2733 else
2734 # Need to hardcode shared library paths
2735 # or/and link against static libraries
2736 newdependency_libs="$deplib $newdependency_libs"
2737 fi
2738 if test "X$duplicate_deps" = "Xyes" ; then
2739 case "$tmp_libs " in
2740 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2741 esac
2742 fi
2743 tmp_libs="$tmp_libs $deplib"
2744 done # for deplib
2745 continue
2746 fi # $linkmode = prog...
2747
2748 if test "$linkmode,$pass" = "prog,link"; then
2749 if test -n "$library_names" &&
2750 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2751 # We need to hardcode the library path
2752 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2753 # Make sure the rpath contains only unique directories.
2754 case "$temp_rpath " in
2755 *" $dir "*) ;;
2756 *" $absdir "*) ;;
2757 *) temp_rpath="$temp_rpath $dir" ;;
2758 esac
2759 fi
2760
2761 # Hardcode the library path.
2762 # Skip directories that are in the system default run-time
2763 # search path.
2764 case " $sys_lib_dlsearch_path " in
2765 *" $absdir "*) ;;
2766 *)
2767 case "$compile_rpath " in
2768 *" $absdir "*) ;;
2769 *) compile_rpath="$compile_rpath $absdir"
2770 esac
2771 ;;
2772 esac
2773 case " $sys_lib_dlsearch_path " in
2774 *" $libdir "*) ;;
2775 *)
2776 case "$finalize_rpath " in
2777 *" $libdir "*) ;;
2778 *) finalize_rpath="$finalize_rpath $libdir"
2779 esac
2780 ;;
2781 esac
2782 fi # $linkmode,$pass = prog,link...
2783
2784 if test "$alldeplibs" = yes &&
2785 { test "$deplibs_check_method" = pass_all ||
2786 { test "$build_libtool_libs" = yes &&
2787 test -n "$library_names"; }; }; then
2788 # We only need to search for static libraries
2789 continue
2790 fi
2791 fi
2792
2793 link_static=no # Whether the deplib will be linked statically
2794 if test -n "$library_names" &&
2795 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2796 if test "$installed" = no; then
2797 notinst_deplibs="$notinst_deplibs $lib"
2798 need_relink=yes
2799 fi
2800 # This is a shared library
2801
2802 # Warn about portability, can't link against -module's on
2803 # some systems (darwin)
2804 if test "$shouldnotlink" = yes && test "$pass" = link ; then
2805 $echo
2806 if test "$linkmode" = prog; then
2807 $echo "*** Warning: Linking the executable $output against the loadable module"
2808 else
2809 $echo "*** Warning: Linking the shared library $output against the loadable module"
2810 fi
2811 $echo "*** $linklib is not portable!"
2812 fi
2813 if test "$linkmode" = lib &&
2814 test "$hardcode_into_libs" = yes; then
2815 # Hardcode the library path.
2816 # Skip directories that are in the system default run-time
2817 # search path.
2818 case " $sys_lib_dlsearch_path " in
2819 *" $absdir "*) ;;
2820 *)
2821 case "$compile_rpath " in
2822 *" $absdir "*) ;;
2823 *) compile_rpath="$compile_rpath $absdir"
2824 esac
2825 ;;
2826 esac
2827 case " $sys_lib_dlsearch_path " in
2828 *" $libdir "*) ;;
2829 *)
2830 case "$finalize_rpath " in
2831 *" $libdir "*) ;;
2832 *) finalize_rpath="$finalize_rpath $libdir"
2833 esac
2834 ;;
2835 esac
2836 fi
2837
2838 if test -n "$old_archive_from_expsyms_cmds"; then
2839 # figure out the soname
2840 set dummy $library_names
2841 realname="$2"
2842 shift; shift
2843 libname=`eval \\$echo \"$libname_spec\"`
2844 # use dlname if we got it. it's perfectly good, no?
2845 if test -n "$dlname"; then
2846 soname="$dlname"
2847 elif test -n "$soname_spec"; then
2848 # bleh windows
2849 case $host in
2850 *cygwin* | mingw*)
2851 major=`expr $current - $age`
2852 versuffix="-$major"
2853 ;;
2854 esac
2855 eval soname=\"$soname_spec\"
2856 else
2857 soname="$realname"
2858 fi
2859
2860 # Make a new name for the extract_expsyms_cmds to use
2861 soroot="$soname"
2862 soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2863 newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2864
2865 # If the library has no export list, then create one now
2866 if test -f "$output_objdir/$soname-def"; then :
2867 else
2868 $show "extracting exported symbol list from \`$soname'"
2869 save_ifs="$IFS"; IFS='~'
2870 cmds=$extract_expsyms_cmds
2871 for cmd in $cmds; do
2872 IFS="$save_ifs"
2873 eval cmd=\"$cmd\"
2874 $show "$cmd"
2875 $run eval "$cmd" || exit $?
2876 done
2877 IFS="$save_ifs"
2878 fi
2879
2880 # Create $newlib
2881 if test -f "$output_objdir/$newlib"; then :; else
2882 $show "generating import library for \`$soname'"
2883 save_ifs="$IFS"; IFS='~'
2884 cmds=$old_archive_from_expsyms_cmds
2885 for cmd in $cmds; do
2886 IFS="$save_ifs"
2887 eval cmd=\"$cmd\"
2888 $show "$cmd"
2889 $run eval "$cmd" || exit $?
2890 done
2891 IFS="$save_ifs"
2892 fi
2893 # make sure the library variables are pointing to the new library
2894 dir=$output_objdir
2895 linklib=$newlib
2896 fi # test -n "$old_archive_from_expsyms_cmds"
2897
2898 if test "$linkmode" = prog || test "$mode" != relink; then
2899 add_shlibpath=
2900 add_dir=
2901 add=
2902 lib_linked=yes
2903 case $hardcode_action in
2904 immediate | unsupported)
2905 if test "$hardcode_direct" = no; then
2906 add="$dir/$linklib"
2907 case $host in
2908 *-*-sco3.2v5* ) add_dir="-L$dir" ;;
2909 *-*-darwin* )
2910 # if the lib is a module then we can not link against
2911 # it, someone is ignoring the new warnings I added
2912 if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
2913 $echo "** Warning, lib $linklib is a module, not a shared library"
2914 if test -z "$old_library" ; then
2915 $echo
2916 $echo "** And there doesn't seem to be a static archive available"
2917 $echo "** The link will probably fail, sorry"
2918 else
2919 add="$dir/$old_library"
2920 fi
2921 fi
2922 esac
2923 elif test "$hardcode_minus_L" = no; then
2924 case $host in
2925 *-*-sunos*) add_shlibpath="$dir" ;;
2926 esac
2927 add_dir="-L$dir"
2928 add="-l$name"
2929 elif test "$hardcode_shlibpath_var" = no; then
2930 add_shlibpath="$dir"
2931 add="-l$name"
2932 else
2933 lib_linked=no
2934 fi
2935 ;;
2936 relink)
2937 if test "$hardcode_direct" = yes; then
2938 add="$dir/$linklib"
2939 elif test "$hardcode_minus_L" = yes; then
2940 add_dir="-L$dir"
2941 # Try looking first in the location we're being installed to.
2942 if test -n "$inst_prefix_dir"; then
2943 case "$libdir" in
2944 [\\/]*)
2945 add_dir="$add_dir -L$inst_prefix_dir$libdir"
2946 ;;
2947 esac
2948 fi
2949 add="-l$name"
2950 elif test "$hardcode_shlibpath_var" = yes; then
2951 add_shlibpath="$dir"
2952 add="-l$name"
2953 else
2954 lib_linked=no
2955 fi
2956 ;;
2957 *) lib_linked=no ;;
2958 esac
2959
2960 if test "$lib_linked" != yes; then
2961 $echo "$modename: configuration error: unsupported hardcode properties"
2962 exit $EXIT_FAILURE
2963 fi
2964
2965 if test -n "$add_shlibpath"; then
2966 case :$compile_shlibpath: in
2967 *":$add_shlibpath:"*) ;;
2968 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2969 esac
2970 fi
2971 if test "$linkmode" = prog; then
2972 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2973 test -n "$add" && compile_deplibs="$add $compile_deplibs"
2974 else
2975 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2976 test -n "$add" && deplibs="$add $deplibs"
2977 if test "$hardcode_direct" != yes && \
2978 test "$hardcode_minus_L" != yes && \
2979 test "$hardcode_shlibpath_var" = yes; then
2980 case :$finalize_shlibpath: in
2981 *":$libdir:"*) ;;
2982 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2983 esac
2984 fi
2985 fi
2986 fi
2987
2988 if test "$linkmode" = prog || test "$mode" = relink; then
2989 add_shlibpath=
2990 add_dir=
2991 add=
2992 # Finalize command for both is simple: just hardcode it.
2993 if test "$hardcode_direct" = yes; then
2994 add="$libdir/$linklib"
2995 elif test "$hardcode_minus_L" = yes; then
2996 add_dir="-L$libdir"
2997 add="-l$name"
2998 elif test "$hardcode_shlibpath_var" = yes; then
2999 case :$finalize_shlibpath: in
3000 *":$libdir:"*) ;;
3001 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
3002 esac
3003 add="-l$name"
3004 elif test "$hardcode_automatic" = yes; then
3005 if test -n "$inst_prefix_dir" &&
3006 test -f "$inst_prefix_dir$libdir/$linklib" ; then
3007 add="$inst_prefix_dir$libdir/$linklib"
3008 else
3009 add="$libdir/$linklib"
3010 fi
3011 else
3012 # We cannot seem to hardcode it, guess we'll fake it.
3013 add_dir="-L$libdir"
3014 # Try looking first in the location we're being installed to.
3015 if test -n "$inst_prefix_dir"; then
3016 case "$libdir" in
3017 [\\/]*)
3018 add_dir="$add_dir -L$inst_prefix_dir$libdir"
3019 ;;
3020 esac
3021 fi
3022 add="-l$name"
3023 fi
3024
3025 if test "$linkmode" = prog; then
3026 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
3027 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
3028 else
3029 test -n "$add_dir" && deplibs="$add_dir $deplibs"
3030 test -n "$add" && deplibs="$add $deplibs"
3031 fi
3032 fi
3033 elif test "$linkmode" = prog; then
3034 # Here we assume that one of hardcode_direct or hardcode_minus_L
3035 # is not unsupported. This is valid on all known static and
3036 # shared platforms.
3037 if test "$hardcode_direct" != unsupported; then
3038 test -n "$old_library" && linklib="$old_library"
3039 compile_deplibs="$dir/$linklib $compile_deplibs"
3040 finalize_deplibs="$dir/$linklib $finalize_deplibs"
3041 else
3042 compile_deplibs="-l$name -L$dir $compile_deplibs"
3043 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
3044 fi
3045 elif test "$build_libtool_libs" = yes; then
3046 # Not a shared library
3047 if test "$deplibs_check_method" != pass_all; then
3048 # We're trying link a shared library against a static one
3049 # but the system doesn't support it.
3050
3051 # Just print a warning and add the library to dependency_libs so
3052 # that the program can be linked against the static library.
3053 $echo
3054 $echo "*** Warning: This system can not link to static lib archive $lib."
3055 $echo "*** I have the capability to make that library automatically link in when"
3056 $echo "*** you link to this library. But I can only do this if you have a"
3057 $echo "*** shared version of the library, which you do not appear to have."
3058 if test "$module" = yes; then
3059 $echo "*** But as you try to build a module library, libtool will still create "
3060 $echo "*** a static module, that should work as long as the dlopening application"
3061 $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
3062 if test -z "$global_symbol_pipe"; then
3063 $echo
3064 $echo "*** However, this would only work if libtool was able to extract symbol"
3065 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3066 $echo "*** not find such a program. So, this module is probably useless."
3067 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3068 fi
3069 if test "$build_old_libs" = no; then
3070 build_libtool_libs=module
3071 build_old_libs=yes
3072 else
3073 build_libtool_libs=no
3074 fi
3075 fi
3076 else
3077 convenience="$convenience $dir/$old_library"
3078 old_convenience="$old_convenience $dir/$old_library"
3079 deplibs="$dir/$old_library $deplibs"
3080 link_static=yes
3081 fi
3082 fi # link shared/static library?
3083
3084 if test "$linkmode" = lib; then
3085 if test -n "$dependency_libs" &&
3086 { test "$hardcode_into_libs" != yes ||
3087 test "$build_old_libs" = yes ||
3088 test "$link_static" = yes; }; then
3089 # Extract -R from dependency_libs
3090 temp_deplibs=
3091 for libdir in $dependency_libs; do
3092 case $libdir in
3093 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
3094 case " $xrpath " in
3095 *" $temp_xrpath "*) ;;
3096 *) xrpath="$xrpath $temp_xrpath";;
3097 esac;;
3098 *) temp_deplibs="$temp_deplibs $libdir";;
3099 esac
3100 done
3101 dependency_libs="$temp_deplibs"
3102 fi
3103
3104 newlib_search_path="$newlib_search_path $absdir"
3105 # Link against this library
3106 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
3107 # ... and its dependency_libs
3108 tmp_libs=
3109 for deplib in $dependency_libs; do
3110 newdependency_libs="$deplib $newdependency_libs"
3111 if test "X$duplicate_deps" = "Xyes" ; then
3112 case "$tmp_libs " in
3113 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
3114 esac
3115 fi
3116 tmp_libs="$tmp_libs $deplib"
3117 done
3118
3119 if test "$link_all_deplibs" != no; then
3120 # Add the search paths of all dependency libraries
3121 for deplib in $dependency_libs; do
3122 case $deplib in
3123 -L*) path="$deplib" ;;
3124 *.la)
3125 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
3126 test "X$dir" = "X$deplib" && dir="."
3127 # We need an absolute path.
3128 case $dir in
3129 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
3130 *)
3131 absdir=`cd "$dir" && pwd`
3132 if test -z "$absdir"; then
3133 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
3134 absdir="$dir"
3135 fi
3136 ;;
3137 esac
3138 if grep "^installed=no" $deplib > /dev/null; then
3139 path="$absdir/$objdir"
3140 else
3141 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
3142 if test -z "$libdir"; then
3143 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
3144 exit $EXIT_FAILURE
3145 fi
3146 if test "$absdir" != "$libdir"; then
3147 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
3148 fi
3149 path="$absdir"
3150 fi
3151 depdepl=
3152 case $host in
3153 *-*-darwin*)
3154 # we do not want to link against static libs,
3155 # but need to link against shared
3156 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
3157 if test -n "$deplibrary_names" ; then
3158 for tmp in $deplibrary_names ; do
3159 depdepl=$tmp
3160 done
3161 if test -f "$path/$depdepl" ; then
3162 depdepl="$path/$depdepl"
3163 fi
3164 # do not add paths which are already there
3165 case " $newlib_search_path " in
3166 *" $path "*) ;;
3167 *) newlib_search_path="$newlib_search_path $path";;
3168 esac
3169 fi
3170 path=""
3171 ;;
3172 *)
3173 path="-L$path"
3174 ;;
3175 esac
3176 ;;
3177 -l*)
3178 case $host in
3179 *-*-darwin*)
3180 # Again, we only want to link against shared libraries
3181 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
3182 for tmp in $newlib_search_path ; do
3183 if test -f "$tmp/lib$tmp_libs.dylib" ; then
3184 eval depdepl="$tmp/lib$tmp_libs.dylib"
3185 break
3186 fi
3187 done
3188 path=""
3189 ;;
3190 *) continue ;;
3191 esac
3192 ;;
3193 *) continue ;;
3194 esac
3195 case " $deplibs " in
3196 *" $path "*) ;;
3197 *) deplibs="$path $deplibs" ;;
3198 esac
3199 case " $deplibs " in
3200 *" $depdepl "*) ;;
3201 *) deplibs="$depdepl $deplibs" ;;
3202 esac
3203 done
3204 fi # link_all_deplibs != no
3205 fi # linkmode = lib
3206 done # for deplib in $libs
3207 dependency_libs="$newdependency_libs"
3208 if test "$pass" = dlpreopen; then
3209 # Link the dlpreopened libraries before other libraries
3210 for deplib in $save_deplibs; do
3211 deplibs="$deplib $deplibs"
3212 done
3213 fi
3214 if test "$pass" != dlopen; then
3215 if test "$pass" != conv; then
3216 # Make sure lib_search_path contains only unique directories.
3217 lib_search_path=
3218 for dir in $newlib_search_path; do
3219 case "$lib_search_path " in
3220 *" $dir "*) ;;
3221 *) lib_search_path="$lib_search_path $dir" ;;
3222 esac
3223 done
3224 newlib_search_path=
3225 fi
3226
3227 if test "$linkmode,$pass" != "prog,link"; then
3228 vars="deplibs"
3229 else
3230 vars="compile_deplibs finalize_deplibs"
3231 fi
3232 for var in $vars dependency_libs; do
3233 # Add libraries to $var in reverse order
3234 eval tmp_libs=\"\$$var\"
3235 new_libs=
3236 for deplib in $tmp_libs; do
3237 # FIXME: Pedantically, this is the right thing to do, so
3238 # that some nasty dependency loop isn't accidentally
3239 # broken:
3240 #new_libs="$deplib $new_libs"
3241 # Pragmatically, this seems to cause very few problems in
3242 # practice:
3243 case $deplib in
3244 -L*) new_libs="$deplib $new_libs" ;;
3245 -R*) ;;
3246 *)
3247 # And here is the reason: when a library appears more
3248 # than once as an explicit dependence of a library, or
3249 # is implicitly linked in more than once by the
3250 # compiler, it is considered special, and multiple
3251 # occurrences thereof are not removed. Compare this
3252 # with having the same library being listed as a
3253 # dependency of multiple other libraries: in this case,
3254 # we know (pedantically, we assume) the library does not
3255 # need to be listed more than once, so we keep only the
3256 # last copy. This is not always right, but it is rare
3257 # enough that we require users that really mean to play
3258 # such unportable linking tricks to link the library
3259 # using -Wl,-lname, so that libtool does not consider it
3260 # for duplicate removal.
3261 case " $specialdeplibs " in
3262 *" $deplib "*) new_libs="$deplib $new_libs" ;;
3263 *)
3264 case " $new_libs " in
3265 *" $deplib "*) ;;
3266 *) new_libs="$deplib $new_libs" ;;
3267 esac
3268 ;;
3269 esac
3270 ;;
3271 esac
3272 done
3273 tmp_libs=
3274 for deplib in $new_libs; do
3275 case $deplib in
3276 -L*)
3277 case " $tmp_libs " in
3278 *" $deplib "*) ;;
3279 *) tmp_libs="$tmp_libs $deplib" ;;
3280 esac
3281 ;;
3282 *) tmp_libs="$tmp_libs $deplib" ;;
3283 esac
3284 done
3285 eval $var=\"$tmp_libs\"
3286 done # for var
3287 fi
3288 # Last step: remove runtime libs from dependency_libs
3289 # (they stay in deplibs)
3290 tmp_libs=
3291 for i in $dependency_libs ; do
3292 case " $predeps $postdeps $compiler_lib_search_path " in
3293 *" $i "*)
3294 i=""
3295 ;;
3296 esac
3297 if test -n "$i" ; then
3298 tmp_libs="$tmp_libs $i"
3299 fi
3300 done
3301 dependency_libs=$tmp_libs
3302 done # for pass
3303 if test "$linkmode" = prog; then
3304 dlfiles="$newdlfiles"
3305 dlprefiles="$newdlprefiles"
3306 fi
3307
3308 case $linkmode in
3309 oldlib)
3310 if test -n "$deplibs"; then
3311 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3312 fi
3313
3314 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3315 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3316 fi
3317
3318 if test -n "$rpath"; then
3319 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3320 fi
3321
3322 if test -n "$xrpath"; then
3323 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3324 fi
3325
3326 if test -n "$vinfo"; then
3327 $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3328 fi
3329
3330 if test -n "$release"; then
3331 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3332 fi
3333
3334 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3335 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3336 fi
3337
3338 # Now set the variables for building old libraries.
3339 build_libtool_libs=no
3340 oldlibs="$output"
3341 objs="$objs$old_deplibs"
3342 ;;
3343
3344 lib)
3345 # Make sure we only generate libraries of the form `libNAME.la'.
3346 case $outputname in
3347 lib*)
3348 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3349 eval shared_ext=\"$shrext_cmds\"
3350 eval libname=\"$libname_spec\"
3351 ;;
3352 *)
3353 if test "$module" = no; then
3354 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3355 $echo "$help" 1>&2
3356 exit $EXIT_FAILURE
3357 fi
3358 if test "$need_lib_prefix" != no; then
3359 # Add the "lib" prefix for modules if required
3360 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3361 eval shared_ext=\"$shrext_cmds\"
3362 eval libname=\"$libname_spec\"
3363 else
3364 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3365 fi
3366 ;;
3367 esac
3368
3369 if test -n "$objs"; then
3370 if test "$deplibs_check_method" != pass_all; then
3371 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3372 exit $EXIT_FAILURE
3373 else
3374 $echo
3375 $echo "*** Warning: Linking the shared library $output against the non-libtool"
3376 $echo "*** objects $objs is not portable!"
3377 libobjs="$libobjs $objs"
3378 fi
3379 fi
3380
3381 if test "$dlself" != no; then
3382 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3383 fi
3384
3385 set dummy $rpath
3386 if test "$#" -gt 2; then
3387 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3388 fi
3389 install_libdir="$2"
3390
3391 oldlibs=
3392 if test -z "$rpath"; then
3393 if test "$build_libtool_libs" = yes; then
3394 # Building a libtool convenience library.
3395 # Some compilers have problems with a `.al' extension so
3396 # convenience libraries should have the same extension an
3397 # archive normally would.
3398 oldlibs="$output_objdir/$libname.$libext $oldlibs"
3399 build_libtool_libs=convenience
3400 build_old_libs=yes
3401 fi
3402
3403 if test -n "$vinfo"; then
3404 $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3405 fi
3406
3407 if test -n "$release"; then
3408 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3409 fi
3410 else
3411
3412 # Parse the version information argument.
3413 save_ifs="$IFS"; IFS=':'
3414 set dummy $vinfo 0 0 0
3415 IFS="$save_ifs"
3416
3417 if test -n "$8"; then
3418 $echo "$modename: too many parameters to \`-version-info'" 1>&2
3419 $echo "$help" 1>&2
3420 exit $EXIT_FAILURE
3421 fi
3422
3423 # convert absolute version numbers to libtool ages
3424 # this retains compatibility with .la files and attempts
3425 # to make the code below a bit more comprehensible
3426
3427 case $vinfo_number in
3428 yes)
3429 number_major="$2"
3430 number_minor="$3"
3431 number_revision="$4"
3432 #
3433 # There are really only two kinds -- those that
3434 # use the current revision as the major version
3435 # and those that subtract age and use age as
3436 # a minor version. But, then there is irix
3437 # which has an extra 1 added just for fun
3438 #
3439 case $version_type in
3440 darwin|linux|osf|windows)
3441 current=`expr $number_major + $number_minor`
3442 age="$number_minor"
3443 revision="$number_revision"
3444 ;;
3445 freebsd-aout|freebsd-elf|sunos)
3446 current="$number_major"
3447 revision="$number_minor"
3448 age="0"
3449 ;;
3450 irix|nonstopux)
3451 current=`expr $number_major + $number_minor - 1`
3452 age="$number_minor"
3453 revision="$number_minor"
3454 ;;
3455 esac
3456 ;;
3457 no)
3458 current="$2"
3459 revision="$3"
3460 age="$4"
3461 ;;
3462 esac
3463
3464 # Check that each of the things are valid numbers.
3465 case $current in
3466 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]) ;;
3467 *)
3468 $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3469 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3470 exit $EXIT_FAILURE
3471 ;;
3472 esac
3473
3474 case $revision in
3475 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]) ;;
3476 *)
3477 $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3478 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3479 exit $EXIT_FAILURE
3480 ;;
3481 esac
3482
3483 case $age in
3484 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]) ;;
3485 *)
3486 $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3487 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3488 exit $EXIT_FAILURE
3489 ;;
3490 esac
3491
3492 if test "$age" -gt "$current"; then
3493 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3494 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3495 exit $EXIT_FAILURE
3496 fi
3497
3498 # Calculate the version variables.
3499 major=
3500 versuffix=
3501 verstring=
3502 case $version_type in
3503 none) ;;
3504
3505 darwin)
3506 # Like Linux, but with the current version available in
3507 # verstring for coding it into the library header
3508 major=.`expr $current - $age`
3509 versuffix="$major.$age.$revision"
3510 # Darwin ld doesn't like 0 for these options...
3511 minor_current=`expr $current + 1`
3512 verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3513 ;;
3514
3515 freebsd-aout)
3516 major=".$current"
3517 versuffix=".$current.$revision";
3518 ;;
3519
3520 freebsd-elf)
3521 major=".$current"
3522 versuffix=".$current";
3523 ;;
3524
3525 irix | nonstopux)
3526 major=`expr $current - $age + 1`
3527
3528 case $version_type in
3529 nonstopux) verstring_prefix=nonstopux ;;
3530 *) verstring_prefix=sgi ;;
3531 esac
3532 verstring="$verstring_prefix$major.$revision"
3533
3534 # Add in all the interfaces that we are compatible with.
3535 loop=$revision
3536 while test "$loop" -ne 0; do
3537 iface=`expr $revision - $loop`
3538 loop=`expr $loop - 1`
3539 verstring="$verstring_prefix$major.$iface:$verstring"
3540 done
3541
3542 # Before this point, $major must not contain `.'.
3543 major=.$major
3544 versuffix="$major.$revision"
3545 ;;
3546
3547 linux)
3548 major=.`expr $current - $age`
3549 versuffix="$major.$age.$revision"
3550 ;;
3551
3552 osf)
3553 major=.`expr $current - $age`
3554 versuffix=".$current.$age.$revision"
3555 verstring="$current.$age.$revision"
3556
3557 # Add in all the interfaces that we are compatible with.
3558 loop=$age
3559 while test "$loop" -ne 0; do
3560 iface=`expr $current - $loop`
3561 loop=`expr $loop - 1`
3562 verstring="$verstring:${iface}.0"
3563 done
3564
3565 # Make executables depend on our current version.
3566 verstring="$verstring:${current}.0"
3567 ;;
3568
3569 sunos)
3570 major=".$current"
3571 versuffix=".$current.$revision"
3572 ;;
3573
3574 windows)
3575 # Use '-' rather than '.', since we only want one
3576 # extension on DOS 8.3 filesystems.
3577 major=`expr $current - $age`
3578 versuffix="-$major"
3579 ;;
3580
3581 *)
3582 $echo "$modename: unknown library version type \`$version_type'" 1>&2
3583 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
3584 exit $EXIT_FAILURE
3585 ;;
3586 esac
3587
3588 # Clear the version info if we defaulted, and they specified a release.
3589 if test -z "$vinfo" && test -n "$release"; then
3590 major=
3591 case $version_type in
3592 darwin)
3593 # we can't check for "0.0" in archive_cmds due to quoting
3594 # problems, so we reset it completely
3595 verstring=
3596 ;;
3597 *)
3598 verstring="0.0"
3599 ;;
3600 esac
3601 if test "$need_version" = no; then
3602 versuffix=
3603 else
3604 versuffix=".0.0"
3605 fi
3606 fi
3607
3608 # Remove version info from name if versioning should be avoided
3609 if test "$avoid_version" = yes && test "$need_version" = no; then
3610 major=
3611 versuffix=
3612 verstring=""
3613 fi
3614
3615 # Check to see if the archive will have undefined symbols.
3616 if test "$allow_undefined" = yes; then
3617 if test "$allow_undefined_flag" = unsupported; then
3618 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3619 build_libtool_libs=no
3620 build_old_libs=yes
3621 fi
3622 else
3623 # Don't allow undefined symbols.
3624 allow_undefined_flag="$no_undefined_flag"
3625 fi
3626 fi
3627
3628 if test "$mode" != relink; then
3629 # Remove our outputs, but don't remove object files since they
3630 # may have been created when compiling PIC objects.
3631 removelist=
3632 tempremovelist=`$echo "$output_objdir/*"`
3633 for p in $tempremovelist; do
3634 case $p in
3635 *.$objext)
3636 ;;
3637 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3638 if test "X$precious_files_regex" != "X"; then
3639 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3640 then
3641 continue
3642 fi
3643 fi
3644 removelist="$removelist $p"
3645 ;;
3646 *) ;;
3647 esac
3648 done
3649 if test -n "$removelist"; then
3650 $show "${rm}r $removelist"
3651 $run ${rm}r $removelist
3652 fi
3653 fi
3654
3655 # Now set the variables for building old libraries.
3656 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3657 oldlibs="$oldlibs $output_objdir/$libname.$libext"
3658
3659 # Transform .lo files to .o files.
3660 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3661 fi
3662
3663 # Eliminate all temporary directories.
3664 for path in $notinst_path; do
3665 lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
3666 deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
3667 dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
3668 done
3669
3670 if test -n "$xrpath"; then
3671 # If the user specified any rpath flags, then add them.
3672 temp_xrpath=
3673 for libdir in $xrpath; do
3674 temp_xrpath="$temp_xrpath -R$libdir"
3675 case "$finalize_rpath " in
3676 *" $libdir "*) ;;
3677 *) finalize_rpath="$finalize_rpath $libdir" ;;
3678 esac
3679 done
3680 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3681 dependency_libs="$temp_xrpath $dependency_libs"
3682 fi
3683 fi
3684
3685 # Make sure dlfiles contains only unique files that won't be dlpreopened
3686 old_dlfiles="$dlfiles"
3687 dlfiles=
3688 for lib in $old_dlfiles; do
3689 case " $dlprefiles $dlfiles " in
3690 *" $lib "*) ;;
3691 *) dlfiles="$dlfiles $lib" ;;
3692 esac
3693 done
3694
3695 # Make sure dlprefiles contains only unique files
3696 old_dlprefiles="$dlprefiles"
3697 dlprefiles=
3698 for lib in $old_dlprefiles; do
3699 case "$dlprefiles " in
3700 *" $lib "*) ;;
3701 *) dlprefiles="$dlprefiles $lib" ;;
3702 esac
3703 done
3704
3705 if test "$build_libtool_libs" = yes; then
3706 if test -n "$rpath"; then
3707 case $host in
3708 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3709 # these systems don't actually have a c library (as such)!
3710 ;;
3711 *-*-rhapsody* | *-*-darwin1.[012])
3712 # Rhapsody C library is in the System framework
3713 deplibs="$deplibs -framework System"
3714 ;;
3715 *-*-netbsd*)
3716 # Don't link with libc until the a.out ld.so is fixed.
3717 ;;
3718 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3719 # Do not include libc due to us having libc/libc_r.
3720 test "X$arg" = "X-lc" && continue
3721 ;;
3722 *)
3723 # Add libc to deplibs on all other systems if necessary.
3724 if test "$build_libtool_need_lc" = "yes"; then
3725 deplibs="$deplibs -lc"
3726 fi
3727 ;;
3728 esac
3729 fi
3730
3731 # Transform deplibs into only deplibs that can be linked in shared.
3732 name_save=$name
3733 libname_save=$libname
3734 release_save=$release
3735 versuffix_save=$versuffix
3736 major_save=$major
3737 # I'm not sure if I'm treating the release correctly. I think
3738 # release should show up in the -l (ie -lgmp5) so we don't want to
3739 # add it in twice. Is that correct?
3740 release=""
3741 versuffix=""
3742 major=""
3743 newdeplibs=
3744 droppeddeps=no
3745 case $deplibs_check_method in
3746 pass_all)
3747 # Don't check for shared/static. Everything works.
3748 # This might be a little naive. We might want to check
3749 # whether the library exists or not. But this is on
3750 # osf3 & osf4 and I'm not really sure... Just
3751 # implementing what was already the behavior.
3752 newdeplibs=$deplibs
3753 ;;
3754 test_compile)
3755 # This code stresses the "libraries are programs" paradigm to its
3756 # limits. Maybe even breaks it. We compile a program, linking it
3757 # against the deplibs as a proxy for the library. Then we can check
3758 # whether they linked in statically or dynamically with ldd.
3759 $rm conftest.c
3760 cat > conftest.c <<EOF
3761 int main() { return 0; }
3762 EOF
3763 $rm conftest
3764 $LTCC -o conftest conftest.c $deplibs
3765 if test "$?" -eq 0 ; then
3766 ldd_output=`ldd conftest`
3767 for i in $deplibs; do
3768 name="`expr $i : '-l\(.*\)'`"
3769 # If $name is empty we are operating on a -L argument.
3770 if test "$name" != "" && test "$name" -ne "0"; then
3771 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3772 case " $predeps $postdeps " in
3773 *" $i "*)
3774 newdeplibs="$newdeplibs $i"
3775 i=""
3776 ;;
3777 esac
3778 fi
3779 if test -n "$i" ; then
3780 libname=`eval \\$echo \"$libname_spec\"`
3781 deplib_matches=`eval \\$echo \"$library_names_spec\"`
3782 set dummy $deplib_matches
3783 deplib_match=$2
3784 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3785 newdeplibs="$newdeplibs $i"
3786 else
3787 droppeddeps=yes
3788 $echo
3789 $echo "*** Warning: dynamic linker does not accept needed library $i."
3790 $echo "*** I have the capability to make that library automatically link in when"
3791 $echo "*** you link to this library. But I can only do this if you have a"
3792 $echo "*** shared version of the library, which I believe you do not have"
3793 $echo "*** because a test_compile did reveal that the linker did not use it for"
3794 $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3795 fi
3796 fi
3797 else
3798 newdeplibs="$newdeplibs $i"
3799 fi
3800 done
3801 else
3802 # Error occurred in the first compile. Let's try to salvage
3803 # the situation: Compile a separate program for each library.
3804 for i in $deplibs; do
3805 name="`expr $i : '-l\(.*\)'`"
3806 # If $name is empty we are operating on a -L argument.
3807 if test "$name" != "" && test "$name" != "0"; then
3808 $rm conftest
3809 $LTCC -o conftest conftest.c $i
3810 # Did it work?
3811 if test "$?" -eq 0 ; then
3812 ldd_output=`ldd conftest`
3813 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3814 case " $predeps $postdeps " in
3815 *" $i "*)
3816 newdeplibs="$newdeplibs $i"
3817 i=""
3818 ;;
3819 esac
3820 fi
3821 if test -n "$i" ; then
3822 libname=`eval \\$echo \"$libname_spec\"`
3823 deplib_matches=`eval \\$echo \"$library_names_spec\"`
3824 set dummy $deplib_matches
3825 deplib_match=$2
3826 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3827 newdeplibs="$newdeplibs $i"
3828 else
3829 droppeddeps=yes
3830 $echo
3831 $echo "*** Warning: dynamic linker does not accept needed library $i."
3832 $echo "*** I have the capability to make that library automatically link in when"
3833 $echo "*** you link to this library. But I can only do this if you have a"
3834 $echo "*** shared version of the library, which you do not appear to have"
3835 $echo "*** because a test_compile did reveal that the linker did not use this one"
3836 $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3837 fi
3838 fi
3839 else
3840 droppeddeps=yes
3841 $echo
3842 $echo "*** Warning! Library $i is needed by this library but I was not able to"
3843 $echo "*** make it link in! You will probably need to install it or some"
3844 $echo "*** library that it depends on before this library will be fully"
3845 $echo "*** functional. Installing it before continuing would be even better."
3846 fi
3847 else
3848 newdeplibs="$newdeplibs $i"
3849 fi
3850 done
3851 fi
3852 ;;
3853 file_magic*)
3854 set dummy $deplibs_check_method
3855 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3856 for a_deplib in $deplibs; do
3857 name="`expr $a_deplib : '-l\(.*\)'`"
3858 # If $name is empty we are operating on a -L argument.
3859 if test "$name" != "" && test "$name" != "0"; then
3860 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3861 case " $predeps $postdeps " in
3862 *" $a_deplib "*)
3863 newdeplibs="$newdeplibs $a_deplib"
3864 a_deplib=""
3865 ;;
3866 esac
3867 fi
3868 if test -n "$a_deplib" ; then
3869 libname=`eval \\$echo \"$libname_spec\"`
3870 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3871 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3872 for potent_lib in $potential_libs; do
3873 # Follow soft links.
3874 if ls -lLd "$potent_lib" 2>/dev/null \
3875 | grep " -> " >/dev/null; then
3876 continue
3877 fi
3878 # The statement above tries to avoid entering an
3879 # endless loop below, in case of cyclic links.
3880 # We might still enter an endless loop, since a link
3881 # loop can be closed while we follow links,
3882 # but so what?
3883 potlib="$potent_lib"
3884 while test -h "$potlib" 2>/dev/null; do
3885 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3886 case $potliblink in
3887 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3888 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3889 esac
3890 done
3891 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3892 | ${SED} 10q \
3893 | $EGREP "$file_magic_regex" > /dev/null; then
3894 newdeplibs="$newdeplibs $a_deplib"
3895 a_deplib=""
3896 break 2
3897 fi
3898 done
3899 done
3900 fi
3901 if test -n "$a_deplib" ; then
3902 droppeddeps=yes
3903 $echo
3904 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3905 $echo "*** I have the capability to make that library automatically link in when"
3906 $echo "*** you link to this library. But I can only do this if you have a"
3907 $echo "*** shared version of the library, which you do not appear to have"
3908 $echo "*** because I did check the linker path looking for a file starting"
3909 if test -z "$potlib" ; then
3910 $echo "*** with $libname but no candidates were found. (...for file magic test)"
3911 else
3912 $echo "*** with $libname and none of the candidates passed a file format test"
3913 $echo "*** using a file magic. Last file checked: $potlib"
3914 fi
3915 fi
3916 else
3917 # Add a -L argument.
3918 newdeplibs="$newdeplibs $a_deplib"
3919 fi
3920 done # Gone through all deplibs.
3921 ;;
3922 match_pattern*)
3923 set dummy $deplibs_check_method
3924 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3925 for a_deplib in $deplibs; do
3926 name="`expr $a_deplib : '-l\(.*\)'`"
3927 # If $name is empty we are operating on a -L argument.
3928 if test -n "$name" && test "$name" != "0"; then
3929 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3930 case " $predeps $postdeps " in
3931 *" $a_deplib "*)
3932 newdeplibs="$newdeplibs $a_deplib"
3933 a_deplib=""
3934 ;;
3935 esac
3936 fi
3937 if test -n "$a_deplib" ; then
3938 libname=`eval \\$echo \"$libname_spec\"`
3939 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3940 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3941 for potent_lib in $potential_libs; do
3942 potlib="$potent_lib" # see symlink-check above in file_magic test
3943 if eval $echo \"$potent_lib\" 2>/dev/null \
3944 | ${SED} 10q \
3945 | $EGREP "$match_pattern_regex" > /dev/null; then
3946 newdeplibs="$newdeplibs $a_deplib"
3947 a_deplib=""
3948 break 2
3949 fi
3950 done
3951 done
3952 fi
3953 if test -n "$a_deplib" ; then
3954 droppeddeps=yes
3955 $echo
3956 $echo "*** Warning: linker path does not have real file for library $a_deplib."
3957 $echo "*** I have the capability to make that library automatically link in when"
3958 $echo "*** you link to this library. But I can only do this if you have a"
3959 $echo "*** shared version of the library, which you do not appear to have"
3960 $echo "*** because I did check the linker path looking for a file starting"
3961 if test -z "$potlib" ; then
3962 $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3963 else
3964 $echo "*** with $libname and none of the candidates passed a file format test"
3965 $echo "*** using a regex pattern. Last file checked: $potlib"
3966 fi
3967 fi
3968 else
3969 # Add a -L argument.
3970 newdeplibs="$newdeplibs $a_deplib"
3971 fi
3972 done # Gone through all deplibs.
3973 ;;
3974 none | unknown | *)
3975 newdeplibs=""
3976 tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3977 -e 's/ -[LR][^ ]*//g'`
3978 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3979 for i in $predeps $postdeps ; do
3980 # can't use Xsed below, because $i might contain '/'
3981 tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3982 done
3983 fi
3984 if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
3985 | grep . >/dev/null; then
3986 $echo
3987 if test "X$deplibs_check_method" = "Xnone"; then
3988 $echo "*** Warning: inter-library dependencies are not supported in this platform."
3989 else
3990 $echo "*** Warning: inter-library dependencies are not known to be supported."
3991 fi
3992 $echo "*** All declared inter-library dependencies are being dropped."
3993 droppeddeps=yes
3994 fi
3995 ;;
3996 esac
3997 versuffix=$versuffix_save
3998 major=$major_save
3999 release=$release_save
4000 libname=$libname_save
4001 name=$name_save
4002
4003 case $host in
4004 *-*-rhapsody* | *-*-darwin1.[012])
4005 # On Rhapsody replace the C library is the System framework
4006 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
4007 ;;
4008 esac
4009
4010 if test "$droppeddeps" = yes; then
4011 if test "$module" = yes; then
4012 $echo
4013 $echo "*** Warning: libtool could not satisfy all declared inter-library"
4014 $echo "*** dependencies of module $libname. Therefore, libtool will create"
4015 $echo "*** a static module, that should work as long as the dlopening"
4016 $echo "*** application is linked with the -dlopen flag."
4017 if test -z "$global_symbol_pipe"; then
4018 $echo
4019 $echo "*** However, this would only work if libtool was able to extract symbol"
4020 $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
4021 $echo "*** not find such a program. So, this module is probably useless."
4022 $echo "*** \`nm' from GNU binutils and a full rebuild may help."
4023 fi
4024 if test "$build_old_libs" = no; then
4025 oldlibs="$output_objdir/$libname.$libext"
4026 build_libtool_libs=module
4027 build_old_libs=yes
4028 else
4029 build_libtool_libs=no
4030 fi
4031 else
4032 $echo "*** The inter-library dependencies that have been dropped here will be"
4033 $echo "*** automatically added whenever a program is linked with this library"
4034 $echo "*** or is declared to -dlopen it."
4035
4036 if test "$allow_undefined" = no; then
4037 $echo
4038 $echo "*** Since this library must not contain undefined symbols,"
4039 $echo "*** because either the platform does not support them or"
4040 $echo "*** it was explicitly requested with -no-undefined,"
4041 $echo "*** libtool will only create a static version of it."
4042 if test "$build_old_libs" = no; then
4043 oldlibs="$output_objdir/$libname.$libext"
4044 build_libtool_libs=module
4045 build_old_libs=yes
4046 else
4047 build_libtool_libs=no
4048 fi
4049 fi
4050 fi
4051 fi
4052 # Done checking deplibs!
4053 deplibs=$newdeplibs
4054 fi
4055
4056 # All the library-specific variables (install_libdir is set above).
4057 library_names=
4058 old_library=
4059 dlname=
4060
4061 # Test again, we may have decided not to build it any more
4062 if test "$build_libtool_libs" = yes; then
4063 if test "$hardcode_into_libs" = yes; then
4064 # Hardcode the library paths
4065 hardcode_libdirs=
4066 dep_rpath=
4067 rpath="$finalize_rpath"
4068 test "$mode" != relink && rpath="$compile_rpath$rpath"
4069 for libdir in $rpath; do
4070 if test -n "$hardcode_libdir_flag_spec"; then
4071 if test -n "$hardcode_libdir_separator"; then
4072 if test -z "$hardcode_libdirs"; then
4073 hardcode_libdirs="$libdir"
4074 else
4075 # Just accumulate the unique libdirs.
4076 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4077 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4078 ;;
4079 *)
4080 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4081 ;;
4082 esac
4083 fi
4084 else
4085 eval flag=\"$hardcode_libdir_flag_spec\"
4086 dep_rpath="$dep_rpath $flag"
4087 fi
4088 elif test -n "$runpath_var"; then
4089 case "$perm_rpath " in
4090 *" $libdir "*) ;;
4091 *) perm_rpath="$perm_rpath $libdir" ;;
4092 esac
4093 fi
4094 done
4095 # Substitute the hardcoded libdirs into the rpath.
4096 if test -n "$hardcode_libdir_separator" &&
4097 test -n "$hardcode_libdirs"; then
4098 libdir="$hardcode_libdirs"
4099 if test -n "$hardcode_libdir_flag_spec_ld"; then
4100 eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
4101 else
4102 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
4103 fi
4104 fi
4105 if test -n "$runpath_var" && test -n "$perm_rpath"; then
4106 # We should set the runpath_var.
4107 rpath=
4108 for dir in $perm_rpath; do
4109 rpath="$rpath$dir:"
4110 done
4111 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
4112 fi
4113 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
4114 fi
4115
4116 shlibpath="$finalize_shlibpath"
4117 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
4118 if test -n "$shlibpath"; then
4119 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
4120 fi
4121
4122 # Get the real and link names of the library.
4123 eval shared_ext=\"$shrext_cmds\"
4124 eval library_names=\"$library_names_spec\"
4125 set dummy $library_names
4126 realname="$2"
4127 shift; shift
4128
4129 if test -n "$soname_spec"; then
4130 eval soname=\"$soname_spec\"
4131 else
4132 soname="$realname"
4133 fi
4134 if test -z "$dlname"; then
4135 dlname=$soname
4136 fi
4137
4138 lib="$output_objdir/$realname"
4139 for link
4140 do
4141 linknames="$linknames $link"
4142 done
4143
4144 # Use standard objects if they are pic
4145 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4146
4147 # Prepare the list of exported symbols
4148 if test -z "$export_symbols"; then
4149 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
4150 $show "generating symbol list for \`$libname.la'"
4151 export_symbols="$output_objdir/$libname.exp"
4152 $run $rm $export_symbols
4153 cmds=$export_symbols_cmds
4154 save_ifs="$IFS"; IFS='~'
4155 for cmd in $cmds; do
4156 IFS="$save_ifs"
4157 eval cmd=\"$cmd\"
4158 if len=`expr "X$cmd" : ".*"` &&
4159 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4160 $show "$cmd"
4161 $run eval "$cmd" || exit $?
4162 skipped_export=false
4163 else
4164 # The command line is too long to execute in one step.
4165 $show "using reloadable object file for export list..."
4166 skipped_export=:
4167 fi
4168 done
4169 IFS="$save_ifs"
4170 if test -n "$export_symbols_regex"; then
4171 $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
4172 $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
4173 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
4174 $run eval '$mv "${export_symbols}T" "$export_symbols"'
4175 fi
4176 fi
4177 fi
4178
4179 if test -n "$export_symbols" && test -n "$include_expsyms"; then
4180 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
4181 fi
4182
4183 tmp_deplibs=
4184 for test_deplib in $deplibs; do
4185 case " $convenience " in
4186 *" $test_deplib "*) ;;
4187 *)
4188 tmp_deplibs="$tmp_deplibs $test_deplib"
4189 ;;
4190 esac
4191 done
4192 deplibs="$tmp_deplibs"
4193
4194 if test -n "$convenience"; then
4195 if test -n "$whole_archive_flag_spec"; then
4196 save_libobjs=$libobjs
4197 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4198 else
4199 gentop="$output_objdir/${outputname}x"
4200 generated="$generated $gentop"
4201
4202 func_extract_archives $gentop $convenience
4203 libobjs="$libobjs $func_extract_archives_result"
4204 fi
4205 fi
4206
4207 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4208 eval flag=\"$thread_safe_flag_spec\"
4209 linker_flags="$linker_flags $flag"
4210 fi
4211
4212 # Make a backup of the uninstalled library when relinking
4213 if test "$mode" = relink; then
4214 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4215 fi
4216
4217 # Do each of the archive commands.
4218 if test "$module" = yes && test -n "$module_cmds" ; then
4219 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4220 eval test_cmds=\"$module_expsym_cmds\"
4221 cmds=$module_expsym_cmds
4222 else
4223 eval test_cmds=\"$module_cmds\"
4224 cmds=$module_cmds
4225 fi
4226 else
4227 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4228 eval test_cmds=\"$archive_expsym_cmds\"
4229 cmds=$archive_expsym_cmds
4230 else
4231 eval test_cmds=\"$archive_cmds\"
4232 cmds=$archive_cmds
4233 fi
4234 fi
4235
4236 if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
4237 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4238 :
4239 else
4240 # The command line is too long to link in one step, link piecewise.
4241 $echo "creating reloadable object files..."
4242
4243 # Save the value of $output and $libobjs because we want to
4244 # use them later. If we have whole_archive_flag_spec, we
4245 # want to use save_libobjs as it was before
4246 # whole_archive_flag_spec was expanded, because we can't
4247 # assume the linker understands whole_archive_flag_spec.
4248 # This may have to be revisited, in case too many
4249 # convenience libraries get linked in and end up exceeding
4250 # the spec.
4251 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4252 save_libobjs=$libobjs
4253 fi
4254 save_output=$output
4255 output_la=`$echo "X$output" | $Xsed -e "$basename"`
4256
4257 # Clear the reloadable object creation command queue and
4258 # initialize k to one.
4259 test_cmds=
4260 concat_cmds=
4261 objlist=
4262 delfiles=
4263 last_robj=
4264 k=1
4265 output=$output_objdir/$output_la-${k}.$objext
4266 # Loop over the list of objects to be linked.
4267 for obj in $save_libobjs
4268 do
4269 eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4270 if test "X$objlist" = X ||
4271 { len=`expr "X$test_cmds" : ".*"` &&
4272 test "$len" -le "$max_cmd_len"; }; then
4273 objlist="$objlist $obj"
4274 else
4275 # The command $test_cmds is almost too long, add a
4276 # command to the queue.
4277 if test "$k" -eq 1 ; then
4278 # The first file doesn't have a previous command to add.
4279 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4280 else
4281 # All subsequent reloadable object files will link in
4282 # the last one created.
4283 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4284 fi
4285 last_robj=$output_objdir/$output_la-${k}.$objext
4286 k=`expr $k + 1`
4287 output=$output_objdir/$output_la-${k}.$objext
4288 objlist=$obj
4289 len=1
4290 fi
4291 done
4292 # Handle the remaining objects by creating one last
4293 # reloadable object file. All subsequent reloadable object
4294 # files will link in the last one created.
4295 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4296 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4297
4298 if ${skipped_export-false}; then
4299 $show "generating symbol list for \`$libname.la'"
4300 export_symbols="$output_objdir/$libname.exp"
4301 $run $rm $export_symbols
4302 libobjs=$output
4303 # Append the command to create the export file.
4304 eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4305 fi
4306
4307 # Set up a command to remove the reloadable object files
4308 # after they are used.
4309 i=0
4310 while test "$i" -lt "$k"
4311 do
4312 i=`expr $i + 1`
4313 delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4314 done
4315
4316 $echo "creating a temporary reloadable object file: $output"
4317
4318 # Loop through the commands generated above and execute them.
4319 save_ifs="$IFS"; IFS='~'
4320 for cmd in $concat_cmds; do
4321 IFS="$save_ifs"
4322 $show "$cmd"
4323 $run eval "$cmd" || exit $?
4324 done
4325 IFS="$save_ifs"
4326
4327 libobjs=$output
4328 # Restore the value of output.
4329 output=$save_output
4330
4331 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4332 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4333 fi
4334 # Expand the library linking commands again to reset the
4335 # value of $libobjs for piecewise linking.
4336
4337 # Do each of the archive commands.
4338 if test "$module" = yes && test -n "$module_cmds" ; then
4339 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4340 cmds=$module_expsym_cmds
4341 else
4342 cmds=$module_cmds
4343 fi
4344 else
4345 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4346 cmds=$archive_expsym_cmds
4347 else
4348 cmds=$archive_cmds
4349 fi
4350 fi
4351
4352 # Append the command to remove the reloadable object files
4353 # to the just-reset $cmds.
4354 eval cmds=\"\$cmds~\$rm $delfiles\"
4355 fi
4356 save_ifs="$IFS"; IFS='~'
4357 for cmd in $cmds; do
4358 IFS="$save_ifs"
4359 eval cmd=\"$cmd\"
4360 $show "$cmd"
4361 $run eval "$cmd" || exit $?
4362 done
4363 IFS="$save_ifs"
4364
4365 # Restore the uninstalled library and exit
4366 if test "$mode" = relink; then
4367 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4368 exit $EXIT_SUCCESS
4369 fi
4370
4371 # Create links to the real library.
4372 for linkname in $linknames; do
4373 if test "$realname" != "$linkname"; then
4374 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4375 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4376 fi
4377 done
4378
4379 # If -module or -export-dynamic was specified, set the dlname.
4380 if test "$module" = yes || test "$export_dynamic" = yes; then
4381 # On all known operating systems, these are identical.
4382 dlname="$soname"
4383 fi
4384 fi
4385 ;;
4386
4387 obj)
4388 if test -n "$deplibs"; then
4389 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4390 fi
4391
4392 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4393 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4394 fi
4395
4396 if test -n "$rpath"; then
4397 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4398 fi
4399
4400 if test -n "$xrpath"; then
4401 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4402 fi
4403
4404 if test -n "$vinfo"; then
4405 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4406 fi
4407
4408 if test -n "$release"; then
4409 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4410 fi
4411
4412 case $output in
4413 *.lo)
4414 if test -n "$objs$old_deplibs"; then
4415 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4416 exit $EXIT_FAILURE
4417 fi
4418 libobj="$output"
4419 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4420 ;;
4421 *)
4422 libobj=
4423 obj="$output"
4424 ;;
4425 esac
4426
4427 # Delete the old objects.
4428 $run $rm $obj $libobj
4429
4430 # Objects from convenience libraries. This assumes
4431 # single-version convenience libraries. Whenever we create
4432 # different ones for PIC/non-PIC, this we'll have to duplicate
4433 # the extraction.
4434 reload_conv_objs=
4435 gentop=
4436 # reload_cmds runs $LD directly, so let us get rid of
4437 # -Wl from whole_archive_flag_spec
4438 wl=
4439
4440 if test -n "$convenience"; then
4441 if test -n "$whole_archive_flag_spec"; then
4442 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4443 else
4444 gentop="$output_objdir/${obj}x"
4445 generated="$generated $gentop"
4446
4447 func_extract_archives $gentop $convenience
4448 reload_conv_objs="$reload_objs $func_extract_archives_result"
4449 fi
4450 fi
4451
4452 # Create the old-style object.
4453 reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
4454
4455 output="$obj"
4456 cmds=$reload_cmds
4457 save_ifs="$IFS"; IFS='~'
4458 for cmd in $cmds; do
4459 IFS="$save_ifs"
4460 eval cmd=\"$cmd\"
4461 $show "$cmd"
4462 $run eval "$cmd" || exit $?
4463 done
4464 IFS="$save_ifs"
4465
4466 # Exit if we aren't doing a library object file.
4467 if test -z "$libobj"; then
4468 if test -n "$gentop"; then
4469 $show "${rm}r $gentop"
4470 $run ${rm}r $gentop
4471 fi
4472
4473 exit $EXIT_SUCCESS
4474 fi
4475
4476 if test "$build_libtool_libs" != yes; then
4477 if test -n "$gentop"; then
4478 $show "${rm}r $gentop"
4479 $run ${rm}r $gentop
4480 fi
4481
4482 # Create an invalid libtool object if no PIC, so that we don't
4483 # accidentally link it into a program.
4484 # $show "echo timestamp > $libobj"
4485 # $run eval "echo timestamp > $libobj" || exit $?
4486 exit $EXIT_SUCCESS
4487 fi
4488
4489 if test -n "$pic_flag" || test "$pic_mode" != default; then
4490 # Only do commands if we really have different PIC objects.
4491 reload_objs="$libobjs $reload_conv_objs"
4492 output="$libobj"
4493 cmds=$reload_cmds
4494 save_ifs="$IFS"; IFS='~'
4495 for cmd in $cmds; do
4496 IFS="$save_ifs"
4497 eval cmd=\"$cmd\"
4498 $show "$cmd"
4499 $run eval "$cmd" || exit $?
4500 done
4501 IFS="$save_ifs"
4502 fi
4503
4504 if test -n "$gentop"; then
4505 $show "${rm}r $gentop"
4506 $run ${rm}r $gentop
4507 fi
4508
4509 exit $EXIT_SUCCESS
4510 ;;
4511
4512 prog)
4513 case $host in
4514 *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4515 esac
4516 if test -n "$vinfo"; then
4517 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4518 fi
4519
4520 if test -n "$release"; then
4521 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4522 fi
4523
4524 if test "$preload" = yes; then
4525 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4526 test "$dlopen_self_static" = unknown; then
4527 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4528 fi
4529 fi
4530
4531 case $host in
4532 *-*-rhapsody* | *-*-darwin1.[012])
4533 # On Rhapsody replace the C library is the System framework
4534 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4535 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4536 ;;
4537 esac
4538
4539 case $host in
4540 *darwin*)
4541 # Don't allow lazy linking, it breaks C++ global constructors
4542 if test "$tagname" = CXX ; then
4543 compile_command="$compile_command ${wl}-bind_at_load"
4544 finalize_command="$finalize_command ${wl}-bind_at_load"
4545 fi
4546 ;;
4547 esac
4548
4549 compile_command="$compile_command $compile_deplibs"
4550 finalize_command="$finalize_command $finalize_deplibs"
4551
4552 if test -n "$rpath$xrpath"; then
4553 # If the user specified any rpath flags, then add them.
4554 for libdir in $rpath $xrpath; do
4555 # This is the magic to use -rpath.
4556 case "$finalize_rpath " in
4557 *" $libdir "*) ;;
4558 *) finalize_rpath="$finalize_rpath $libdir" ;;
4559 esac
4560 done
4561 fi
4562
4563 # Now hardcode the library paths
4564 rpath=
4565 hardcode_libdirs=
4566 for libdir in $compile_rpath $finalize_rpath; do
4567 if test -n "$hardcode_libdir_flag_spec"; then
4568 if test -n "$hardcode_libdir_separator"; then
4569 if test -z "$hardcode_libdirs"; then
4570 hardcode_libdirs="$libdir"
4571 else
4572 # Just accumulate the unique libdirs.
4573 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4574 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4575 ;;
4576 *)
4577 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4578 ;;
4579 esac
4580 fi
4581 else
4582 eval flag=\"$hardcode_libdir_flag_spec\"
4583 rpath="$rpath $flag"
4584 fi
4585 elif test -n "$runpath_var"; then
4586 case "$perm_rpath " in
4587 *" $libdir "*) ;;
4588 *) perm_rpath="$perm_rpath $libdir" ;;
4589 esac
4590 fi
4591 case $host in
4592 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4593 case :$dllsearchpath: in
4594 *":$libdir:"*) ;;
4595 *) dllsearchpath="$dllsearchpath:$libdir";;
4596 esac
4597 ;;
4598 esac
4599 done
4600 # Substitute the hardcoded libdirs into the rpath.
4601 if test -n "$hardcode_libdir_separator" &&
4602 test -n "$hardcode_libdirs"; then
4603 libdir="$hardcode_libdirs"
4604 eval rpath=\" $hardcode_libdir_flag_spec\"
4605 fi
4606 compile_rpath="$rpath"
4607
4608 rpath=
4609 hardcode_libdirs=
4610 for libdir in $finalize_rpath; do
4611 if test -n "$hardcode_libdir_flag_spec"; then
4612 if test -n "$hardcode_libdir_separator"; then
4613 if test -z "$hardcode_libdirs"; then
4614 hardcode_libdirs="$libdir"
4615 else
4616 # Just accumulate the unique libdirs.
4617 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4618 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4619 ;;
4620 *)
4621 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4622 ;;
4623 esac
4624 fi
4625 else
4626 eval flag=\"$hardcode_libdir_flag_spec\"
4627 rpath="$rpath $flag"
4628 fi
4629 elif test -n "$runpath_var"; then
4630 case "$finalize_perm_rpath " in
4631 *" $libdir "*) ;;
4632 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4633 esac
4634 fi
4635 done
4636 # Substitute the hardcoded libdirs into the rpath.
4637 if test -n "$hardcode_libdir_separator" &&
4638 test -n "$hardcode_libdirs"; then
4639 libdir="$hardcode_libdirs"
4640 eval rpath=\" $hardcode_libdir_flag_spec\"
4641 fi
4642 finalize_rpath="$rpath"
4643
4644 if test -n "$libobjs" && test "$build_old_libs" = yes; then
4645 # Transform all the library objects into standard objects.
4646 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4647 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4648 fi
4649
4650 dlsyms=
4651 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4652 if test -n "$NM" && test -n "$global_symbol_pipe"; then
4653 dlsyms="${outputname}S.c"
4654 else
4655 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4656 fi
4657 fi
4658
4659 if test -n "$dlsyms"; then
4660 case $dlsyms in
4661 "") ;;
4662 *.c)
4663 # Discover the nlist of each of the dlfiles.
4664 nlist="$output_objdir/${outputname}.nm"
4665
4666 $show "$rm $nlist ${nlist}S ${nlist}T"
4667 $run $rm "$nlist" "${nlist}S" "${nlist}T"
4668
4669 # Parse the name list into a source file.
4670 $show "creating $output_objdir/$dlsyms"
4671
4672 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4673 /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4674 /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4675
4676 #ifdef __cplusplus
4677 extern \"C\" {
4678 #endif
4679
4680 /* Prevent the only kind of declaration conflicts we can make. */
4681 #define lt_preloaded_symbols some_other_symbol
4682
4683 /* External symbol declarations for the compiler. */\
4684 "
4685
4686 if test "$dlself" = yes; then
4687 $show "generating symbol list for \`$output'"
4688
4689 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4690
4691 # Add our own program objects to the symbol list.
4692 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4693 for arg in $progfiles; do
4694 $show "extracting global C symbols from \`$arg'"
4695 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4696 done
4697
4698 if test -n "$exclude_expsyms"; then
4699 $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4700 $run eval '$mv "$nlist"T "$nlist"'
4701 fi
4702
4703 if test -n "$export_symbols_regex"; then
4704 $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4705 $run eval '$mv "$nlist"T "$nlist"'
4706 fi
4707
4708 # Prepare the list of exported symbols
4709 if test -z "$export_symbols"; then
4710 export_symbols="$output_objdir/$outputname.exp"
4711 $run $rm $export_symbols
4712 $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4713 else
4714 $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4715 $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4716 $run eval 'mv "$nlist"T "$nlist"'
4717 fi
4718 fi
4719
4720 for arg in $dlprefiles; do
4721 $show "extracting global C symbols from \`$arg'"
4722 name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4723 $run eval '$echo ": $name " >> "$nlist"'
4724 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4725 done
4726
4727 if test -z "$run"; then
4728 # Make sure we have at least an empty file.
4729 test -f "$nlist" || : > "$nlist"
4730
4731 if test -n "$exclude_expsyms"; then
4732 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4733 $mv "$nlist"T "$nlist"
4734 fi
4735
4736 # Try sorting and uniquifying the output.
4737 if grep -v "^: " < "$nlist" |
4738 if sort -k 3 </dev/null >/dev/null 2>&1; then
4739 sort -k 3
4740 else
4741 sort +2
4742 fi |
4743 uniq > "$nlist"S; then
4744 :
4745 else
4746 grep -v "^: " < "$nlist" > "$nlist"S
4747 fi
4748
4749 if test -f "$nlist"S; then
4750 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4751 else
4752 $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4753 fi
4754
4755 $echo >> "$output_objdir/$dlsyms" "\
4756
4757 #undef lt_preloaded_symbols
4758
4759 #if defined (__STDC__) && __STDC__
4760 # define lt_ptr void *
4761 #else
4762 # define lt_ptr char *
4763 # define const
4764 #endif
4765
4766 /* The mapping between symbol names and symbols. */
4767 "
4768
4769 case $host in
4770 *cygwin* | *mingw* )
4771 $echo >> "$output_objdir/$dlsyms" "\
4772 /* DATA imports from DLLs on WIN32 can't be const, because
4773 runtime relocations are performed -- see ld's documentation
4774 on pseudo-relocs */
4775 struct {
4776 "
4777 ;;
4778 * )
4779 $echo >> "$output_objdir/$dlsyms" "\
4780 const struct {
4781 "
4782 ;;
4783 esac
4784
4785
4786 $echo >> "$output_objdir/$dlsyms" "\
4787 const char *name;
4788 lt_ptr address;
4789 }
4790 lt_preloaded_symbols[] =
4791 {\
4792 "
4793
4794 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4795
4796 $echo >> "$output_objdir/$dlsyms" "\
4797 {0, (lt_ptr) 0}
4798 };
4799
4800 /* This works around a problem in FreeBSD linker */
4801 #ifdef FREEBSD_WORKAROUND
4802 static const void *lt_preloaded_setup() {
4803 return lt_preloaded_symbols;
4804 }
4805 #endif
4806
4807 #ifdef __cplusplus
4808 }
4809 #endif\
4810 "
4811 fi
4812
4813 pic_flag_for_symtable=
4814 case $host in
4815 # compiling the symbol table file with pic_flag works around
4816 # a FreeBSD bug that causes programs to crash when -lm is
4817 # linked before any other PIC object. But we must not use
4818 # pic_flag when linking with -static. The problem exists in
4819 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4820 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4821 case "$compile_command " in
4822 *" -static "*) ;;
4823 *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4824 esac;;
4825 *-*-hpux*)
4826 case "$compile_command " in
4827 *" -static "*) ;;
4828 *) pic_flag_for_symtable=" $pic_flag";;
4829 esac
4830 esac
4831
4832 # Now compile the dynamic symbol file.
4833 $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4834 $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4835
4836 # Clean up the generated files.
4837 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4838 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4839
4840 # Transform the symbol file into the correct name.
4841 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4842 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4843 ;;
4844 *)
4845 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4846 exit $EXIT_FAILURE
4847 ;;
4848 esac
4849 else
4850 # We keep going just in case the user didn't refer to
4851 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
4852 # really was required.
4853
4854 # Nullify the symbol file.
4855 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4856 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4857 fi
4858
4859 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4860 # Replace the output file specification.
4861 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4862 link_command="$compile_command$compile_rpath"
4863
4864 # We have no uninstalled library dependencies, so finalize right now.
4865 $show "$link_command"
4866 $run eval "$link_command"
4867 status=$?
4868
4869 # Delete the generated files.
4870 if test -n "$dlsyms"; then
4871 $show "$rm $output_objdir/${outputname}S.${objext}"
4872 $run $rm "$output_objdir/${outputname}S.${objext}"
4873 fi
4874
4875 exit $status
4876 fi
4877
4878 if test -n "$shlibpath_var"; then
4879 # We should set the shlibpath_var
4880 rpath=
4881 for dir in $temp_rpath; do
4882 case $dir in
4883 [\\/]* | [A-Za-z]:[\\/]*)
4884 # Absolute path.
4885 rpath="$rpath$dir:"
4886 ;;
4887 *)
4888 # Relative path: add a thisdir entry.
4889 rpath="$rpath\$thisdir/$dir:"
4890 ;;
4891 esac
4892 done
4893 temp_rpath="$rpath"
4894 fi
4895
4896 if test -n "$compile_shlibpath$finalize_shlibpath"; then
4897 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4898 fi
4899 if test -n "$finalize_shlibpath"; then
4900 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4901 fi
4902
4903 compile_var=
4904 finalize_var=
4905 if test -n "$runpath_var"; then
4906 if test -n "$perm_rpath"; then
4907 # We should set the runpath_var.
4908 rpath=
4909 for dir in $perm_rpath; do
4910 rpath="$rpath$dir:"
4911 done
4912 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4913 fi
4914 if test -n "$finalize_perm_rpath"; then
4915 # We should set the runpath_var.
4916 rpath=
4917 for dir in $finalize_perm_rpath; do
4918 rpath="$rpath$dir:"
4919 done
4920 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4921 fi
4922 fi
4923
4924 if test "$no_install" = yes; then
4925 # We don't need to create a wrapper script.
4926 link_command="$compile_var$compile_command$compile_rpath"
4927 # Replace the output file specification.
4928 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4929 # Delete the old output file.
4930 $run $rm $output
4931 # Link the executable and exit
4932 $show "$link_command"
4933 $run eval "$link_command" || exit $?
4934 exit $EXIT_SUCCESS
4935 fi
4936
4937 if test "$hardcode_action" = relink; then
4938 # Fast installation is not supported
4939 link_command="$compile_var$compile_command$compile_rpath"
4940 relink_command="$finalize_var$finalize_command$finalize_rpath"
4941
4942 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4943 $echo "$modename: \`$output' will be relinked during installation" 1>&2
4944 else
4945 if test "$fast_install" != no; then
4946 link_command="$finalize_var$compile_command$finalize_rpath"
4947 if test "$fast_install" = yes; then
4948 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4949 else
4950 # fast_install is set to needless
4951 relink_command=
4952 fi
4953 else
4954 link_command="$compile_var$compile_command$compile_rpath"
4955 relink_command="$finalize_var$finalize_command$finalize_rpath"
4956 fi
4957 fi
4958
4959 # Replace the output file specification.
4960 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4961
4962 # Delete the old output files.
4963 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4964
4965 $show "$link_command"
4966 $run eval "$link_command" || exit $?
4967
4968 # Now create the wrapper script.
4969 $show "creating $output"
4970
4971 # Quote the relink command for shipping.
4972 if test -n "$relink_command"; then
4973 # Preserve any variables that may affect compiler behavior
4974 for var in $variables_saved_for_relink; do
4975 if eval test -z \"\${$var+set}\"; then
4976 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4977 elif eval var_value=\$$var; test -z "$var_value"; then
4978 relink_command="$var=; export $var; $relink_command"
4979 else
4980 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4981 relink_command="$var=\"$var_value\"; export $var; $relink_command"
4982 fi
4983 done
4984 relink_command="(cd `pwd`; $relink_command)"
4985 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4986 fi
4987
4988 # Quote $echo for shipping.
4989 if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4990 case $progpath in
4991 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4992 *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4993 esac
4994 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4995 else
4996 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4997 fi
4998
4999 # Only actually do things if our run command is non-null.
5000 if test -z "$run"; then
5001 # win32 will think the script is a binary if it has
5002 # a .exe suffix, so we strip it off here.
5003 case $output in
5004 *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
5005 esac
5006 # test for cygwin because mv fails w/o .exe extensions
5007 case $host in
5008 *cygwin*)
5009 exeext=.exe
5010 outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
5011 *) exeext= ;;
5012 esac
5013 case $host in
5014 *cygwin* | *mingw* )
5015 cwrappersource=`$echo ${objdir}/lt-${outputname}.c`
5016 cwrapper=`$echo ${output}.exe`
5017 $rm $cwrappersource $cwrapper
5018 trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
5019
5020 cat > $cwrappersource <<EOF
5021
5022 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
5023 Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5024
5025 The $output program cannot be directly executed until all the libtool
5026 libraries that it depends on are installed.
5027
5028 This wrapper executable should never be moved out of the build directory.
5029 If it is, it will not operate correctly.
5030
5031 Currently, it simply execs the wrapper *script* "/bin/sh $output",
5032 but could eventually absorb all of the scripts functionality and
5033 exec $objdir/$outputname directly.
5034 */
5035 EOF
5036 cat >> $cwrappersource<<"EOF"
5037 #include <stdio.h>
5038 #include <stdlib.h>
5039 #include <unistd.h>
5040 #include <malloc.h>
5041 #include <stdarg.h>
5042 #include <assert.h>
5043
5044 #if defined(PATH_MAX)
5045 # define LT_PATHMAX PATH_MAX
5046 #elif defined(MAXPATHLEN)
5047 # define LT_PATHMAX MAXPATHLEN
5048 #else
5049 # define LT_PATHMAX 1024
5050 #endif
5051
5052 #ifndef DIR_SEPARATOR
5053 #define DIR_SEPARATOR '/'
5054 #endif
5055
5056 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
5057 defined (__OS2__)
5058 #define HAVE_DOS_BASED_FILE_SYSTEM
5059 #ifndef DIR_SEPARATOR_2
5060 #define DIR_SEPARATOR_2 '\\'
5061 #endif
5062 #endif
5063
5064 #ifndef DIR_SEPARATOR_2
5065 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
5066 #else /* DIR_SEPARATOR_2 */
5067 # define IS_DIR_SEPARATOR(ch) \
5068 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
5069 #endif /* DIR_SEPARATOR_2 */
5070
5071 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
5072 #define XFREE(stale) do { \
5073 if (stale) { free ((void *) stale); stale = 0; } \
5074 } while (0)
5075
5076 const char *program_name = NULL;
5077
5078 void * xmalloc (size_t num);
5079 char * xstrdup (const char *string);
5080 char * basename (const char *name);
5081 char * fnqualify(const char *path);
5082 char * strendzap(char *str, const char *pat);
5083 void lt_fatal (const char *message, ...);
5084
5085 int
5086 main (int argc, char *argv[])
5087 {
5088 char **newargz;
5089 int i;
5090
5091 program_name = (char *) xstrdup ((char *) basename (argv[0]));
5092 newargz = XMALLOC(char *, argc+2);
5093 EOF
5094
5095 cat >> $cwrappersource <<EOF
5096 newargz[0] = "$SHELL";
5097 EOF
5098
5099 cat >> $cwrappersource <<"EOF"
5100 newargz[1] = fnqualify(argv[0]);
5101 /* we know the script has the same name, without the .exe */
5102 /* so make sure newargz[1] doesn't end in .exe */
5103 strendzap(newargz[1],".exe");
5104 for (i = 1; i < argc; i++)
5105 newargz[i+1] = xstrdup(argv[i]);
5106 newargz[argc+1] = NULL;
5107 EOF
5108
5109 cat >> $cwrappersource <<EOF
5110 execv("$SHELL",newargz);
5111 EOF
5112
5113 cat >> $cwrappersource <<"EOF"
5114 }
5115
5116 void *
5117 xmalloc (size_t num)
5118 {
5119 void * p = (void *) malloc (num);
5120 if (!p)
5121 lt_fatal ("Memory exhausted");
5122
5123 return p;
5124 }
5125
5126 char *
5127 xstrdup (const char *string)
5128 {
5129 return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5130 ;
5131 }
5132
5133 char *
5134 basename (const char *name)
5135 {
5136 const char *base;
5137
5138 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5139 /* Skip over the disk name in MSDOS pathnames. */
5140 if (isalpha (name[0]) && name[1] == ':')
5141 name += 2;
5142 #endif
5143
5144 for (base = name; *name; name++)
5145 if (IS_DIR_SEPARATOR (*name))
5146 base = name + 1;
5147 return (char *) base;
5148 }
5149
5150 char *
5151 fnqualify(const char *path)
5152 {
5153 size_t size;
5154 char *p;
5155 char tmp[LT_PATHMAX + 1];
5156
5157 assert(path != NULL);
5158
5159 /* Is it qualified already? */
5160 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5161 if (isalpha (path[0]) && path[1] == ':')
5162 return xstrdup (path);
5163 #endif
5164 if (IS_DIR_SEPARATOR (path[0]))
5165 return xstrdup (path);
5166
5167 /* prepend the current directory */
5168 /* doesn't handle '~' */
5169 if (getcwd (tmp, LT_PATHMAX) == NULL)
5170 lt_fatal ("getcwd failed");
5171 size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
5172 p = XMALLOC(char, size);
5173 sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
5174 return p;
5175 }
5176
5177 char *
5178 strendzap(char *str, const char *pat)
5179 {
5180 size_t len, patlen;
5181
5182 assert(str != NULL);
5183 assert(pat != NULL);
5184
5185 len = strlen(str);
5186 patlen = strlen(pat);
5187
5188 if (patlen <= len)
5189 {
5190 str += len - patlen;
5191 if (strcmp(str, pat) == 0)
5192 *str = '\0';
5193 }
5194 return str;
5195 }
5196
5197 static void
5198 lt_error_core (int exit_status, const char * mode,
5199 const char * message, va_list ap)
5200 {
5201 fprintf (stderr, "%s: %s: ", program_name, mode);
5202 vfprintf (stderr, message, ap);
5203 fprintf (stderr, ".\n");
5204
5205 if (exit_status >= 0)
5206 exit (exit_status);
5207 }
5208
5209 void
5210 lt_fatal (const char *message, ...)
5211 {
5212 va_list ap;
5213 va_start (ap, message);
5214 lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5215 va_end (ap);
5216 }
5217 EOF
5218 # we should really use a build-platform specific compiler
5219 # here, but OTOH, the wrappers (shell script and this C one)
5220 # are only useful if you want to execute the "real" binary.
5221 # Since the "real" binary is built for $host, then this
5222 # wrapper might as well be built for $host, too.
5223 $run $LTCC -s -o $cwrapper $cwrappersource
5224 ;;
5225 esac
5226 $rm $output
5227 trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5228
5229 $echo > $output "\
5230 #! $SHELL
5231
5232 # $output - temporary wrapper script for $objdir/$outputname
5233 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5234 #
5235 # The $output program cannot be directly executed until all the libtool
5236 # libraries that it depends on are installed.
5237 #
5238 # This wrapper script should never be moved out of the build directory.
5239 # If it is, it will not operate correctly.
5240
5241 # Sed substitution that helps us do robust quoting. It backslashifies
5242 # metacharacters that are still active within double-quoted strings.
5243 Xsed='${SED} -e 1s/^X//'
5244 sed_quote_subst='$sed_quote_subst'
5245
5246 # The HP-UX ksh and POSIX shell print the target directory to stdout
5247 # if CDPATH is set.
5248 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5249
5250 relink_command=\"$relink_command\"
5251
5252 # This environment variable determines our operation mode.
5253 if test \"\$libtool_install_magic\" = \"$magic\"; then
5254 # install mode needs the following variable:
5255 notinst_deplibs='$notinst_deplibs'
5256 else
5257 # When we are sourced in execute mode, \$file and \$echo are already set.
5258 if test \"\$libtool_execute_magic\" != \"$magic\"; then
5259 echo=\"$qecho\"
5260 file=\"\$0\"
5261 # Make sure echo works.
5262 if test \"X\$1\" = X--no-reexec; then
5263 # Discard the --no-reexec flag, and continue.
5264 shift
5265 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5266 # Yippee, \$echo works!
5267 :
5268 else
5269 # Restart under the correct shell, and then maybe \$echo will work.
5270 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5271 fi
5272 fi\
5273 "
5274 $echo >> $output "\
5275
5276 # Find the directory that this script lives in.
5277 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5278 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5279
5280 # Follow symbolic links until we get to the real thisdir.
5281 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5282 while test -n \"\$file\"; do
5283 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5284
5285 # If there was a directory component, then change thisdir.
5286 if test \"x\$destdir\" != \"x\$file\"; then
5287 case \"\$destdir\" in
5288 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5289 *) thisdir=\"\$thisdir/\$destdir\" ;;
5290 esac
5291 fi
5292
5293 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5294 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5295 done
5296
5297 # Try to get the absolute directory name.
5298 absdir=\`cd \"\$thisdir\" && pwd\`
5299 test -n \"\$absdir\" && thisdir=\"\$absdir\"
5300 "
5301
5302 if test "$fast_install" = yes; then
5303 $echo >> $output "\
5304 program=lt-'$outputname'$exeext
5305 progdir=\"\$thisdir/$objdir\"
5306
5307 if test ! -f \"\$progdir/\$program\" || \\
5308 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5309 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5310
5311 file=\"\$\$-\$program\"
5312
5313 if test ! -d \"\$progdir\"; then
5314 $mkdir \"\$progdir\"
5315 else
5316 $rm \"\$progdir/\$file\"
5317 fi"
5318
5319 $echo >> $output "\
5320
5321 # relink executable if necessary
5322 if test -n \"\$relink_command\"; then
5323 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5324 else
5325 $echo \"\$relink_command_output\" >&2
5326 $rm \"\$progdir/\$file\"
5327 exit $EXIT_FAILURE
5328 fi
5329 fi
5330
5331 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5332 { $rm \"\$progdir/\$program\";
5333 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5334 $rm \"\$progdir/\$file\"
5335 fi"
5336 else
5337 $echo >> $output "\
5338 program='$outputname'
5339 progdir=\"\$thisdir/$objdir\"
5340 "
5341 fi
5342
5343 $echo >> $output "\
5344
5345 if test -f \"\$progdir/\$program\"; then"
5346
5347 # Export our shlibpath_var if we have one.
5348 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5349 $echo >> $output "\
5350 # Add our own library path to $shlibpath_var
5351 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5352
5353 # Some systems cannot cope with colon-terminated $shlibpath_var
5354 # The second colon is a workaround for a bug in BeOS R4 sed
5355 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5356
5357 export $shlibpath_var
5358 "
5359 fi
5360
5361 # fixup the dll searchpath if we need to.
5362 if test -n "$dllsearchpath"; then
5363 $echo >> $output "\
5364 # Add the dll search path components to the executable PATH
5365 PATH=$dllsearchpath:\$PATH
5366 "
5367 fi
5368
5369 $echo >> $output "\
5370 if test \"\$libtool_execute_magic\" != \"$magic\"; then
5371 # Run the actual program with our arguments.
5372 "
5373 case $host in
5374 # Backslashes separate directories on plain windows
5375 *-*-mingw | *-*-os2*)
5376 $echo >> $output "\
5377 exec \$progdir\\\\\$program \${1+\"\$@\"}
5378 "
5379 ;;
5380
5381 *)
5382 $echo >> $output "\
5383 exec \$progdir/\$program \${1+\"\$@\"}
5384 "
5385 ;;
5386 esac
5387 $echo >> $output "\
5388 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5389 exit $EXIT_FAILURE
5390 fi
5391 else
5392 # The program doesn't exist.
5393 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
5394 \$echo \"This script is just a wrapper for \$program.\" 1>&2
5395 $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5396 exit $EXIT_FAILURE
5397 fi
5398 fi\
5399 "
5400 chmod +x $output
5401 fi
5402 exit $EXIT_SUCCESS
5403 ;;
5404 esac
5405
5406 # See if we need to build an old-fashioned archive.
5407 for oldlib in $oldlibs; do
5408
5409 if test "$build_libtool_libs" = convenience; then
5410 oldobjs="$libobjs_save"
5411 addlibs="$convenience"
5412 build_libtool_libs=no
5413 else
5414 if test "$build_libtool_libs" = module; then
5415 oldobjs="$libobjs_save"
5416 build_libtool_libs=no
5417 else
5418 oldobjs="$old_deplibs $non_pic_objects"
5419 fi
5420 addlibs="$old_convenience"
5421 fi
5422
5423 if test -n "$addlibs"; then
5424 gentop="$output_objdir/${outputname}x"
5425 generated="$generated $gentop"
5426
5427 func_extract_archives $gentop $addlibs
5428 oldobjs="$oldobjs $func_extract_archives_result"
5429 fi
5430
5431 # Do each command in the archive commands.
5432 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5433 cmds=$old_archive_from_new_cmds
5434 else
5435 # POSIX demands no paths to be encoded in archives. We have
5436 # to avoid creating archives with duplicate basenames if we
5437 # might have to extract them afterwards, e.g., when creating a
5438 # static archive out of a convenience library, or when linking
5439 # the entirety of a libtool archive into another (currently
5440 # not supported by libtool).
5441 if (for obj in $oldobjs
5442 do
5443 $echo "X$obj" | $Xsed -e 's%^.*/%%'
5444 done | sort | sort -uc >/dev/null 2>&1); then
5445 :
5446 else
5447 $echo "copying selected object files to avoid basename conflicts..."
5448
5449 if test -z "$gentop"; then
5450 gentop="$output_objdir/${outputname}x"
5451 generated="$generated $gentop"
5452
5453 $show "${rm}r $gentop"
5454 $run ${rm}r "$gentop"
5455 $show "$mkdir $gentop"
5456 $run $mkdir "$gentop"
5457 status=$?
5458 if test "$status" -ne 0 && test ! -d "$gentop"; then
5459 exit $status
5460 fi
5461 fi
5462
5463 save_oldobjs=$oldobjs
5464 oldobjs=
5465 counter=1
5466 for obj in $save_oldobjs
5467 do
5468 objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5469 case " $oldobjs " in
5470 " ") oldobjs=$obj ;;
5471 *[\ /]"$objbase "*)
5472 while :; do
5473 # Make sure we don't pick an alternate name that also
5474 # overlaps.
5475 newobj=lt$counter-$objbase
5476 counter=`expr $counter + 1`
5477 case " $oldobjs " in
5478 *[\ /]"$newobj "*) ;;
5479 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
5480 esac
5481 done
5482 $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5483 $run ln "$obj" "$gentop/$newobj" ||
5484 $run cp "$obj" "$gentop/$newobj"
5485 oldobjs="$oldobjs $gentop/$newobj"
5486 ;;
5487 *) oldobjs="$oldobjs $obj" ;;
5488 esac
5489 done
5490 fi
5491
5492 eval cmds=\"$old_archive_cmds\"
5493
5494 if len=`expr "X$cmds" : ".*"` &&
5495 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5496 cmds=$old_archive_cmds
5497 else
5498 # the command line is too long to link in one step, link in parts
5499 $echo "using piecewise archive linking..."
5500 save_RANLIB=$RANLIB
5501 RANLIB=:
5502 objlist=
5503 concat_cmds=
5504 save_oldobjs=$oldobjs
5505
5506 # Is there a better way of finding the last object in the list?
5507 for obj in $save_oldobjs
5508 do
5509 last_oldobj=$obj
5510 done
5511 for obj in $save_oldobjs
5512 do
5513 oldobjs="$objlist $obj"
5514 objlist="$objlist $obj"
5515 eval test_cmds=\"$old_archive_cmds\"
5516 if len=`expr "X$test_cmds" : ".*"` &&
5517 test "$len" -le "$max_cmd_len"; then
5518 :
5519 else
5520 # the above command should be used before it gets too long
5521 oldobjs=$objlist
5522 if test "$obj" = "$last_oldobj" ; then
5523 RANLIB=$save_RANLIB
5524 fi
5525 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5526 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5527 objlist=
5528 fi
5529 done
5530 RANLIB=$save_RANLIB
5531 oldobjs=$objlist
5532 if test "X$oldobjs" = "X" ; then
5533 eval cmds=\"\$concat_cmds\"
5534 else
5535 eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5536 fi
5537 fi
5538 fi
5539 save_ifs="$IFS"; IFS='~'
5540 for cmd in $cmds; do
5541 eval cmd=\"$cmd\"
5542 IFS="$save_ifs"
5543 $show "$cmd"
5544 $run eval "$cmd" || exit $?
5545 done
5546 IFS="$save_ifs"
5547 done
5548
5549 if test -n "$generated"; then
5550 $show "${rm}r$generated"
5551 $run ${rm}r$generated
5552 fi
5553
5554 # Now create the libtool archive.
5555 case $output in
5556 *.la)
5557 old_library=
5558 test "$build_old_libs" = yes && old_library="$libname.$libext"
5559 $show "creating $output"
5560
5561 # Preserve any variables that may affect compiler behavior
5562 for var in $variables_saved_for_relink; do
5563 if eval test -z \"\${$var+set}\"; then
5564 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5565 elif eval var_value=\$$var; test -z "$var_value"; then
5566 relink_command="$var=; export $var; $relink_command"
5567 else
5568 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5569 relink_command="$var=\"$var_value\"; export $var; $relink_command"
5570 fi
5571 done
5572 # Quote the link command for shipping.
5573 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5574 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5575 if test "$hardcode_automatic" = yes ; then
5576 relink_command=
5577 fi
5578
5579
5580 # Only create the output if not a dry run.
5581 if test -z "$run"; then
5582 for installed in no yes; do
5583 if test "$installed" = yes; then
5584 if test -z "$install_libdir"; then
5585 break
5586 fi
5587 output="$output_objdir/$outputname"i
5588 # Replace all uninstalled libtool libraries with the installed ones
5589 newdependency_libs=
5590 for deplib in $dependency_libs; do
5591 case $deplib in
5592 *.la)
5593 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5594 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5595 if test -z "$libdir"; then
5596 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5597 exit $EXIT_FAILURE
5598 fi
5599 newdependency_libs="$newdependency_libs $libdir/$name"
5600 ;;
5601 *) newdependency_libs="$newdependency_libs $deplib" ;;
5602 esac
5603 done
5604 dependency_libs="$newdependency_libs"
5605 newdlfiles=
5606 for lib in $dlfiles; do
5607 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5608 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5609 if test -z "$libdir"; then
5610 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5611 exit $EXIT_FAILURE
5612 fi
5613 newdlfiles="$newdlfiles $libdir/$name"
5614 done
5615 dlfiles="$newdlfiles"
5616 newdlprefiles=
5617 for lib in $dlprefiles; do
5618 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5619 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5620 if test -z "$libdir"; then
5621 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5622 exit $EXIT_FAILURE
5623 fi
5624 newdlprefiles="$newdlprefiles $libdir/$name"
5625 done
5626 dlprefiles="$newdlprefiles"
5627 else
5628 newdlfiles=
5629 for lib in $dlfiles; do
5630 case $lib in
5631 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5632 *) abs=`pwd`"/$lib" ;;
5633 esac
5634 newdlfiles="$newdlfiles $abs"
5635 done
5636 dlfiles="$newdlfiles"
5637 newdlprefiles=
5638 for lib in $dlprefiles; do
5639 case $lib in
5640 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5641 *) abs=`pwd`"/$lib" ;;
5642 esac
5643 newdlprefiles="$newdlprefiles $abs"
5644 done
5645 dlprefiles="$newdlprefiles"
5646 fi
5647 $rm $output
5648 # place dlname in correct position for cygwin
5649 tdlname=$dlname
5650 case $host,$output,$installed,$module,$dlname in
5651 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5652 esac
5653 $echo > $output "\
5654 # $outputname - a libtool library file
5655 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5656 #
5657 # Please DO NOT delete this file!
5658 # It is necessary for linking the library.
5659
5660 # The name that we can dlopen(3).
5661 dlname='$tdlname'
5662
5663 # Names of this library.
5664 library_names='$library_names'
5665
5666 # The name of the static archive.
5667 old_library='$old_library'
5668
5669 # Libraries that this one depends upon.
5670 dependency_libs='$dependency_libs'
5671
5672 # Version information for $libname.
5673 current=$current
5674 age=$age
5675 revision=$revision
5676
5677 # Is this an already installed library?
5678 installed=$installed
5679
5680 # Should we warn about portability when linking against -modules?
5681 shouldnotlink=$module
5682
5683 # Files to dlopen/dlpreopen
5684 dlopen='$dlfiles'
5685 dlpreopen='$dlprefiles'
5686
5687 # Directory that this library needs to be installed in:
5688 libdir='$install_libdir'"
5689 if test "$installed" = no && test "$need_relink" = yes; then
5690 $echo >> $output "\
5691 relink_command=\"$relink_command\""
5692 fi
5693 done
5694 fi
5695
5696 # Do a symbolic link so that the libtool archive can be found in
5697 # LD_LIBRARY_PATH before the program is installed.
5698 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5699 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5700 ;;
5701 esac
5702 exit $EXIT_SUCCESS
5703 ;;
5704
5705 # libtool install mode
5706 install)
5707 modename="$modename: install"
5708
5709 # There may be an optional sh(1) argument at the beginning of
5710 # install_prog (especially on Windows NT).
5711 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5712 # Allow the use of GNU shtool's install command.
5713 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
5714 # Aesthetically quote it.
5715 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5716 case $arg in
5717 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
5718 arg="\"$arg\""
5719 ;;
5720 esac
5721 install_prog="$arg "
5722 arg="$1"
5723 shift
5724 else
5725 install_prog=
5726 arg="$nonopt"
5727 fi
5728
5729 # The real first argument should be the name of the installation program.
5730 # Aesthetically quote it.
5731 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5732 case $arg in
5733 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
5734 arg="\"$arg\""
5735 ;;
5736 esac
5737 install_prog="$install_prog$arg"
5738
5739 # We need to accept at least all the BSD install flags.
5740 dest=
5741 files=
5742 opts=
5743 prev=
5744 install_type=
5745 isdir=no
5746 stripme=
5747 for arg
5748 do
5749 if test -n "$dest"; then
5750 files="$files $dest"
5751 dest="$arg"
5752 continue
5753 fi
5754
5755 case $arg in
5756 -d) isdir=yes ;;
5757 -f) prev="-f" ;;
5758 -g) prev="-g" ;;
5759 -m) prev="-m" ;;
5760 -o) prev="-o" ;;
5761 -s)
5762 stripme=" -s"
5763 continue
5764 ;;
5765 -*) ;;
5766
5767 *)
5768 # If the previous option needed an argument, then skip it.
5769 if test -n "$prev"; then
5770 prev=
5771 else
5772 dest="$arg"
5773 continue
5774 fi
5775 ;;
5776 esac
5777
5778 # Aesthetically quote the argument.
5779 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5780 case $arg in
5781 *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
5782 arg="\"$arg\""
5783 ;;
5784 esac
5785 install_prog="$install_prog $arg"
5786 done
5787
5788 if test -z "$install_prog"; then
5789 $echo "$modename: you must specify an install program" 1>&2
5790 $echo "$help" 1>&2
5791 exit $EXIT_FAILURE
5792 fi
5793
5794 if test -n "$prev"; then
5795 $echo "$modename: the \`$prev' option requires an argument" 1>&2
5796 $echo "$help" 1>&2
5797 exit $EXIT_FAILURE
5798 fi
5799
5800 if test -z "$files"; then
5801 if test -z "$dest"; then
5802 $echo "$modename: no file or destination specified" 1>&2
5803 else
5804 $echo "$modename: you must specify a destination" 1>&2
5805 fi
5806 $echo "$help" 1>&2
5807 exit $EXIT_FAILURE
5808 fi
5809
5810 # Strip any trailing slash from the destination.
5811 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5812
5813 # Check to see that the destination is a directory.
5814 test -d "$dest" && isdir=yes
5815 if test "$isdir" = yes; then
5816 destdir="$dest"
5817 destname=
5818 else
5819 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5820 test "X$destdir" = "X$dest" && destdir=.
5821 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5822
5823 # Not a directory, so check to see that there is only one file specified.
5824 set dummy $files
5825 if test "$#" -gt 2; then
5826 $echo "$modename: \`$dest' is not a directory" 1>&2
5827 $echo "$help" 1>&2
5828 exit $EXIT_FAILURE
5829 fi
5830 fi
5831 case $destdir in
5832 [\\/]* | [A-Za-z]:[\\/]*) ;;
5833 *)
5834 for file in $files; do
5835 case $file in
5836 *.lo) ;;
5837 *)
5838 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5839 $echo "$help" 1>&2
5840 exit $EXIT_FAILURE
5841 ;;
5842 esac
5843 done
5844 ;;
5845 esac
5846
5847 # This variable tells wrapper scripts just to set variables rather
5848 # than running their programs.
5849 libtool_install_magic="$magic"
5850
5851 staticlibs=
5852 future_libdirs=
5853 current_libdirs=
5854 for file in $files; do
5855
5856 # Do each installation.
5857 case $file in
5858 *.$libext)
5859 # Do the static libraries later.
5860 staticlibs="$staticlibs $file"
5861 ;;
5862
5863 *.la)
5864 # Check to see that this really is a libtool archive.
5865 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5866 else
5867 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5868 $echo "$help" 1>&2
5869 exit $EXIT_FAILURE
5870 fi
5871
5872 library_names=
5873 old_library=
5874 relink_command=
5875 # If there is no directory component, then add one.
5876 case $file in
5877 */* | *\\*) . $file ;;
5878 *) . ./$file ;;
5879 esac
5880
5881 # Add the libdir to current_libdirs if it is the destination.
5882 if test "X$destdir" = "X$libdir"; then
5883 case "$current_libdirs " in
5884 *" $libdir "*) ;;
5885 *) current_libdirs="$current_libdirs $libdir" ;;
5886 esac
5887 else
5888 # Note the libdir as a future libdir.
5889 case "$future_libdirs " in
5890 *" $libdir "*) ;;
5891 *) future_libdirs="$future_libdirs $libdir" ;;
5892 esac
5893 fi
5894
5895 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5896 test "X$dir" = "X$file/" && dir=
5897 dir="$dir$objdir"
5898
5899 if test -n "$relink_command"; then
5900 # Determine the prefix the user has applied to our future dir.
5901 inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5902
5903 # Don't allow the user to place us outside of our expected
5904 # location b/c this prevents finding dependent libraries that
5905 # are installed to the same prefix.
5906 # At present, this check doesn't affect windows .dll's that
5907 # are installed into $libdir/../bin (currently, that works fine)
5908 # but it's something to keep an eye on.
5909 if test "$inst_prefix_dir" = "$destdir"; then
5910 $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5911 exit $EXIT_FAILURE
5912 fi
5913
5914 if test -n "$inst_prefix_dir"; then
5915 # Stick the inst_prefix_dir data into the link command.
5916 relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5917 else
5918 relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5919 fi
5920
5921 $echo "$modename: warning: relinking \`$file'" 1>&2
5922 $show "$relink_command"
5923 if $run eval "$relink_command"; then :
5924 else
5925 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5926 exit $EXIT_FAILURE
5927 fi
5928 fi
5929
5930 # See the names of the shared library.
5931 set dummy $library_names
5932 if test -n "$2"; then
5933 realname="$2"
5934 shift
5935 shift
5936
5937 srcname="$realname"
5938 test -n "$relink_command" && srcname="$realname"T
5939
5940 # Install the shared library and build the symlinks.
5941 $show "$install_prog $dir/$srcname $destdir/$realname"
5942 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5943 if test -n "$stripme" && test -n "$striplib"; then
5944 $show "$striplib $destdir/$realname"
5945 $run eval "$striplib $destdir/$realname" || exit $?
5946 fi
5947
5948 if test "$#" -gt 0; then
5949 # Delete the old symlinks, and create new ones.
5950 for linkname
5951 do
5952 if test "$linkname" != "$realname"; then
5953 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5954 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
5955 fi
5956 done
5957 fi
5958
5959 # Do each command in the postinstall commands.
5960 lib="$destdir/$realname"
5961 cmds=$postinstall_cmds
5962 save_ifs="$IFS"; IFS='~'
5963 for cmd in $cmds; do
5964 IFS="$save_ifs"
5965 eval cmd=\"$cmd\"
5966 $show "$cmd"
5967 $run eval "$cmd" || exit $?
5968 done
5969 IFS="$save_ifs"
5970 fi
5971
5972 # Install the pseudo-library for information purposes.
5973 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5974 instname="$dir/$name"i
5975 $show "$install_prog $instname $destdir/$name"
5976 $run eval "$install_prog $instname $destdir/$name" || exit $?
5977
5978 # Maybe install the static library, too.
5979 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
5980 ;;
5981
5982 *.lo)
5983 # Install (i.e. copy) a libtool object.
5984
5985 # Figure out destination file name, if it wasn't already specified.
5986 if test -n "$destname"; then
5987 destfile="$destdir/$destname"
5988 else
5989 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5990 destfile="$destdir/$destfile"
5991 fi
5992
5993 # Deduce the name of the destination old-style object file.
5994 case $destfile in
5995 *.lo)
5996 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
5997 ;;
5998 *.$objext)
5999 staticdest="$destfile"
6000 destfile=
6001 ;;
6002 *)
6003 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6004 $echo "$help" 1>&2
6005 exit $EXIT_FAILURE
6006 ;;
6007 esac
6008
6009 # Install the libtool object if requested.
6010 if test -n "$destfile"; then
6011 $show "$install_prog $file $destfile"
6012 $run eval "$install_prog $file $destfile" || exit $?
6013 fi
6014
6015 # Install the old object if enabled.
6016 if test "$build_old_libs" = yes; then
6017 # Deduce the name of the old-style object file.
6018 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6019
6020 $show "$install_prog $staticobj $staticdest"
6021 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6022 fi
6023 exit $EXIT_SUCCESS
6024 ;;
6025
6026 *)
6027 # Figure out destination file name, if it wasn't already specified.
6028 if test -n "$destname"; then
6029 destfile="$destdir/$destname"
6030 else
6031 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6032 destfile="$destdir/$destfile"
6033 fi
6034
6035 # If the file is missing, and there is a .exe on the end, strip it
6036 # because it is most likely a libtool script we actually want to
6037 # install
6038 stripped_ext=""
6039 case $file in
6040 *.exe)
6041 if test ! -f "$file"; then
6042 file=`$echo $file|${SED} 's,.exe$,,'`
6043 stripped_ext=".exe"
6044 fi
6045 ;;
6046 esac
6047
6048 # Do a test to see if this is really a libtool program.
6049 case $host in
6050 *cygwin*|*mingw*)
6051 wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6052 ;;
6053 *)
6054 wrapper=$file
6055 ;;
6056 esac
6057 if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6058 notinst_deplibs=
6059 relink_command=
6060
6061 # To insure that "foo" is sourced, and not "foo.exe",
6062 # finese the cygwin/MSYS system by explicitly sourcing "foo."
6063 # which disallows the automatic-append-.exe behavior.
6064 case $build in
6065 *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
6066 *) wrapperdot=${wrapper} ;;
6067 esac
6068 # If there is no directory component, then add one.
6069 case $file in
6070 */* | *\\*) . ${wrapperdot} ;;
6071 *) . ./${wrapperdot} ;;
6072 esac
6073
6074 # Check the variables that should have been set.
6075 if test -z "$notinst_deplibs"; then
6076 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6077 exit $EXIT_FAILURE
6078 fi
6079
6080 finalize=yes
6081 for lib in $notinst_deplibs; do
6082 # Check to see that each library is installed.
6083 libdir=
6084 if test -f "$lib"; then
6085 # If there is no directory component, then add one.
6086 case $lib in
6087 */* | *\\*) . $lib ;;
6088 *) . ./$lib ;;
6089 esac
6090 fi
6091 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6092 if test -n "$libdir" && test ! -f "$libfile"; then
6093 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6094 finalize=no
6095 fi
6096 done
6097
6098 relink_command=
6099 # To insure that "foo" is sourced, and not "foo.exe",
6100 # finese the cygwin/MSYS system by explicitly sourcing "foo."
6101 # which disallows the automatic-append-.exe behavior.
6102 case $build in
6103 *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
6104 *) wrapperdot=${wrapper} ;;
6105 esac
6106 # If there is no directory component, then add one.
6107 case $file in
6108 */* | *\\*) . ${wrapperdot} ;;
6109 *) . ./${wrapperdot} ;;
6110 esac
6111
6112 outputname=
6113 if test "$fast_install" = no && test -n "$relink_command"; then
6114 if test "$finalize" = yes && test -z "$run"; then
6115 tmpdir="/tmp"
6116 test -n "$TMPDIR" && tmpdir="$TMPDIR"
6117 tmpdir="$tmpdir/libtool-$$"
6118 save_umask=`umask`
6119 umask 0077
6120 if $mkdir "$tmpdir"; then
6121 umask $save_umask
6122 else
6123 umask $save_umask
6124 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
6125 continue
6126 fi
6127 file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6128 outputname="$tmpdir/$file"
6129 # Replace the output file specification.
6130 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6131
6132 $show "$relink_command"
6133 if $run eval "$relink_command"; then :
6134 else
6135 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6136 ${rm}r "$tmpdir"
6137 continue
6138 fi
6139 file="$outputname"
6140 else
6141 $echo "$modename: warning: cannot relink \`$file'" 1>&2
6142 fi
6143 else
6144 # Install the binary that we compiled earlier.
6145 file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6146 fi
6147 fi
6148
6149 # remove .exe since cygwin /usr/bin/install will append another
6150 # one anyways
6151 case $install_prog,$host in
6152 */usr/bin/install*,*cygwin*)
6153 case $file:$destfile in
6154 *.exe:*.exe)
6155 # this is ok
6156 ;;
6157 *.exe:*)
6158 destfile=$destfile.exe
6159 ;;
6160 *:*.exe)
6161 destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6162 ;;
6163 esac
6164 ;;
6165 esac
6166 $show "$install_prog$stripme $file $destfile"
6167 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6168 test -n "$outputname" && ${rm}r "$tmpdir"
6169 ;;
6170 esac
6171 done
6172
6173 for file in $staticlibs; do
6174 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6175
6176 # Set up the ranlib parameters.
6177 oldlib="$destdir/$name"
6178
6179 $show "$install_prog $file $oldlib"
6180 $run eval "$install_prog \$file \$oldlib" || exit $?
6181
6182 if test -n "$stripme" && test -n "$old_striplib"; then
6183 $show "$old_striplib $oldlib"
6184 $run eval "$old_striplib $oldlib" || exit $?
6185 fi
6186
6187 # Do each command in the postinstall commands.
6188 cmds=$old_postinstall_cmds
6189 save_ifs="$IFS"; IFS='~'
6190 for cmd in $cmds; do
6191 IFS="$save_ifs"
6192 eval cmd=\"$cmd\"
6193 $show "$cmd"
6194 $run eval "$cmd" || exit $?
6195 done
6196 IFS="$save_ifs"
6197 done
6198
6199 if test -n "$future_libdirs"; then
6200 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6201 fi
6202
6203 if test -n "$current_libdirs"; then
6204 # Maybe just do a dry run.
6205 test -n "$run" && current_libdirs=" -n$current_libdirs"
6206 exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6207 else
6208 exit $EXIT_SUCCESS
6209 fi
6210 ;;
6211
6212 # libtool finish mode
6213 finish)
6214 modename="$modename: finish"
6215 libdirs="$nonopt"
6216 admincmds=
6217
6218 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6219 for dir
6220 do
6221 libdirs="$libdirs $dir"
6222 done
6223
6224 for libdir in $libdirs; do
6225 if test -n "$finish_cmds"; then
6226 # Do each command in the finish commands.
6227 cmds=$finish_cmds
6228 save_ifs="$IFS"; IFS='~'
6229 for cmd in $cmds; do
6230 IFS="$save_ifs"
6231 eval cmd=\"$cmd\"
6232 $show "$cmd"
6233 $run eval "$cmd" || admincmds="$admincmds
6234 $cmd"
6235 done
6236 IFS="$save_ifs"
6237 fi
6238 if test -n "$finish_eval"; then
6239 # Do the single finish_eval.
6240 eval cmds=\"$finish_eval\"
6241 $run eval "$cmds" || admincmds="$admincmds
6242 $cmds"
6243 fi
6244 done
6245 fi
6246
6247 # Exit here if they wanted silent mode.
6248 test "$show" = : && exit $EXIT_SUCCESS
6249
6250 $echo "----------------------------------------------------------------------"
6251 $echo "Libraries have been installed in:"
6252 for libdir in $libdirs; do
6253 $echo " $libdir"
6254 done
6255 $echo
6256 $echo "If you ever happen to want to link against installed libraries"
6257 $echo "in a given directory, LIBDIR, you must either use libtool, and"
6258 $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6259 $echo "flag during linking and do at least one of the following:"
6260 if test -n "$shlibpath_var"; then
6261 $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
6262 $echo " during execution"
6263 fi
6264 if test -n "$runpath_var"; then
6265 $echo " - add LIBDIR to the \`$runpath_var' environment variable"
6266 $echo " during linking"
6267 fi
6268 if test -n "$hardcode_libdir_flag_spec"; then
6269 libdir=LIBDIR
6270 eval flag=\"$hardcode_libdir_flag_spec\"
6271
6272 $echo " - use the \`$flag' linker flag"
6273 fi
6274 if test -n "$admincmds"; then
6275 $echo " - have your system administrator run these commands:$admincmds"
6276 fi
6277 if test -f /etc/ld.so.conf; then
6278 $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6279 fi
6280 $echo
6281 $echo "See any operating system documentation about shared libraries for"
6282 $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6283 $echo "----------------------------------------------------------------------"
6284 exit $EXIT_SUCCESS
6285 ;;
6286
6287 # libtool execute mode
6288 execute)
6289 modename="$modename: execute"
6290
6291 # The first argument is the command name.
6292 cmd="$nonopt"
6293 if test -z "$cmd"; then
6294 $echo "$modename: you must specify a COMMAND" 1>&2
6295 $echo "$help"
6296 exit $EXIT_FAILURE
6297 fi
6298
6299 # Handle -dlopen flags immediately.
6300 for file in $execute_dlfiles; do
6301 if test ! -f "$file"; then
6302 $echo "$modename: \`$file' is not a file" 1>&2
6303 $echo "$help" 1>&2
6304 exit $EXIT_FAILURE
6305 fi
6306
6307 dir=
6308 case $file in
6309 *.la)
6310 # Check to see that this really is a libtool archive.
6311 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6312 else
6313 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6314 $echo "$help" 1>&2
6315 exit $EXIT_FAILURE
6316 fi
6317
6318 # Read the libtool library.
6319 dlname=
6320 library_names=
6321
6322 # If there is no directory component, then add one.
6323 case $file in
6324 */* | *\\*) . $file ;;
6325 *) . ./$file ;;
6326 esac
6327
6328 # Skip this library if it cannot be dlopened.
6329 if test -z "$dlname"; then
6330 # Warn if it was a shared library.
6331 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6332 continue
6333 fi
6334
6335 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6336 test "X$dir" = "X$file" && dir=.
6337
6338 if test -f "$dir/$objdir/$dlname"; then
6339 dir="$dir/$objdir"
6340 else
6341 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6342 exit $EXIT_FAILURE
6343 fi
6344 ;;
6345
6346 *.lo)
6347 # Just add the directory containing the .lo file.
6348 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6349 test "X$dir" = "X$file" && dir=.
6350 ;;
6351
6352 *)
6353 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6354 continue
6355 ;;
6356 esac
6357
6358 # Get the absolute pathname.
6359 absdir=`cd "$dir" && pwd`
6360 test -n "$absdir" && dir="$absdir"
6361
6362 # Now add the directory to shlibpath_var.
6363 if eval "test -z \"\$$shlibpath_var\""; then
6364 eval "$shlibpath_var=\"\$dir\""
6365 else
6366 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6367 fi
6368 done
6369
6370 # This variable tells wrapper scripts just to set shlibpath_var
6371 # rather than running their programs.
6372 libtool_execute_magic="$magic"
6373
6374 # Check if any of the arguments is a wrapper script.
6375 args=
6376 for file
6377 do
6378 case $file in
6379 -*) ;;
6380 *)
6381 # Do a test to see if this is really a libtool program.
6382 if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6383 # If there is no directory component, then add one.
6384 case $file in
6385 */* | *\\*) . $file ;;
6386 *) . ./$file ;;
6387 esac
6388
6389 # Transform arg to wrapped name.
6390 file="$progdir/$program"
6391 fi
6392 ;;
6393 esac
6394 # Quote arguments (to preserve shell metacharacters).
6395 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6396 args="$args \"$file\""
6397 done
6398
6399 if test -z "$run"; then
6400 if test -n "$shlibpath_var"; then
6401 # Export the shlibpath_var.
6402 eval "export $shlibpath_var"
6403 fi
6404
6405 # Restore saved environment variables
6406 if test "${save_LC_ALL+set}" = set; then
6407 LC_ALL="$save_LC_ALL"; export LC_ALL
6408 fi
6409 if test "${save_LANG+set}" = set; then
6410 LANG="$save_LANG"; export LANG
6411 fi
6412
6413 # Now prepare to actually exec the command.
6414 exec_cmd="\$cmd$args"
6415 else
6416 # Display what would be done.
6417 if test -n "$shlibpath_var"; then
6418 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6419 $echo "export $shlibpath_var"
6420 fi
6421 $echo "$cmd$args"
6422 exit $EXIT_SUCCESS
6423 fi
6424 ;;
6425
6426 # libtool clean and uninstall mode
6427 clean | uninstall)
6428 modename="$modename: $mode"
6429 rm="$nonopt"
6430 files=
6431 rmforce=
6432 exit_status=0
6433
6434 # This variable tells wrapper scripts just to set variables rather
6435 # than running their programs.
6436 libtool_install_magic="$magic"
6437
6438 for arg
6439 do
6440 case $arg in
6441 -f) rm="$rm $arg"; rmforce=yes ;;
6442 -*) rm="$rm $arg" ;;
6443 *) files="$files $arg" ;;
6444 esac
6445 done
6446
6447 if test -z "$rm"; then
6448 $echo "$modename: you must specify an RM program" 1>&2
6449 $echo "$help" 1>&2
6450 exit $EXIT_FAILURE
6451 fi
6452
6453 rmdirs=
6454
6455 origobjdir="$objdir"
6456 for file in $files; do
6457 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6458 if test "X$dir" = "X$file"; then
6459 dir=.
6460 objdir="$origobjdir"
6461 else
6462 objdir="$dir/$origobjdir"
6463 fi
6464 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6465 test "$mode" = uninstall && objdir="$dir"
6466
6467 # Remember objdir for removal later, being careful to avoid duplicates
6468 if test "$mode" = clean; then
6469 case " $rmdirs " in
6470 *" $objdir "*) ;;
6471 *) rmdirs="$rmdirs $objdir" ;;
6472 esac
6473 fi
6474
6475 # Don't error if the file doesn't exist and rm -f was used.
6476 if (test -L "$file") >/dev/null 2>&1 \
6477 || (test -h "$file") >/dev/null 2>&1 \
6478 || test -f "$file"; then
6479 :
6480 elif test -d "$file"; then
6481 exit_status=1
6482 continue
6483 elif test "$rmforce" = yes; then
6484 continue
6485 fi
6486
6487 rmfiles="$file"
6488
6489 case $name in
6490 *.la)
6491 # Possibly a libtool archive, so verify it.
6492 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6493 . $dir/$name
6494
6495 # Delete the libtool libraries and symlinks.
6496 for n in $library_names; do
6497 rmfiles="$rmfiles $objdir/$n"
6498 done
6499 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6500 test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6501
6502 if test "$mode" = uninstall; then
6503 if test -n "$library_names"; then
6504 # Do each command in the postuninstall commands.
6505 cmds=$postuninstall_cmds
6506 save_ifs="$IFS"; IFS='~'
6507 for cmd in $cmds; do
6508 IFS="$save_ifs"
6509 eval cmd=\"$cmd\"
6510 $show "$cmd"
6511 $run eval "$cmd"
6512 if test "$?" -ne 0 && test "$rmforce" != yes; then
6513 exit_status=1
6514 fi
6515 done
6516 IFS="$save_ifs"
6517 fi
6518
6519 if test -n "$old_library"; then
6520 # Do each command in the old_postuninstall commands.
6521 cmds=$old_postuninstall_cmds
6522 save_ifs="$IFS"; IFS='~'
6523 for cmd in $cmds; do
6524 IFS="$save_ifs"
6525 eval cmd=\"$cmd\"
6526 $show "$cmd"
6527 $run eval "$cmd"
6528 if test "$?" -ne 0 && test "$rmforce" != yes; then
6529 exit_status=1
6530 fi
6531 done
6532 IFS="$save_ifs"
6533 fi
6534 # FIXME: should reinstall the best remaining shared library.
6535 fi
6536 fi
6537 ;;
6538
6539 *.lo)
6540 # Possibly a libtool object, so verify it.
6541 if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6542
6543 # Read the .lo file
6544 . $dir/$name
6545
6546 # Add PIC object to the list of files to remove.
6547 if test -n "$pic_object" \
6548 && test "$pic_object" != none; then
6549 rmfiles="$rmfiles $dir/$pic_object"
6550 fi
6551
6552 # Add non-PIC object to the list of files to remove.
6553 if test -n "$non_pic_object" \
6554 && test "$non_pic_object" != none; then
6555 rmfiles="$rmfiles $dir/$non_pic_object"
6556 fi
6557 fi
6558 ;;
6559
6560 *)
6561 if test "$mode" = clean ; then
6562 noexename=$name
6563 case $file in
6564 *.exe)
6565 file=`$echo $file|${SED} 's,.exe$,,'`
6566 noexename=`$echo $name|${SED} 's,.exe$,,'`
6567 # $file with .exe has already been added to rmfiles,
6568 # add $file without .exe
6569 rmfiles="$rmfiles $file"
6570 ;;
6571 esac
6572 # Do a test to see if this is a libtool program.
6573 if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6574 relink_command=
6575 . $dir/$noexename
6576
6577 # note $name still contains .exe if it was in $file originally
6578 # as does the version of $file that was added into $rmfiles
6579 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6580 if test "$fast_install" = yes && test -n "$relink_command"; then
6581 rmfiles="$rmfiles $objdir/lt-$name"
6582 fi
6583 if test "X$noexename" != "X$name" ; then
6584 rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6585 fi
6586 fi
6587 fi
6588 ;;
6589 esac
6590 $show "$rm $rmfiles"
6591 $run $rm $rmfiles || exit_status=1
6592 done
6593 objdir="$origobjdir"
6594
6595 # Try to remove the ${objdir}s in the directories where we deleted files
6596 for dir in $rmdirs; do
6597 if test -d "$dir"; then
6598 $show "rmdir $dir"
6599 $run rmdir $dir >/dev/null 2>&1
6600 fi
6601 done
6602
6603 exit $exit_status
6604 ;;
6605
6606 "")
6607 $echo "$modename: you must specify a MODE" 1>&2
6608 $echo "$generic_help" 1>&2
6609 exit $EXIT_FAILURE
6610 ;;
6611 esac
6612
6613 if test -z "$exec_cmd"; then
6614 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6615 $echo "$generic_help" 1>&2
6616 exit $EXIT_FAILURE
6617 fi
6618 fi # test -z "$show_help"
6619
6620 if test -n "$exec_cmd"; then
6621 eval exec $exec_cmd
6622 exit $EXIT_FAILURE
6623 fi
6624
6625 # We need to display help for each of the modes.
6626 case $mode in
6627 "") $echo \
6628 "Usage: $modename [OPTION]... [MODE-ARG]...
6629
6630 Provide generalized library-building support services.
6631
6632 --config show all configuration variables
6633 --debug enable verbose shell tracing
6634 -n, --dry-run display commands without modifying any files
6635 --features display basic configuration information and exit
6636 --finish same as \`--mode=finish'
6637 --help display this help message and exit
6638 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
6639 --quiet same as \`--silent'
6640 --silent don't print informational messages
6641 --tag=TAG use configuration variables from tag TAG
6642 --version print version information
6643
6644 MODE must be one of the following:
6645
6646 clean remove files from the build directory
6647 compile compile a source file into a libtool object
6648 execute automatically set library path, then run a program
6649 finish complete the installation of libtool libraries
6650 install install libraries or executables
6651 link create a library or an executable
6652 uninstall remove libraries from an installed directory
6653
6654 MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
6655 a more detailed description of MODE.
6656
6657 Report bugs to <bug-libtool@gnu.org>."
6658 exit $EXIT_SUCCESS
6659 ;;
6660
6661 clean)
6662 $echo \
6663 "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6664
6665 Remove files from the build directory.
6666
6667 RM is the name of the program to use to delete files associated with each FILE
6668 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6669 to RM.
6670
6671 If FILE is a libtool library, object or program, all the files associated
6672 with it are deleted. Otherwise, only FILE itself is deleted using RM."
6673 ;;
6674
6675 compile)
6676 $echo \
6677 "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6678
6679 Compile a source file into a libtool library object.
6680
6681 This mode accepts the following additional options:
6682
6683 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
6684 -prefer-pic try to building PIC objects only
6685 -prefer-non-pic try to building non-PIC objects only
6686 -static always build a \`.o' file suitable for static linking
6687
6688 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
6689 from the given SOURCEFILE.
6690
6691 The output file name is determined by removing the directory component from
6692 SOURCEFILE, then substituting the C source code suffix \`.c' with the
6693 library object suffix, \`.lo'."
6694 ;;
6695
6696 execute)
6697 $echo \
6698 "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6699
6700 Automatically set library path, then run a program.
6701
6702 This mode accepts the following additional options:
6703
6704 -dlopen FILE add the directory containing FILE to the library path
6705
6706 This mode sets the library path environment variable according to \`-dlopen'
6707 flags.
6708
6709 If any of the ARGS are libtool executable wrappers, then they are translated
6710 into their corresponding uninstalled binary, and any of their required library
6711 directories are added to the library path.
6712
6713 Then, COMMAND is executed, with ARGS as arguments."
6714 ;;
6715
6716 finish)
6717 $echo \
6718 "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6719
6720 Complete the installation of libtool libraries.
6721
6722 Each LIBDIR is a directory that contains libtool libraries.
6723
6724 The commands that this mode executes may require superuser privileges. Use
6725 the \`--dry-run' option if you just want to see what would be executed."
6726 ;;
6727
6728 install)
6729 $echo \
6730 "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6731
6732 Install executables or libraries.
6733
6734 INSTALL-COMMAND is the installation command. The first component should be
6735 either the \`install' or \`cp' program.
6736
6737 The rest of the components are interpreted as arguments to that command (only
6738 BSD-compatible install options are recognized)."
6739 ;;
6740
6741 link)
6742 $echo \
6743 "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6744
6745 Link object files or libraries together to form another library, or to
6746 create an executable program.
6747
6748 LINK-COMMAND is a command using the C compiler that you would use to create
6749 a program from several object files.
6750
6751 The following components of LINK-COMMAND are treated specially:
6752
6753 -all-static do not do any dynamic linking at all
6754 -avoid-version do not add a version suffix if possible
6755 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
6756 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
6757 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6758 -export-symbols SYMFILE
6759 try to export only the symbols listed in SYMFILE
6760 -export-symbols-regex REGEX
6761 try to export only the symbols matching REGEX
6762 -LLIBDIR search LIBDIR for required installed libraries
6763 -lNAME OUTPUT-FILE requires the installed library libNAME
6764 -module build a library that can dlopened
6765 -no-fast-install disable the fast-install mode
6766 -no-install link a not-installable executable
6767 -no-undefined declare that a library does not refer to external symbols
6768 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
6769 -objectlist FILE Use a list of object files found in FILE to specify objects
6770 -precious-files-regex REGEX
6771 don't remove output files matching REGEX
6772 -release RELEASE specify package release information
6773 -rpath LIBDIR the created library will eventually be installed in LIBDIR
6774 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
6775 -static do not do any dynamic linking of libtool libraries
6776 -version-info CURRENT[:REVISION[:AGE]]
6777 specify library version info [each variable defaults to 0]
6778
6779 All other options (arguments beginning with \`-') are ignored.
6780
6781 Every other argument is treated as a filename. Files ending in \`.la' are
6782 treated as uninstalled libtool libraries, other files are standard or library
6783 object files.
6784
6785 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6786 only library objects (\`.lo' files) may be specified, and \`-rpath' is
6787 required, except when creating a convenience library.
6788
6789 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6790 using \`ar' and \`ranlib', or on Windows using \`lib'.
6791
6792 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6793 is created, otherwise an executable program is created."
6794 ;;
6795
6796 uninstall)
6797 $echo \
6798 "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6799
6800 Remove libraries from an installation directory.
6801
6802 RM is the name of the program to use to delete files associated with each FILE
6803 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
6804 to RM.
6805
6806 If FILE is a libtool library, all the files associated with it are deleted.
6807 Otherwise, only FILE itself is deleted using RM."
6808 ;;
6809
6810 *)
6811 $echo "$modename: invalid operation mode \`$mode'" 1>&2
6812 $echo "$help" 1>&2
6813 exit $EXIT_FAILURE
6814 ;;
6815 esac
6816
6817 $echo
6818 $echo "Try \`$modename --help' for more information about other modes."
6819
6820 exit $?
6821
6822 # The TAGs below are defined such that we never get into a situation
6823 # in which we disable both kinds of libraries. Given conflicting
6824 # choices, we go for a static library, that is the most portable,
6825 # since we can't tell whether shared libraries were disabled because
6826 # the user asked for that or because the platform doesn't support
6827 # them. This is particularly important on AIX, because we don't
6828 # support having both static and shared libraries enabled at the same
6829 # time on that platform, so we default to a shared-only configuration.
6830 # If a disable-shared tag is given, we'll fallback to a static-only
6831 # configuration. But we'll never go from static-only to shared-only.
6832
6833 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6834 build_libtool_libs=no
6835 build_old_libs=yes
6836 # ### END LIBTOOL TAG CONFIG: disable-shared
6837
6838 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
6839 build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
6840 # ### END LIBTOOL TAG CONFIG: disable-static
6841
6842 # Local Variables:
6843 # mode:shell-script
6844 # sh-indentation:2
6845 # End:
6846 # ### BEGIN LIBTOOL TAG CONFIG: CXX
6847
6848 # Libtool was configured on host bunny:
6849
6850 # Shell to use when invoking shell scripts.
6851 SHELL="/bin/sh"
6852
6853 # Whether or not to build shared libraries.
6854 build_libtool_libs=yes
6855
6856 # Whether or not to build static libraries.
6857 build_old_libs=yes
6858
6859 # Whether or not to add -lc for building shared libraries.
6860 build_libtool_need_lc=no
6861
6862 # Whether or not to disallow shared libs when runtime libs are static
6863 allow_libtool_libs_with_static_runtimes=no
6864
6865 # Whether or not to optimize for fast installation.
6866 fast_install=yes
6867
6868 # The host system.
6869 host_alias=
6870 host=i686-pc-linux-gnu
6871 host_os=linux-gnu
6872
6873 # The build system.
6874 build_alias=
6875 build=i686-pc-linux-gnu
6876 build_os=linux-gnu
6877
6878 # An echo program that does not interpret backslashes.
6879 echo="echo"
6880
6881 # The archiver.
6882 AR="ar"
6883 AR_FLAGS="cru"
6884
6885 # A C compiler.
6886 LTCC="gcc"
6887
6888 # A language-specific compiler.
6889 CC="g++"
6890
6891 # Is the compiler the GNU C compiler?
6892 with_gcc=yes
6893
6894 # An ERE matcher.
6895 EGREP="grep -E"
6896
6897 # The linker used to build libraries.
6898 LD="/usr/bin/ld"
6899
6900 # Whether we need hard or soft links.
6901 LN_S="ln -s"
6902
6903 # A BSD-compatible nm program.
6904 NM="/usr/bin/nm -B"
6905
6906 # A symbol stripping program
6907 STRIP="strip"
6908
6909 # Used to examine libraries when file_magic_cmd begins "file"
6910 MAGIC_CMD=file
6911
6912 # Used on cygwin: DLL creation program.
6913 DLLTOOL="dlltool"
6914
6915 # Used on cygwin: object dumper.
6916 OBJDUMP="objdump"
6917
6918 # Used on cygwin: assembler.
6919 AS="as"
6920
6921 # The name of the directory that contains temporary libtool files.
6922 objdir=.libs
6923
6924 # How to create reloadable object files.
6925 reload_flag=" -r"
6926 reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
6927
6928 # How to pass a linker flag through the compiler.
6929 wl="-Wl,"
6930
6931 # Object file suffix (normally "o").
6932 objext="o"
6933
6934 # Old archive suffix (normally "a").
6935 libext="a"
6936
6937 # Shared library suffix (normally ".so").
6938 shrext_cmds='.so'
6939
6940 # Executable file suffix (normally "").
6941 exeext=""
6942
6943 # Additional compiler flags for building library objects.
6944 pic_flag=" -fPIC -DPIC"
6945 pic_mode=default
6946
6947 # What is the maximum length of a command?
6948 max_cmd_len=32768
6949
6950 # Does compiler simultaneously support -c and -o options?
6951 compiler_c_o="yes"
6952
6953 # Must we lock files when doing compilation?
6954 need_locks="no"
6955
6956 # Do we need the lib prefix for modules?
6957 need_lib_prefix=no
6958
6959 # Do we need a version for libraries?
6960 need_version=no
6961
6962 # Whether dlopen is supported.
6963 dlopen_support=unknown
6964
6965 # Whether dlopen of programs is supported.
6966 dlopen_self=unknown
6967
6968 # Whether dlopen of statically linked programs is supported.
6969 dlopen_self_static=unknown
6970
6971 # Compiler flag to prevent dynamic linking.
6972 link_static_flag="-static"
6973
6974 # Compiler flag to turn off builtin functions.
6975 no_builtin_flag=" -fno-builtin"
6976
6977 # Compiler flag to allow reflexive dlopens.
6978 export_dynamic_flag_spec="\${wl}--export-dynamic"
6979
6980 # Compiler flag to generate shared objects directly from archives.
6981 whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
6982
6983 # Compiler flag to generate thread-safe objects.
6984 thread_safe_flag_spec=""
6985
6986 # Library versioning type.
6987 version_type=linux
6988
6989 # Format of library name prefix.
6990 libname_spec="lib\$name"
6991
6992 # List of archive names. First name is the real one, the rest are links.
6993 # The last name is the one that the linker finds with -lNAME.
6994 library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
6995
6996 # The coded name of the library, if different from the real name.
6997 soname_spec="\${libname}\${release}\${shared_ext}\$major"
6998
6999 # Commands used to build and install an old-style archive.
7000 RANLIB="ranlib"
7001 old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
7002 old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
7003 old_postuninstall_cmds=""
7004
7005 # Create an old-style archive from a shared archive.
7006 old_archive_from_new_cmds=""
7007
7008 # Create a temporary old-style archive to link instead of a shared archive.
7009 old_archive_from_expsyms_cmds=""
7010
7011 # Commands used to build and install a shared archive.
7012 archive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
7013 archive_expsym_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-retain-symbols-file \$wl\$export_symbols -o \$lib"
7014 postinstall_cmds=""
7015 postuninstall_cmds=""
7016
7017 # Commands used to build a loadable module (assumed same as above if empty)
7018 module_cmds=""
7019 module_expsym_cmds=""
7020
7021 # Commands to strip libraries.
7022 old_striplib="strip --strip-debug"
7023 striplib="strip --strip-unneeded"
7024
7025 # Dependencies to place before the objects being linked to create a
7026 # shared library.
7027 predep_objects="/usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.0.3/crtbeginS.o"
7028
7029 # Dependencies to place after the objects being linked to create a
7030 # shared library.
7031 postdep_objects="/usr/lib/gcc/i486-linux-gnu/4.0.3/crtendS.o /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib/crtn.o"
7032
7033 # Dependencies to place before the objects being linked to create a
7034 # shared library.
7035 predeps=""
7036
7037 # Dependencies to place after the objects being linked to create a
7038 # shared library.
7039 postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
7040
7041 # The library search path used internally by the compiler when linking
7042 # a shared library.
7043 compiler_lib_search_path="-L/usr/lib/gcc/i486-linux-gnu/4.0.3 -L/usr/lib/gcc/i486-linux-gnu/4.0.3 -L/usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.0.3/../../.. -L/lib/../lib -L/usr/lib/../lib"
7044
7045 # Method to check whether dependent libraries are shared objects.
7046 deplibs_check_method="pass_all"
7047
7048 # Command to use when deplibs_check_method == file_magic.
7049 file_magic_cmd="\$MAGIC_CMD"
7050
7051 # Flag that allows shared libraries with undefined symbols to be built.
7052 allow_undefined_flag=""
7053
7054 # Flag that forces no undefined symbols.
7055 no_undefined_flag=""
7056
7057 # Commands used to finish a libtool library installation in a directory.
7058 finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
7059
7060 # Same as above, but a single script fragment to be evaled but not shown.
7061 finish_eval=""
7062
7063 # Take the output of nm and produce a listing of raw symbols and C names.
7064 global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
7065
7066 # Transform the output of nm in a proper C declaration
7067 global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
7068
7069 # Transform the output of nm in a C name address pair
7070 global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (lt_ptr) \\&\\2},/p'"
7071
7072 # This is the shared library runtime path variable.
7073 runpath_var=LD_RUN_PATH
7074
7075 # This is the shared library path variable.
7076 shlibpath_var=LD_LIBRARY_PATH
7077
7078 # Is shlibpath searched before the hard-coded library search path?
7079 shlibpath_overrides_runpath=no
7080
7081 # How to hardcode a shared library path into an executable.
7082 hardcode_action=immediate
7083
7084 # Whether we should hardcode library paths into libraries.
7085 hardcode_into_libs=yes
7086
7087 # Flag to hardcode $libdir into a binary during linking.
7088 # This must work even if $libdir does not exist.
7089 hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir"
7090
7091 # If ld is used when linking, flag to hardcode $libdir into
7092 # a binary during linking. This must work even if $libdir does
7093 # not exist.
7094 hardcode_libdir_flag_spec_ld=""
7095
7096 # Whether we need a single -rpath flag with a separated argument.
7097 hardcode_libdir_separator=""
7098
7099 # Set to yes if using DIR/libNAME during linking hardcodes DIR into the
7100 # resulting binary.
7101 hardcode_direct=no
7102
7103 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the
7104 # resulting binary.
7105 hardcode_minus_L=no
7106
7107 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
7108 # the resulting binary.
7109 hardcode_shlibpath_var=
7110
7111 # Set to yes if building a shared library automatically hardcodes DIR into the library
7112 # and all subsequent libraries and executables linked against it.
7113 hardcode_automatic=no
7114
7115 # Variables whose values should be saved in libtool wrapper scripts and
7116 # restored at relink time.
7117 variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
7118
7119 # Whether libtool must link a program against all its dependency libraries.
7120 link_all_deplibs=unknown
7121
7122 # Compile-time system search path for libraries
7123 sys_lib_search_path_spec=" /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../ /lib/i486-linux-gnu/4.0.3/ /lib/ /usr/lib/i486-linux-gnu/4.0.3/ /usr/lib/"
7124
7125 # Run-time system search path for libraries
7126 sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas "
7127
7128 # Fix the shell variable $srcfile for the compiler.
7129 fix_srcfile_path=""
7130
7131 # Set to yes if exported symbols are required.
7132 always_export_symbols=no
7133
7134 # The commands to list exported symbols.
7135 export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
7136
7137 # The commands to extract the exported symbol list from a shared archive.
7138 extract_expsyms_cmds=""
7139
7140 # Symbols that should not be listed in the preloaded symbols.
7141 exclude_expsyms=""
7142
7143 # Symbols that must always be exported.
7144 include_expsyms=""
7145
7146 # ### END LIBTOOL TAG CONFIG: CXX
7147

Repositories maintained by Peter Meerwald, pmeerw@pmeerw.net.