source: release-kits/shared/mac/gdbm-1.8.3/libtool@ 16455

Last change on this file since 16455 was 16455, checked in by oranfry, 16 years ago

a compiled gdbm for the mac installer. should leave it uncompiled, but for now just doing it the way the wiki says to.

  • Property svn:executable set to *
File size: 144.4 KB
Line 
1#! /bin/sh
2
3# libtool - Provide generalized library-building support services.
4# Generated automatically by (GNU )
5# NOTE: Changes made to this file will be lost: look at ltmain.sh.
6#
7# Copyright (C) 1996-2000 Free Software Foundation, Inc.
8# Originally by Gordon Matzigkeit <[email protected]>, 1996
9#
10# This program is free software; you can redistribute it and/or modify
11# it under the terms of the GNU General Public License as published by
12# the Free Software Foundation; either version 2 of the License, or
13# (at your option) any later version.
14#
15# This program is distributed in the hope that it will be useful, but
16# WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18# General Public License for more details.
19#
20# You should have received a copy of the GNU General Public License
21# along with this program; if not, write to the Free Software
22# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23#
24# As a special exception to the GNU General Public License, if you
25# distribute this file as part of a program that contains a
26# configuration script generated by Autoconf, you may include it under
27# the same distribution terms that you use for the rest of that program.
28
29# Sed that helps us avoid accidentally triggering echo(1) options like -n.
30Xsed="sed -e s/^X//"
31
32# The HP-UX ksh and POSIX shell print the target directory to stdout
33# if CDPATH is set.
34if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
35
36# ### BEGIN LIBTOOL CONFIG
37
38# Libtool was configured on host rata.cs.waikato.ac.nz:
39
40# Shell to use when invoking shell scripts.
41SHELL="/bin/sh"
42
43# Whether or not to build shared libraries.
44build_libtool_libs=no
45
46# Whether or not to build static libraries.
47build_old_libs=yes
48
49# Whether or not to add -lc for building shared libraries.
50build_libtool_need_lc=yes
51
52# Whether or not to optimize for fast installation.
53fast_install=needless
54
55# The host system.
56host_alias=
57host=i386-apple-darwin9.2.1
58
59# An echo program that does not interpret backslashes.
60echo="/bin/echo"
61
62# The archiver.
63AR="ar"
64AR_FLAGS="cru"
65
66# The default C compiler.
67CC="gcc"
68
69# Is the compiler the GNU C compiler?
70with_gcc=yes
71
72# The linker used to build libraries.
73LD="/usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld"
74
75# Whether we need hard or soft links.
76LN_S="ln -s"
77
78# A BSD-compatible nm program.
79NM="/usr/bin/nm -p"
80
81# A symbol stripping program
82STRIP=strip
83
84# Used to examine libraries when file_magic_cmd begins "file"
85MAGIC_CMD=file
86
87# Used on cygwin: DLL creation program.
88DLLTOOL="dlltool"
89
90# Used on cygwin: object dumper.
91OBJDUMP="objdump"
92
93# Used on cygwin: assembler.
94AS="as"
95
96# The name of the directory that contains temporary libtool files.
97objdir=.libs
98
99# How to create reloadable object files.
100reload_flag=" -r"
101reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
102
103# How to pass a linker flag through the compiler.
104wl="-Wl,"
105
106# Object file suffix (normally "o").
107objext="o"
108
109# Old archive suffix (normally "a").
110libext="a"
111
112# Executable file suffix (normally "").
113exeext=""
114
115# Additional compiler flags for building library objects.
116pic_flag=" -fno-common"
117pic_mode=default
118
119# Does compiler simultaneously support -c and -o options?
120compiler_c_o="yes"
121
122# Can we write directly to a .lo ?
123compiler_o_lo="yes"
124
125# Must we lock files when doing compilation ?
126need_locks="no"
127
128# Do we need the lib prefix for modules?
129need_lib_prefix=no
130
131# Do we need a version for libraries?
132need_version=no
133
134# Whether dlopen is supported.
135dlopen_support=unknown
136
137# Whether dlopen of programs is supported.
138dlopen_self=unknown
139
140# Whether dlopen of statically linked programs is supported.
141dlopen_self_static=unknown
142
143# Compiler flag to prevent dynamic linking.
144link_static_flag=""
145
146# Compiler flag to turn off builtin functions.
147no_builtin_flag=" -fno-builtin -fno-rtti -fno-exceptions"
148
149# Compiler flag to allow reflexive dlopens.
150export_dynamic_flag_spec=""
151
152# Compiler flag to generate shared objects directly from archives.
153whole_archive_flag_spec="-all_load \$convenience"
154
155# Compiler flag to generate thread-safe objects.
156thread_safe_flag_spec=""
157
158# Library versioning type.
159version_type=darwin
160
161# Format of library name prefix.
162libname_spec="lib\$name"
163
164# List of archive names. First name is the real one, the rest are links.
165# The last name is the one that the linker finds with -lNAME.
166library_names_spec="\${libname}\${release}\${versuffix}.\$(test .\$module = .yes && echo so || echo dylib) \${libname}\${release}\${major}.\$(test .\$module = .yes && echo so || echo dylib) \${libname}.\$(test .\$module = .yes && echo so || echo dylib)"
167
168# The coded name of the library, if different from the real name.
169soname_spec="\${libname}\${release}\${major}.\$(test .\$module = .yes && echo so || echo dylib)"
170
171# Commands used to build and install an old-style archive.
172RANLIB="ranlib"
173old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
174old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
175old_postuninstall_cmds=""
176
177# Create an old-style archive from a shared archive.
178old_archive_from_new_cmds=""
179
180# Create a temporary old-style archive to link instead of a shared archive.
181old_archive_from_expsyms_cmds=""
182
183# Commands used to build and install a shared archive.
184archive_cmds="\$nonopt \$(test \\\"x\$module\\\" = xyes && echo -bundle || echo -dynamiclib) \$allow_undefined_flag -o \$lib \$libobjs \$deplibs\$linker_flags -install_name \$rpath/\$soname \$verstring"
185archive_expsym_cmds=""
186postinstall_cmds=""
187postuninstall_cmds=""
188
189# Commands to strip libraries.
190old_striplib=""
191striplib=""
192
193# Method to check whether dependent libraries are shared objects.
194deplibs_check_method="file_magic Mach-O dynamically linked shared library"
195
196# Command to use when deplibs_check_method == file_magic.
197file_magic_cmd="/usr/bin/file -L"
198
199# Flag that allows shared libraries with undefined symbols to be built.
200allow_undefined_flag="-flat_namespace -undefined suppress"
201
202# Flag that forces no undefined symbols.
203no_undefined_flag=""
204
205# Commands used to finish a libtool library installation in a directory.
206finish_cmds=""
207
208# Same as above, but a single script fragment to be evaled but not shown.
209finish_eval=""
210
211# Take the output of nm and produce a listing of raw symbols and C names.
212global_symbol_pipe="sed -n -e 's/^.*[ ]\\([BCDEGRST][BCDEGRST]*\\)[ ][ ]*\\(_\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2\\3 \\3/p'"
213
214# Transform the output of nm in a proper C declaration
215global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern char \\1;/p'"
216
217# Transform the output of nm in a C name address pair
218global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (lt_ptr) \\&\\2},/p'"
219
220# This is the shared library runtime path variable.
221runpath_var=
222
223# This is the shared library path variable.
224shlibpath_var=DYLD_LIBRARY_PATH
225
226# Is shlibpath searched before the hard-coded library search path?
227shlibpath_overrides_runpath=yes
228
229# How to hardcode a shared library path into an executable.
230hardcode_action=unsupported
231
232# Whether we should hardcode library paths into libraries.
233hardcode_into_libs=no
234
235# Flag to hardcode $libdir into a binary during linking.
236# This must work even if $libdir does not exist.
237hardcode_libdir_flag_spec=""
238
239# Whether we need a single -rpath flag with a separated argument.
240hardcode_libdir_separator=""
241
242# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
243# resulting binary.
244hardcode_direct=yes
245
246# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
247# resulting binary.
248hardcode_minus_L=no
249
250# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
251# the resulting binary.
252hardcode_shlibpath_var=no
253
254# Variables whose values should be saved in libtool wrapper scripts and
255# restored at relink time.
256variables_saved_for_relink="PATH DYLD_LIBRARY_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
257
258# Whether libtool must link a program against all its dependency libraries.
259link_all_deplibs=unknown
260
261# Compile-time system search path for libraries
262sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
263
264# Run-time system search path for libraries
265sys_lib_dlsearch_path_spec="/lib /usr/lib"
266
267# Fix the shell variable $srcfile for the compiler.
268fix_srcfile_path=""
269
270# Set to yes if exported symbols are required.
271always_export_symbols=no
272
273# The commands to list exported symbols.
274export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | sed 's/.* //' | sort | uniq > \$export_symbols"
275
276# The commands to extract the exported symbol list from a shared archive.
277extract_expsyms_cmds=""
278
279# Symbols that should not be listed in the preloaded symbols.
280exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
281
282# Symbols that must always be exported.
283include_expsyms=""
284
285# ### END LIBTOOL CONFIG
286
287# ltmain.sh - Provide generalized library-building support services.
288# NOTE: Changing this file will not affect anything until you rerun configure.
289#
290# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
291# Free Software Foundation, Inc.
292# Originally by Gordon Matzigkeit <[email protected]>, 1996
293#
294# This program is free software; you can redistribute it and/or modify
295# it under the terms of the GNU General Public License as published by
296# the Free Software Foundation; either version 2 of the License, or
297# (at your option) any later version.
298#
299# This program is distributed in the hope that it will be useful, but
300# WITHOUT ANY WARRANTY; without even the implied warranty of
301# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
302# General Public License for more details.
303#
304# You should have received a copy of the GNU General Public License
305# along with this program; if not, write to the Free Software
306# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
307#
308# As a special exception to the GNU General Public License, if you
309# distribute this file as part of a program that contains a
310# configuration script generated by Autoconf, you may include it under
311# the same distribution terms that you use for the rest of that program.
312
313# Check that we have a working $echo.
314if test "X$1" = X--no-reexec; then
315 # Discard the --no-reexec flag, and continue.
316 shift
317elif test "X$1" = X--fallback-echo; then
318 # Avoid inline document here, it may be left over
319 :
320elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
321 # Yippee, $echo works!
322 :
323else
324 # Restart under the correct shell, and then maybe $echo will work.
325 exec $SHELL "$0" --no-reexec ${1+"$@"}
326fi
327
328if test "X$1" = X--fallback-echo; then
329 # used as fallback echo
330 shift
331 cat <<EOF
332$*
333EOF
334 exit 0
335fi
336
337# The name of this program.
338progname=`$echo "$0" | sed 's%^.*/%%'`
339modename="$progname"
340
341# Constants.
342PROGRAM=ltmain.sh
343PACKAGE=libtool
344VERSION=1.4.2
345TIMESTAMP=" (1.922.2.53 2001/09/11 03:18:52)"
346
347default_mode=
348help="Try \`$progname --help' for more information."
349magic="%%%MAGIC variable%%%"
350mkdir="mkdir"
351mv="mv -f"
352rm="rm -f"
353
354# Sed substitution that helps us do robust quoting. It backslashifies
355# metacharacters that are still active within double-quoted strings.
356Xsed='sed -e 1s/^X//'
357sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
358SP2NL='tr \040 \012'
359NL2SP='tr \015\012 \040\040'
360
361# NLS nuisances.
362# Only set LANG and LC_ALL to C if already set.
363# These must not be set unconditionally because not all systems understand
364# e.g. LANG=C (notably SCO).
365# We save the old values to restore during execute mode.
366if test "${LC_ALL+set}" = set; then
367 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
368fi
369if test "${LANG+set}" = set; then
370 save_LANG="$LANG"; LANG=C; export LANG
371fi
372
373# Make sure IFS has a sensible default
374: ${IFS=" "}
375
376if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
377 echo "$modename: not configured to build any kind of library" 1>&2
378 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
379 exit 1
380fi
381
382# Global variables.
383mode=$default_mode
384nonopt=
385prev=
386prevopt=
387run=
388show="$echo"
389show_help=
390execute_dlfiles=
391lo2o="s/\\.lo\$/.${objext}/"
392o2lo="s/\\.${objext}\$/.lo/"
393
394# Parse our command line options once, thoroughly.
395while test $# -gt 0
396do
397 arg="$1"
398 shift
399
400 case $arg in
401 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
402 *) optarg= ;;
403 esac
404
405 # If the previous option needs an argument, assign it.
406 if test -n "$prev"; then
407 case $prev in
408 execute_dlfiles)
409 execute_dlfiles="$execute_dlfiles $arg"
410 ;;
411 *)
412 eval "$prev=\$arg"
413 ;;
414 esac
415
416 prev=
417 prevopt=
418 continue
419 fi
420
421 # Have we seen a non-optional argument yet?
422 case $arg in
423 --help)
424 show_help=yes
425 ;;
426
427 --version)
428 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
429 exit 0
430 ;;
431
432 --config)
433 sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
434 exit 0
435 ;;
436
437 --debug)
438 echo "$progname: enabling shell trace mode"
439 set -x
440 ;;
441
442 --dry-run | -n)
443 run=:
444 ;;
445
446 --features)
447 echo "host: $host"
448 if test "$build_libtool_libs" = yes; then
449 echo "enable shared libraries"
450 else
451 echo "disable shared libraries"
452 fi
453 if test "$build_old_libs" = yes; then
454 echo "enable static libraries"
455 else
456 echo "disable static libraries"
457 fi
458 exit 0
459 ;;
460
461 --finish) mode="finish" ;;
462
463 --mode) prevopt="--mode" prev=mode ;;
464 --mode=*) mode="$optarg" ;;
465
466 --quiet | --silent)
467 show=:
468 ;;
469
470 -dlopen)
471 prevopt="-dlopen"
472 prev=execute_dlfiles
473 ;;
474
475 -*)
476 $echo "$modename: unrecognized option \`$arg'" 1>&2
477 $echo "$help" 1>&2
478 exit 1
479 ;;
480
481 *)
482 nonopt="$arg"
483 break
484 ;;
485 esac
486done
487
488if test -n "$prevopt"; then
489 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
490 $echo "$help" 1>&2
491 exit 1
492fi
493
494# If this variable is set in any of the actions, the command in it
495# will be execed at the end. This prevents here-documents from being
496# left over by shells.
497exec_cmd=
498
499if test -z "$show_help"; then
500
501 # Infer the operation mode.
502 if test -z "$mode"; then
503 case $nonopt in
504 *cc | *++ | gcc* | *-gcc*)
505 mode=link
506 for arg
507 do
508 case $arg in
509 -c)
510 mode=compile
511 break
512 ;;
513 esac
514 done
515 ;;
516 *db | *dbx | *strace | *truss)
517 mode=execute
518 ;;
519 *install*|cp|mv)
520 mode=install
521 ;;
522 *rm)
523 mode=uninstall
524 ;;
525 *)
526 # If we have no mode, but dlfiles were specified, then do execute mode.
527 test -n "$execute_dlfiles" && mode=execute
528
529 # Just use the default operation mode.
530 if test -z "$mode"; then
531 if test -n "$nonopt"; then
532 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
533 else
534 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
535 fi
536 fi
537 ;;
538 esac
539 fi
540
541 # Only execute mode is allowed to have -dlopen flags.
542 if test -n "$execute_dlfiles" && test "$mode" != execute; then
543 $echo "$modename: unrecognized option \`-dlopen'" 1>&2
544 $echo "$help" 1>&2
545 exit 1
546 fi
547
548 # Change the help message to a mode-specific one.
549 generic_help="$help"
550 help="Try \`$modename --help --mode=$mode' for more information."
551
552 # These modes are in order of execution frequency so that they run quickly.
553 case $mode in
554 # libtool compile mode
555 compile)
556 modename="$modename: compile"
557 # Get the compilation command and the source file.
558 base_compile=
559 prev=
560 lastarg=
561 srcfile="$nonopt"
562 suppress_output=
563
564 user_target=no
565 for arg
566 do
567 case $prev in
568 "") ;;
569 xcompiler)
570 # Aesthetically quote the previous argument.
571 prev=
572 lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
573
574 case $arg in
575 # Double-quote args containing other shell metacharacters.
576 # Many Bourne shells cannot handle close brackets correctly
577 # in scan sets, so we specify it separately.
578 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
579 arg="\"$arg\""
580 ;;
581 esac
582
583 # Add the previous argument to base_compile.
584 if test -z "$base_compile"; then
585 base_compile="$lastarg"
586 else
587 base_compile="$base_compile $lastarg"
588 fi
589 continue
590 ;;
591 esac
592
593 # Accept any command-line options.
594 case $arg in
595 -o)
596 if test "$user_target" != "no"; then
597 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
598 exit 1
599 fi
600 user_target=next
601 ;;
602
603 -static)
604 build_old_libs=yes
605 continue
606 ;;
607
608 -prefer-pic)
609 pic_mode=yes
610 continue
611 ;;
612
613 -prefer-non-pic)
614 pic_mode=no
615 continue
616 ;;
617
618 -Xcompiler)
619 prev=xcompiler
620 continue
621 ;;
622
623 -Wc,*)
624 args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
625 lastarg=
626 save_ifs="$IFS"; IFS=','
627 for arg in $args; do
628 IFS="$save_ifs"
629
630 # Double-quote args containing other shell metacharacters.
631 # Many Bourne shells cannot handle close brackets correctly
632 # in scan sets, so we specify it separately.
633 case $arg in
634 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
635 arg="\"$arg\""
636 ;;
637 esac
638 lastarg="$lastarg $arg"
639 done
640 IFS="$save_ifs"
641 lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
642
643 # Add the arguments to base_compile.
644 if test -z "$base_compile"; then
645 base_compile="$lastarg"
646 else
647 base_compile="$base_compile $lastarg"
648 fi
649 continue
650 ;;
651 esac
652
653 case $user_target in
654 next)
655 # The next one is the -o target name
656 user_target=yes
657 continue
658 ;;
659 yes)
660 # We got the output file
661 user_target=set
662 libobj="$arg"
663 continue
664 ;;
665 esac
666
667 # Accept the current argument as the source file.
668 lastarg="$srcfile"
669 srcfile="$arg"
670
671 # Aesthetically quote the previous argument.
672
673 # Backslashify any backslashes, double quotes, and dollar signs.
674 # These are the only characters that are still specially
675 # interpreted inside of double-quoted scrings.
676 lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
677
678 # Double-quote args containing other shell metacharacters.
679 # Many Bourne shells cannot handle close brackets correctly
680 # in scan sets, so we specify it separately.
681 case $lastarg in
682 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
683 lastarg="\"$lastarg\""
684 ;;
685 esac
686
687 # Add the previous argument to base_compile.
688 if test -z "$base_compile"; then
689 base_compile="$lastarg"
690 else
691 base_compile="$base_compile $lastarg"
692 fi
693 done
694
695 case $user_target in
696 set)
697 ;;
698 no)
699 # Get the name of the library object.
700 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
701 ;;
702 *)
703 $echo "$modename: you must specify a target with \`-o'" 1>&2
704 exit 1
705 ;;
706 esac
707
708 # Recognize several different file suffixes.
709 # If the user specifies -o file.o, it is replaced with file.lo
710 xform='[cCFSfmso]'
711 case $libobj in
712 *.ada) xform=ada ;;
713 *.adb) xform=adb ;;
714 *.ads) xform=ads ;;
715 *.asm) xform=asm ;;
716 *.c++) xform=c++ ;;
717 *.cc) xform=cc ;;
718 *.cpp) xform=cpp ;;
719 *.cxx) xform=cxx ;;
720 *.f90) xform=f90 ;;
721 *.for) xform=for ;;
722 esac
723
724 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
725
726 case $libobj in
727 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
728 *)
729 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
730 exit 1
731 ;;
732 esac
733
734 if test -z "$base_compile"; then
735 $echo "$modename: you must specify a compilation command" 1>&2
736 $echo "$help" 1>&2
737 exit 1
738 fi
739
740 # Delete any leftover library objects.
741 if test "$build_old_libs" = yes; then
742 removelist="$obj $libobj"
743 else
744 removelist="$libobj"
745 fi
746
747 $run $rm $removelist
748 trap "$run $rm $removelist; exit 1" 1 2 15
749
750 # On Cygwin there's no "real" PIC flag so we must build both object types
751 case $host_os in
752 cygwin* | mingw* | pw32* | os2*)
753 pic_mode=default
754 ;;
755 esac
756 if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
757 # non-PIC code in shared libraries is not supported
758 pic_mode=default
759 fi
760
761 # Calculate the filename of the output object if compiler does
762 # not support -o with -c
763 if test "$compiler_c_o" = no; then
764 output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
765 lockfile="$output_obj.lock"
766 removelist="$removelist $output_obj $lockfile"
767 trap "$run $rm $removelist; exit 1" 1 2 15
768 else
769 need_locks=no
770 lockfile=
771 fi
772
773 # Lock this critical section if it is needed
774 # We use this script file to make the link, it avoids creating a new file
775 if test "$need_locks" = yes; then
776 until $run ln "$0" "$lockfile" 2>/dev/null; do
777 $show "Waiting for $lockfile to be removed"
778 sleep 2
779 done
780 elif test "$need_locks" = warn; then
781 if test -f "$lockfile"; then
782 echo "\
783*** ERROR, $lockfile exists and contains:
784`cat $lockfile 2>/dev/null`
785
786This indicates that another process is trying to use the same
787temporary object file, and libtool could not work around it because
788your compiler does not support \`-c' and \`-o' together. If you
789repeat this compilation, it may succeed, by chance, but you had better
790avoid parallel builds (make -j) in this platform, or get a better
791compiler."
792
793 $run $rm $removelist
794 exit 1
795 fi
796 echo $srcfile > "$lockfile"
797 fi
798
799 if test -n "$fix_srcfile_path"; then
800 eval srcfile=\"$fix_srcfile_path\"
801 fi
802
803 # Only build a PIC object if we are building libtool libraries.
804 if test "$build_libtool_libs" = yes; then
805 # Without this assignment, base_compile gets emptied.
806 fbsd_hideous_sh_bug=$base_compile
807
808 if test "$pic_mode" != no; then
809 # All platforms use -DPIC, to notify preprocessed assembler code.
810 command="$base_compile $srcfile $pic_flag -DPIC"
811 else
812 # Don't build PIC code
813 command="$base_compile $srcfile"
814 fi
815 if test "$build_old_libs" = yes; then
816 lo_libobj="$libobj"
817 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
818 if test "X$dir" = "X$libobj"; then
819 dir="$objdir"
820 else
821 dir="$dir/$objdir"
822 fi
823 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
824
825 if test -d "$dir"; then
826 $show "$rm $libobj"
827 $run $rm $libobj
828 else
829 $show "$mkdir $dir"
830 $run $mkdir $dir
831 status=$?
832 if test $status -ne 0 && test ! -d $dir; then
833 exit $status
834 fi
835 fi
836 fi
837 if test "$compiler_o_lo" = yes; then
838 output_obj="$libobj"
839 command="$command -o $output_obj"
840 elif test "$compiler_c_o" = yes; then
841 output_obj="$obj"
842 command="$command -o $output_obj"
843 fi
844
845 $run $rm "$output_obj"
846 $show "$command"
847 if $run eval "$command"; then :
848 else
849 test -n "$output_obj" && $run $rm $removelist
850 exit 1
851 fi
852
853 if test "$need_locks" = warn &&
854 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
855 echo "\
856*** ERROR, $lockfile contains:
857`cat $lockfile 2>/dev/null`
858
859but it should contain:
860$srcfile
861
862This indicates that another process is trying to use the same
863temporary object file, and libtool could not work around it because
864your compiler does not support \`-c' and \`-o' together. If you
865repeat this compilation, it may succeed, by chance, but you had better
866avoid parallel builds (make -j) in this platform, or get a better
867compiler."
868
869 $run $rm $removelist
870 exit 1
871 fi
872
873 # Just move the object if needed, then go on to compile the next one
874 if test x"$output_obj" != x"$libobj"; then
875 $show "$mv $output_obj $libobj"
876 if $run $mv $output_obj $libobj; then :
877 else
878 error=$?
879 $run $rm $removelist
880 exit $error
881 fi
882 fi
883
884 # If we have no pic_flag, then copy the object into place and finish.
885 if (test -z "$pic_flag" || test "$pic_mode" != default) &&
886 test "$build_old_libs" = yes; then
887 # Rename the .lo from within objdir to obj
888 if test -f $obj; then
889 $show $rm $obj
890 $run $rm $obj
891 fi
892
893 $show "$mv $libobj $obj"
894 if $run $mv $libobj $obj; then :
895 else
896 error=$?
897 $run $rm $removelist
898 exit $error
899 fi
900
901 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
902 if test "X$xdir" = "X$obj"; then
903 xdir="."
904 else
905 xdir="$xdir"
906 fi
907 baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
908 libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
909 # Now arrange that obj and lo_libobj become the same file
910 $show "(cd $xdir && $LN_S $baseobj $libobj)"
911 if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
912 # Unlock the critical section if it was locked
913 if test "$need_locks" != no; then
914 $run $rm "$lockfile"
915 fi
916 exit 0
917 else
918 error=$?
919 $run $rm $removelist
920 exit $error
921 fi
922 fi
923
924 # Allow error messages only from the first compilation.
925 suppress_output=' >/dev/null 2>&1'
926 fi
927
928 # Only build a position-dependent object if we build old libraries.
929 if test "$build_old_libs" = yes; then
930 if test "$pic_mode" != yes; then
931 # Don't build PIC code
932 command="$base_compile $srcfile"
933 else
934 # All platforms use -DPIC, to notify preprocessed assembler code.
935 command="$base_compile $srcfile $pic_flag -DPIC"
936 fi
937 if test "$compiler_c_o" = yes; then
938 command="$command -o $obj"
939 output_obj="$obj"
940 fi
941
942 # Suppress compiler output if we already did a PIC compilation.
943 command="$command$suppress_output"
944 $run $rm "$output_obj"
945 $show "$command"
946 if $run eval "$command"; then :
947 else
948 $run $rm $removelist
949 exit 1
950 fi
951
952 if test "$need_locks" = warn &&
953 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
954 echo "\
955*** ERROR, $lockfile contains:
956`cat $lockfile 2>/dev/null`
957
958but it should contain:
959$srcfile
960
961This indicates that another process is trying to use the same
962temporary object file, and libtool could not work around it because
963your compiler does not support \`-c' and \`-o' together. If you
964repeat this compilation, it may succeed, by chance, but you had better
965avoid parallel builds (make -j) in this platform, or get a better
966compiler."
967
968 $run $rm $removelist
969 exit 1
970 fi
971
972 # Just move the object if needed
973 if test x"$output_obj" != x"$obj"; then
974 $show "$mv $output_obj $obj"
975 if $run $mv $output_obj $obj; then :
976 else
977 error=$?
978 $run $rm $removelist
979 exit $error
980 fi
981 fi
982
983 # Create an invalid libtool object if no PIC, so that we do not
984 # accidentally link it into a program.
985 if test "$build_libtool_libs" != yes; then
986 $show "echo timestamp > $libobj"
987 $run eval "echo timestamp > \$libobj" || exit $?
988 else
989 # Move the .lo from within objdir
990 $show "$mv $libobj $lo_libobj"
991 if $run $mv $libobj $lo_libobj; then :
992 else
993 error=$?
994 $run $rm $removelist
995 exit $error
996 fi
997 fi
998 fi
999
1000 # Unlock the critical section if it was locked
1001 if test "$need_locks" != no; then
1002 $run $rm "$lockfile"
1003 fi
1004
1005 exit 0
1006 ;;
1007
1008 # libtool link mode
1009 link | relink)
1010 modename="$modename: link"
1011 case $host in
1012 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1013 # It is impossible to link a dll without this setting, and
1014 # we shouldn't force the makefile maintainer to figure out
1015 # which system we are compiling for in order to pass an extra
1016 # flag for every libtool invokation.
1017 # allow_undefined=no
1018
1019 # FIXME: Unfortunately, there are problems with the above when trying
1020 # to make a dll which has undefined symbols, in which case not
1021 # even a static library is built. For now, we need to specify
1022 # -no-undefined on the libtool link line when we can be certain
1023 # that all symbols are satisfied, otherwise we get a static library.
1024 allow_undefined=yes
1025 ;;
1026 *)
1027 allow_undefined=yes
1028 ;;
1029 esac
1030 libtool_args="$nonopt"
1031 compile_command="$nonopt"
1032 finalize_command="$nonopt"
1033
1034 compile_rpath=
1035 finalize_rpath=
1036 compile_shlibpath=
1037 finalize_shlibpath=
1038 convenience=
1039 old_convenience=
1040 deplibs=
1041 old_deplibs=
1042 compiler_flags=
1043 linker_flags=
1044 dllsearchpath=
1045 lib_search_path=`pwd`
1046
1047 avoid_version=no
1048 dlfiles=
1049 dlprefiles=
1050 dlself=no
1051 export_dynamic=no
1052 export_symbols=
1053 export_symbols_regex=
1054 generated=
1055 libobjs=
1056 ltlibs=
1057 module=no
1058 no_install=no
1059 objs=
1060 prefer_static_libs=no
1061 preload=no
1062 prev=
1063 prevarg=
1064 release=
1065 rpath=
1066 xrpath=
1067 perm_rpath=
1068 temp_rpath=
1069 thread_safe=no
1070 vinfo=
1071
1072 # We need to know -static, to get the right output filenames.
1073 for arg
1074 do
1075 case $arg in
1076 -all-static | -static)
1077 if test "X$arg" = "X-all-static"; then
1078 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1079 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1080 fi
1081 if test -n "$link_static_flag"; then
1082 dlopen_self=$dlopen_self_static
1083 fi
1084 else
1085 if test -z "$pic_flag" && test -n "$link_static_flag"; then
1086 dlopen_self=$dlopen_self_static
1087 fi
1088 fi
1089 build_libtool_libs=no
1090 build_old_libs=yes
1091 prefer_static_libs=yes
1092 break
1093 ;;
1094 esac
1095 done
1096
1097 # See if our shared archives depend on static archives.
1098 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1099
1100 # Go through the arguments, transforming them on the way.
1101 while test $# -gt 0; do
1102 arg="$1"
1103 shift
1104 case $arg in
1105 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1106 qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1107 ;;
1108 *) qarg=$arg ;;
1109 esac
1110 libtool_args="$libtool_args $qarg"
1111
1112 # If the previous option needs an argument, assign it.
1113 if test -n "$prev"; then
1114 case $prev in
1115 output)
1116 compile_command="$compile_command @OUTPUT@"
1117 finalize_command="$finalize_command @OUTPUT@"
1118 ;;
1119 esac
1120
1121 case $prev in
1122 dlfiles|dlprefiles)
1123 if test "$preload" = no; then
1124 # Add the symbol object into the linking commands.
1125 compile_command="$compile_command @SYMFILE@"
1126 finalize_command="$finalize_command @SYMFILE@"
1127 preload=yes
1128 fi
1129 case $arg in
1130 *.la | *.lo) ;; # We handle these cases below.
1131 force)
1132 if test "$dlself" = no; then
1133 dlself=needless
1134 export_dynamic=yes
1135 fi
1136 prev=
1137 continue
1138 ;;
1139 self)
1140 if test "$prev" = dlprefiles; then
1141 dlself=yes
1142 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1143 dlself=yes
1144 else
1145 dlself=needless
1146 export_dynamic=yes
1147 fi
1148 prev=
1149 continue
1150 ;;
1151 *)
1152 if test "$prev" = dlfiles; then
1153 dlfiles="$dlfiles $arg"
1154 else
1155 dlprefiles="$dlprefiles $arg"
1156 fi
1157 prev=
1158 continue
1159 ;;
1160 esac
1161 ;;
1162 expsyms)
1163 export_symbols="$arg"
1164 if test ! -f "$arg"; then
1165 $echo "$modename: symbol file \`$arg' does not exist"
1166 exit 1
1167 fi
1168 prev=
1169 continue
1170 ;;
1171 expsyms_regex)
1172 export_symbols_regex="$arg"
1173 prev=
1174 continue
1175 ;;
1176 release)
1177 release="-$arg"
1178 prev=
1179 continue
1180 ;;
1181 rpath | xrpath)
1182 # We need an absolute path.
1183 case $arg in
1184 [\\/]* | [A-Za-z]:[\\/]*) ;;
1185 *)
1186 $echo "$modename: only absolute run-paths are allowed" 1>&2
1187 exit 1
1188 ;;
1189 esac
1190 if test "$prev" = rpath; then
1191 case "$rpath " in
1192 *" $arg "*) ;;
1193 *) rpath="$rpath $arg" ;;
1194 esac
1195 else
1196 case "$xrpath " in
1197 *" $arg "*) ;;
1198 *) xrpath="$xrpath $arg" ;;
1199 esac
1200 fi
1201 prev=
1202 continue
1203 ;;
1204 xcompiler)
1205 compiler_flags="$compiler_flags $qarg"
1206 prev=
1207 compile_command="$compile_command $qarg"
1208 finalize_command="$finalize_command $qarg"
1209 continue
1210 ;;
1211 xlinker)
1212 linker_flags="$linker_flags $qarg"
1213 compiler_flags="$compiler_flags $wl$qarg"
1214 prev=
1215 compile_command="$compile_command $wl$qarg"
1216 finalize_command="$finalize_command $wl$qarg"
1217 continue
1218 ;;
1219 *)
1220 eval "$prev=\"\$arg\""
1221 prev=
1222 continue
1223 ;;
1224 esac
1225 fi # test -n $prev
1226
1227 prevarg="$arg"
1228
1229 case $arg in
1230 -all-static)
1231 if test -n "$link_static_flag"; then
1232 compile_command="$compile_command $link_static_flag"
1233 finalize_command="$finalize_command $link_static_flag"
1234 fi
1235 continue
1236 ;;
1237
1238 -allow-undefined)
1239 # FIXME: remove this flag sometime in the future.
1240 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1241 continue
1242 ;;
1243
1244 -avoid-version)
1245 avoid_version=yes
1246 continue
1247 ;;
1248
1249 -dlopen)
1250 prev=dlfiles
1251 continue
1252 ;;
1253
1254 -dlpreopen)
1255 prev=dlprefiles
1256 continue
1257 ;;
1258
1259 -export-dynamic)
1260 export_dynamic=yes
1261 continue
1262 ;;
1263
1264 -export-symbols | -export-symbols-regex)
1265 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1266 $echo "$modename: more than one -exported-symbols argument is not allowed"
1267 exit 1
1268 fi
1269 if test "X$arg" = "X-export-symbols"; then
1270 prev=expsyms
1271 else
1272 prev=expsyms_regex
1273 fi
1274 continue
1275 ;;
1276
1277 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1278 # so, if we see these flags be careful not to treat them like -L
1279 -L[A-Z][A-Z]*:*)
1280 case $with_gcc/$host in
1281 no/*-*-irix*)
1282 compile_command="$compile_command $arg"
1283 finalize_command="$finalize_command $arg"
1284 ;;
1285 esac
1286 continue
1287 ;;
1288
1289 -L*)
1290 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1291 # We need an absolute path.
1292 case $dir in
1293 [\\/]* | [A-Za-z]:[\\/]*) ;;
1294 *)
1295 absdir=`cd "$dir" && pwd`
1296 if test -z "$absdir"; then
1297 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1298 exit 1
1299 fi
1300 dir="$absdir"
1301 ;;
1302 esac
1303 case "$deplibs " in
1304 *" -L$dir "*) ;;
1305 *)
1306 deplibs="$deplibs -L$dir"
1307 lib_search_path="$lib_search_path $dir"
1308 ;;
1309 esac
1310 case $host in
1311 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1312 case :$dllsearchpath: in
1313 *":$dir:"*) ;;
1314 *) dllsearchpath="$dllsearchpath:$dir";;
1315 esac
1316 ;;
1317 esac
1318 continue
1319 ;;
1320
1321 -l*)
1322 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1323 case $host in
1324 *-*-cygwin* | *-*-pw32* | *-*-beos*)
1325 # These systems don't actually have a C or math library (as such)
1326 continue
1327 ;;
1328 *-*-mingw* | *-*-os2*)
1329 # These systems don't actually have a C library (as such)
1330 test "X$arg" = "X-lc" && continue
1331 ;;
1332 *-*-openbsd*)
1333 # Do not include libc due to us having libc/libc_r.
1334 test "X$arg" = "X-lc" && continue
1335 ;;
1336 esac
1337 elif test "X$arg" = "X-lc_r"; then
1338 case $host in
1339 *-*-openbsd*)
1340 # Do not include libc_r directly, use -pthread flag.
1341 continue
1342 ;;
1343 esac
1344 fi
1345 deplibs="$deplibs $arg"
1346 continue
1347 ;;
1348
1349 -module)
1350 module=yes
1351 continue
1352 ;;
1353
1354 -no-fast-install)
1355 fast_install=no
1356 continue
1357 ;;
1358
1359 -no-install)
1360 case $host in
1361 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1362 # The PATH hackery in wrapper scripts is required on Windows
1363 # in order for the loader to find any dlls it needs.
1364 $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1365 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1366 fast_install=no
1367 ;;
1368 *) no_install=yes ;;
1369 esac
1370 continue
1371 ;;
1372
1373 -no-undefined)
1374 allow_undefined=no
1375 continue
1376 ;;
1377
1378 -o) prev=output ;;
1379
1380 -release)
1381 prev=release
1382 continue
1383 ;;
1384
1385 -rpath)
1386 prev=rpath
1387 continue
1388 ;;
1389
1390 -R)
1391 prev=xrpath
1392 continue
1393 ;;
1394
1395 -R*)
1396 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1397 # We need an absolute path.
1398 case $dir in
1399 [\\/]* | [A-Za-z]:[\\/]*) ;;
1400 *)
1401 $echo "$modename: only absolute run-paths are allowed" 1>&2
1402 exit 1
1403 ;;
1404 esac
1405 case "$xrpath " in
1406 *" $dir "*) ;;
1407 *) xrpath="$xrpath $dir" ;;
1408 esac
1409 continue
1410 ;;
1411
1412 -static)
1413 # The effects of -static are defined in a previous loop.
1414 # We used to do the same as -all-static on platforms that
1415 # didn't have a PIC flag, but the assumption that the effects
1416 # would be equivalent was wrong. It would break on at least
1417 # Digital Unix and AIX.
1418 continue
1419 ;;
1420
1421 -thread-safe)
1422 thread_safe=yes
1423 continue
1424 ;;
1425
1426 -version-info)
1427 prev=vinfo
1428 continue
1429 ;;
1430
1431 -Wc,*)
1432 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1433 arg=
1434 save_ifs="$IFS"; IFS=','
1435 for flag in $args; do
1436 IFS="$save_ifs"
1437 case $flag in
1438 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1439 flag="\"$flag\""
1440 ;;
1441 esac
1442 arg="$arg $wl$flag"
1443 compiler_flags="$compiler_flags $flag"
1444 done
1445 IFS="$save_ifs"
1446 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1447 ;;
1448
1449 -Wl,*)
1450 args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1451 arg=
1452 save_ifs="$IFS"; IFS=','
1453 for flag in $args; do
1454 IFS="$save_ifs"
1455 case $flag in
1456 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1457 flag="\"$flag\""
1458 ;;
1459 esac
1460 arg="$arg $wl$flag"
1461 compiler_flags="$compiler_flags $wl$flag"
1462 linker_flags="$linker_flags $flag"
1463 done
1464 IFS="$save_ifs"
1465 arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1466 ;;
1467
1468 -Xcompiler)
1469 prev=xcompiler
1470 continue
1471 ;;
1472
1473 -Xlinker)
1474 prev=xlinker
1475 continue
1476 ;;
1477
1478 # Some other compiler flag.
1479 -* | +*)
1480 # Unknown arguments in both finalize_command and compile_command need
1481 # to be aesthetically quoted because they are evaled later.
1482 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1483 case $arg in
1484 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1485 arg="\"$arg\""
1486 ;;
1487 esac
1488 ;;
1489
1490 *.lo | *.$objext)
1491 # A library or standard object.
1492 if test "$prev" = dlfiles; then
1493 # This file was specified with -dlopen.
1494 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1495 dlfiles="$dlfiles $arg"
1496 prev=
1497 continue
1498 else
1499 # If libtool objects are unsupported, then we need to preload.
1500 prev=dlprefiles
1501 fi
1502 fi
1503
1504 if test "$prev" = dlprefiles; then
1505 # Preload the old-style object.
1506 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1507 prev=
1508 else
1509 case $arg in
1510 *.lo) libobjs="$libobjs $arg" ;;
1511 *) objs="$objs $arg" ;;
1512 esac
1513 fi
1514 ;;
1515
1516 *.$libext)
1517 # An archive.
1518 deplibs="$deplibs $arg"
1519 old_deplibs="$old_deplibs $arg"
1520 continue
1521 ;;
1522
1523 *.la)
1524 # A libtool-controlled library.
1525
1526 if test "$prev" = dlfiles; then
1527 # This library was specified with -dlopen.
1528 dlfiles="$dlfiles $arg"
1529 prev=
1530 elif test "$prev" = dlprefiles; then
1531 # The library was specified with -dlpreopen.
1532 dlprefiles="$dlprefiles $arg"
1533 prev=
1534 else
1535 deplibs="$deplibs $arg"
1536 fi
1537 continue
1538 ;;
1539
1540 # Some other compiler argument.
1541 *)
1542 # Unknown arguments in both finalize_command and compile_command need
1543 # to be aesthetically quoted because they are evaled later.
1544 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1545 case $arg in
1546 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1547 arg="\"$arg\""
1548 ;;
1549 esac
1550 ;;
1551 esac # arg
1552
1553 # Now actually substitute the argument into the commands.
1554 if test -n "$arg"; then
1555 compile_command="$compile_command $arg"
1556 finalize_command="$finalize_command $arg"
1557 fi
1558 done # argument parsing loop
1559
1560 if test -n "$prev"; then
1561 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1562 $echo "$help" 1>&2
1563 exit 1
1564 fi
1565
1566 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1567 eval arg=\"$export_dynamic_flag_spec\"
1568 compile_command="$compile_command $arg"
1569 finalize_command="$finalize_command $arg"
1570 fi
1571
1572 # calculate the name of the file, without its directory
1573 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1574 libobjs_save="$libobjs"
1575
1576 if test -n "$shlibpath_var"; then
1577 # get the directories listed in $shlibpath_var
1578 eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1579 else
1580 shlib_search_path=
1581 fi
1582 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1583 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1584
1585 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1586 if test "X$output_objdir" = "X$output"; then
1587 output_objdir="$objdir"
1588 else
1589 output_objdir="$output_objdir/$objdir"
1590 fi
1591 # Create the object directory.
1592 if test ! -d $output_objdir; then
1593 $show "$mkdir $output_objdir"
1594 $run $mkdir $output_objdir
1595 status=$?
1596 if test $status -ne 0 && test ! -d $output_objdir; then
1597 exit $status
1598 fi
1599 fi
1600
1601 # Determine the type of output
1602 case $output in
1603 "")
1604 $echo "$modename: you must specify an output file" 1>&2
1605 $echo "$help" 1>&2
1606 exit 1
1607 ;;
1608 *.$libext) linkmode=oldlib ;;
1609 *.lo | *.$objext) linkmode=obj ;;
1610 *.la) linkmode=lib ;;
1611 *) linkmode=prog ;; # Anything else should be a program.
1612 esac
1613
1614 specialdeplibs=
1615 libs=
1616 # Find all interdependent deplibs by searching for libraries
1617 # that are linked more than once (e.g. -la -lb -la)
1618 for deplib in $deplibs; do
1619 case "$libs " in
1620 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1621 esac
1622 libs="$libs $deplib"
1623 done
1624 deplibs=
1625 newdependency_libs=
1626 newlib_search_path=
1627 need_relink=no # whether we're linking any uninstalled libtool libraries
1628 notinst_deplibs= # not-installed libtool libraries
1629 notinst_path= # paths that contain not-installed libtool libraries
1630 case $linkmode in
1631 lib)
1632 passes="conv link"
1633 for file in $dlfiles $dlprefiles; do
1634 case $file in
1635 *.la) ;;
1636 *)
1637 $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
1638 exit 1
1639 ;;
1640 esac
1641 done
1642 ;;
1643 prog)
1644 compile_deplibs=
1645 finalize_deplibs=
1646 alldeplibs=no
1647 newdlfiles=
1648 newdlprefiles=
1649 passes="conv scan dlopen dlpreopen link"
1650 ;;
1651 *) passes="conv"
1652 ;;
1653 esac
1654 for pass in $passes; do
1655 if test $linkmode = prog; then
1656 # Determine which files to process
1657 case $pass in
1658 dlopen)
1659 libs="$dlfiles"
1660 save_deplibs="$deplibs" # Collect dlpreopened libraries
1661 deplibs=
1662 ;;
1663 dlpreopen) libs="$dlprefiles" ;;
1664 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
1665 esac
1666 fi
1667 for deplib in $libs; do
1668 lib=
1669 found=no
1670 case $deplib in
1671 -l*)
1672 if test $linkmode = oldlib && test $linkmode = obj; then
1673 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
1674 continue
1675 fi
1676 if test $pass = conv; then
1677 deplibs="$deplib $deplibs"
1678 continue
1679 fi
1680 name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
1681 for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
1682 # Search the libtool library
1683 lib="$searchdir/lib${name}.la"
1684 if test -f "$lib"; then
1685 found=yes
1686 break
1687 fi
1688 done
1689 if test "$found" != yes; then
1690 # deplib doesn't seem to be a libtool library
1691 if test "$linkmode,$pass" = "prog,link"; then
1692 compile_deplibs="$deplib $compile_deplibs"
1693 finalize_deplibs="$deplib $finalize_deplibs"
1694 else
1695 deplibs="$deplib $deplibs"
1696 test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
1697 fi
1698 continue
1699 fi
1700 ;; # -l
1701 -L*)
1702 case $linkmode in
1703 lib)
1704 deplibs="$deplib $deplibs"
1705 test $pass = conv && continue
1706 newdependency_libs="$deplib $newdependency_libs"
1707 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1708 ;;
1709 prog)
1710 if test $pass = conv; then
1711 deplibs="$deplib $deplibs"
1712 continue
1713 fi
1714 if test $pass = scan; then
1715 deplibs="$deplib $deplibs"
1716 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1717 else
1718 compile_deplibs="$deplib $compile_deplibs"
1719 finalize_deplibs="$deplib $finalize_deplibs"
1720 fi
1721 ;;
1722 *)
1723 $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
1724 ;;
1725 esac # linkmode
1726 continue
1727 ;; # -L
1728 -R*)
1729 if test $pass = link; then
1730 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1731 # Make sure the xrpath contains only unique directories.
1732 case "$xrpath " in
1733 *" $dir "*) ;;
1734 *) xrpath="$xrpath $dir" ;;
1735 esac
1736 fi
1737 deplibs="$deplib $deplibs"
1738 continue
1739 ;;
1740 *.la) lib="$deplib" ;;
1741 *.$libext)
1742 if test $pass = conv; then
1743 deplibs="$deplib $deplibs"
1744 continue
1745 fi
1746 case $linkmode in
1747 lib)
1748 if test "$deplibs_check_method" != pass_all; then
1749 echo
1750 echo "*** Warning: This library needs some functionality provided by $deplib."
1751 echo "*** I have the capability to make that library automatically link in when"
1752 echo "*** you link to this library. But I can only do this if you have a"
1753 echo "*** shared version of the library, which you do not appear to have."
1754 else
1755 echo
1756 echo "*** Warning: Linking the shared library $output against the"
1757 echo "*** static library $deplib is not portable!"
1758 deplibs="$deplib $deplibs"
1759 fi
1760 continue
1761 ;;
1762 prog)
1763 if test $pass != link; then
1764 deplibs="$deplib $deplibs"
1765 else
1766 compile_deplibs="$deplib $compile_deplibs"
1767 finalize_deplibs="$deplib $finalize_deplibs"
1768 fi
1769 continue
1770 ;;
1771 esac # linkmode
1772 ;; # *.$libext
1773 *.lo | *.$objext)
1774 if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1775 # If there is no dlopen support or we're linking statically,
1776 # we need to preload.
1777 newdlprefiles="$newdlprefiles $deplib"
1778 compile_deplibs="$deplib $compile_deplibs"
1779 finalize_deplibs="$deplib $finalize_deplibs"
1780 else
1781 newdlfiles="$newdlfiles $deplib"
1782 fi
1783 continue
1784 ;;
1785 %DEPLIBS%)
1786 alldeplibs=yes
1787 continue
1788 ;;
1789 esac # case $deplib
1790 if test $found = yes || test -f "$lib"; then :
1791 else
1792 $echo "$modename: cannot find the library \`$lib'" 1>&2
1793 exit 1
1794 fi
1795
1796 # Check to see that this really is a libtool archive.
1797 if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1798 else
1799 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
1800 exit 1
1801 fi
1802
1803 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
1804 test "X$ladir" = "X$lib" && ladir="."
1805
1806 dlname=
1807 dlopen=
1808 dlpreopen=
1809 libdir=
1810 library_names=
1811 old_library=
1812 # If the library was installed with an old release of libtool,
1813 # it will not redefine variable installed.
1814 installed=yes
1815
1816 # Read the .la file
1817 case $lib in
1818 */* | *\\*) . $lib ;;
1819 *) . ./$lib ;;
1820 esac
1821
1822 if test "$linkmode,$pass" = "lib,link" ||
1823 test "$linkmode,$pass" = "prog,scan" ||
1824 { test $linkmode = oldlib && test $linkmode = obj; }; then
1825 # Add dl[pre]opened files of deplib
1826 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
1827 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
1828 fi
1829
1830 if test $pass = conv; then
1831 # Only check for convenience libraries
1832 deplibs="$lib $deplibs"
1833 if test -z "$libdir"; then
1834 if test -z "$old_library"; then
1835 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1836 exit 1
1837 fi
1838 # It is a libtool convenience library, so add in its objects.
1839 convenience="$convenience $ladir/$objdir/$old_library"
1840 old_convenience="$old_convenience $ladir/$objdir/$old_library"
1841 tmp_libs=
1842 for deplib in $dependency_libs; do
1843 deplibs="$deplib $deplibs"
1844 case "$tmp_libs " in
1845 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1846 esac
1847 tmp_libs="$tmp_libs $deplib"
1848 done
1849 elif test $linkmode != prog && test $linkmode != lib; then
1850 $echo "$modename: \`$lib' is not a convenience library" 1>&2
1851 exit 1
1852 fi
1853 continue
1854 fi # $pass = conv
1855
1856 # Get the name of the library we link against.
1857 linklib=
1858 for l in $old_library $library_names; do
1859 linklib="$l"
1860 done
1861 if test -z "$linklib"; then
1862 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
1863 exit 1
1864 fi
1865
1866 # This library was specified with -dlopen.
1867 if test $pass = dlopen; then
1868 if test -z "$libdir"; then
1869 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
1870 exit 1
1871 fi
1872 if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
1873 # If there is no dlname, no dlopen support or we're linking
1874 # statically, we need to preload.
1875 dlprefiles="$dlprefiles $lib"
1876 else
1877 newdlfiles="$newdlfiles $lib"
1878 fi
1879 continue
1880 fi # $pass = dlopen
1881
1882 # We need an absolute path.
1883 case $ladir in
1884 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
1885 *)
1886 abs_ladir=`cd "$ladir" && pwd`
1887 if test -z "$abs_ladir"; then
1888 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
1889 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1890 abs_ladir="$ladir"
1891 fi
1892 ;;
1893 esac
1894 laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
1895
1896 # Find the relevant object directory and library name.
1897 if test "X$installed" = Xyes; then
1898 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
1899 $echo "$modename: warning: library \`$lib' was moved." 1>&2
1900 dir="$ladir"
1901 absdir="$abs_ladir"
1902 libdir="$abs_ladir"
1903 else
1904 dir="$libdir"
1905 absdir="$libdir"
1906 fi
1907 else
1908 dir="$ladir/$objdir"
1909 absdir="$abs_ladir/$objdir"
1910 # Remove this search path later
1911 notinst_path="$notinst_path $abs_ladir"
1912 fi # $installed = yes
1913 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1914
1915 # This library was specified with -dlpreopen.
1916 if test $pass = dlpreopen; then
1917 if test -z "$libdir"; then
1918 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
1919 exit 1
1920 fi
1921 # Prefer using a static library (so that no silly _DYNAMIC symbols
1922 # are required to link).
1923 if test -n "$old_library"; then
1924 newdlprefiles="$newdlprefiles $dir/$old_library"
1925 # Otherwise, use the dlname, so that lt_dlopen finds it.
1926 elif test -n "$dlname"; then
1927 newdlprefiles="$newdlprefiles $dir/$dlname"
1928 else
1929 newdlprefiles="$newdlprefiles $dir/$linklib"
1930 fi
1931 fi # $pass = dlpreopen
1932
1933 if test -z "$libdir"; then
1934 # Link the convenience library
1935 if test $linkmode = lib; then
1936 deplibs="$dir/$old_library $deplibs"
1937 elif test "$linkmode,$pass" = "prog,link"; then
1938 compile_deplibs="$dir/$old_library $compile_deplibs"
1939 finalize_deplibs="$dir/$old_library $finalize_deplibs"
1940 else
1941 deplibs="$lib $deplibs"
1942 fi
1943 continue
1944 fi
1945
1946 if test $linkmode = prog && test $pass != link; then
1947 newlib_search_path="$newlib_search_path $ladir"
1948 deplibs="$lib $deplibs"
1949
1950 linkalldeplibs=no
1951 if test "$link_all_deplibs" != no || test -z "$library_names" ||
1952 test "$build_libtool_libs" = no; then
1953 linkalldeplibs=yes
1954 fi
1955
1956 tmp_libs=
1957 for deplib in $dependency_libs; do
1958 case $deplib in
1959 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
1960 esac
1961 # Need to link against all dependency_libs?
1962 if test $linkalldeplibs = yes; then
1963 deplibs="$deplib $deplibs"
1964 else
1965 # Need to hardcode shared library paths
1966 # or/and link against static libraries
1967 newdependency_libs="$deplib $newdependency_libs"
1968 fi
1969 case "$tmp_libs " in
1970 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
1971 esac
1972 tmp_libs="$tmp_libs $deplib"
1973 done # for deplib
1974 continue
1975 fi # $linkmode = prog...
1976
1977 link_static=no # Whether the deplib will be linked statically
1978 if test -n "$library_names" &&
1979 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1980 # Link against this shared library
1981
1982 if test "$linkmode,$pass" = "prog,link" ||
1983 { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
1984 # Hardcode the library path.
1985 # Skip directories that are in the system default run-time
1986 # search path.
1987 case " $sys_lib_dlsearch_path " in
1988 *" $absdir "*) ;;
1989 *)
1990 case "$compile_rpath " in
1991 *" $absdir "*) ;;
1992 *) compile_rpath="$compile_rpath $absdir"
1993 esac
1994 ;;
1995 esac
1996 case " $sys_lib_dlsearch_path " in
1997 *" $libdir "*) ;;
1998 *)
1999 case "$finalize_rpath " in
2000 *" $libdir "*) ;;
2001 *) finalize_rpath="$finalize_rpath $libdir"
2002 esac
2003 ;;
2004 esac
2005 if test $linkmode = prog; then
2006 # We need to hardcode the library path
2007 if test -n "$shlibpath_var"; then
2008 # Make sure the rpath contains only unique directories.
2009 case "$temp_rpath " in
2010 *" $dir "*) ;;
2011 *" $absdir "*) ;;
2012 *) temp_rpath="$temp_rpath $dir" ;;
2013 esac
2014 fi
2015 fi
2016 fi # $linkmode,$pass = prog,link...
2017
2018 if test "$alldeplibs" = yes &&
2019 { test "$deplibs_check_method" = pass_all ||
2020 { test "$build_libtool_libs" = yes &&
2021 test -n "$library_names"; }; }; then
2022 # We only need to search for static libraries
2023 continue
2024 fi
2025
2026 if test "$installed" = no; then
2027 notinst_deplibs="$notinst_deplibs $lib"
2028 need_relink=yes
2029 fi
2030
2031 if test -n "$old_archive_from_expsyms_cmds"; then
2032 # figure out the soname
2033 set dummy $library_names
2034 realname="$2"
2035 shift; shift
2036 libname=`eval \\$echo \"$libname_spec\"`
2037 # use dlname if we got it. it's perfectly good, no?
2038 if test -n "$dlname"; then
2039 soname="$dlname"
2040 elif test -n "$soname_spec"; then
2041 # bleh windows
2042 case $host in
2043 *cygwin*)
2044 major=`expr $current - $age`
2045 versuffix="-$major"
2046 ;;
2047 esac
2048 eval soname=\"$soname_spec\"
2049 else
2050 soname="$realname"
2051 fi
2052
2053 # Make a new name for the extract_expsyms_cmds to use
2054 soroot="$soname"
2055 soname=`echo $soroot | sed -e 's/^.*\///'`
2056 newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
2057
2058 # If the library has no export list, then create one now
2059 if test -f "$output_objdir/$soname-def"; then :
2060 else
2061 $show "extracting exported symbol list from \`$soname'"
2062 save_ifs="$IFS"; IFS='~'
2063 eval cmds=\"$extract_expsyms_cmds\"
2064 for cmd in $cmds; do
2065 IFS="$save_ifs"
2066 $show "$cmd"
2067 $run eval "$cmd" || exit $?
2068 done
2069 IFS="$save_ifs"
2070 fi
2071
2072 # Create $newlib
2073 if test -f "$output_objdir/$newlib"; then :; else
2074 $show "generating import library for \`$soname'"
2075 save_ifs="$IFS"; IFS='~'
2076 eval cmds=\"$old_archive_from_expsyms_cmds\"
2077 for cmd in $cmds; do
2078 IFS="$save_ifs"
2079 $show "$cmd"
2080 $run eval "$cmd" || exit $?
2081 done
2082 IFS="$save_ifs"
2083 fi
2084 # make sure the library variables are pointing to the new library
2085 dir=$output_objdir
2086 linklib=$newlib
2087 fi # test -n $old_archive_from_expsyms_cmds
2088
2089 if test $linkmode = prog || test "$mode" != relink; then
2090 add_shlibpath=
2091 add_dir=
2092 add=
2093 lib_linked=yes
2094 case $hardcode_action in
2095 immediate | unsupported)
2096 if test "$hardcode_direct" = no; then
2097 add="$dir/$linklib"
2098 elif test "$hardcode_minus_L" = no; then
2099 case $host in
2100 *-*-sunos*) add_shlibpath="$dir" ;;
2101 esac
2102 add_dir="-L$dir"
2103 add="-l$name"
2104 elif test "$hardcode_shlibpath_var" = no; then
2105 add_shlibpath="$dir"
2106 add="-l$name"
2107 else
2108 lib_linked=no
2109 fi
2110 ;;
2111 relink)
2112 if test "$hardcode_direct" = yes; then
2113 add="$dir/$linklib"
2114 elif test "$hardcode_minus_L" = yes; then
2115 add_dir="-L$dir"
2116 add="-l$name"
2117 elif test "$hardcode_shlibpath_var" = yes; then
2118 add_shlibpath="$dir"
2119 add="-l$name"
2120 else
2121 lib_linked=no
2122 fi
2123 ;;
2124 *) lib_linked=no ;;
2125 esac
2126
2127 if test "$lib_linked" != yes; then
2128 $echo "$modename: configuration error: unsupported hardcode properties"
2129 exit 1
2130 fi
2131
2132 if test -n "$add_shlibpath"; then
2133 case :$compile_shlibpath: in
2134 *":$add_shlibpath:"*) ;;
2135 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2136 esac
2137 fi
2138 if test $linkmode = prog; then
2139 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2140 test -n "$add" && compile_deplibs="$add $compile_deplibs"
2141 else
2142 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2143 test -n "$add" && deplibs="$add $deplibs"
2144 if test "$hardcode_direct" != yes && \
2145 test "$hardcode_minus_L" != yes && \
2146 test "$hardcode_shlibpath_var" = yes; then
2147 case :$finalize_shlibpath: in
2148 *":$libdir:"*) ;;
2149 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2150 esac
2151 fi
2152 fi
2153 fi
2154
2155 if test $linkmode = prog || test "$mode" = relink; then
2156 add_shlibpath=
2157 add_dir=
2158 add=
2159 # Finalize command for both is simple: just hardcode it.
2160 if test "$hardcode_direct" = yes; then
2161 add="$libdir/$linklib"
2162 elif test "$hardcode_minus_L" = yes; then
2163 add_dir="-L$libdir"
2164 add="-l$name"
2165 elif test "$hardcode_shlibpath_var" = yes; then
2166 case :$finalize_shlibpath: in
2167 *":$libdir:"*) ;;
2168 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2169 esac
2170 add="-l$name"
2171 else
2172 # We cannot seem to hardcode it, guess we'll fake it.
2173 add_dir="-L$libdir"
2174 add="-l$name"
2175 fi
2176
2177 if test $linkmode = prog; then
2178 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2179 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2180 else
2181 test -n "$add_dir" && deplibs="$add_dir $deplibs"
2182 test -n "$add" && deplibs="$add $deplibs"
2183 fi
2184 fi
2185 elif test $linkmode = prog; then
2186 if test "$alldeplibs" = yes &&
2187 { test "$deplibs_check_method" = pass_all ||
2188 { test "$build_libtool_libs" = yes &&
2189 test -n "$library_names"; }; }; then
2190 # We only need to search for static libraries
2191 continue
2192 fi
2193
2194 # Try to link the static library
2195 # Here we assume that one of hardcode_direct or hardcode_minus_L
2196 # is not unsupported. This is valid on all known static and
2197 # shared platforms.
2198 if test "$hardcode_direct" != unsupported; then
2199 test -n "$old_library" && linklib="$old_library"
2200 compile_deplibs="$dir/$linklib $compile_deplibs"
2201 finalize_deplibs="$dir/$linklib $finalize_deplibs"
2202 else
2203 compile_deplibs="-l$name -L$dir $compile_deplibs"
2204 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2205 fi
2206 elif test "$build_libtool_libs" = yes; then
2207 # Not a shared library
2208 if test "$deplibs_check_method" != pass_all; then
2209 # We're trying link a shared library against a static one
2210 # but the system doesn't support it.
2211
2212 # Just print a warning and add the library to dependency_libs so
2213 # that the program can be linked against the static library.
2214 echo
2215 echo "*** Warning: This library needs some functionality provided by $lib."
2216 echo "*** I have the capability to make that library automatically link in when"
2217 echo "*** you link to this library. But I can only do this if you have a"
2218 echo "*** shared version of the library, which you do not appear to have."
2219 if test "$module" = yes; then
2220 echo "*** Therefore, libtool will create a static module, that should work "
2221 echo "*** as long as the dlopening application is linked with the -dlopen flag."
2222 if test -z "$global_symbol_pipe"; then
2223 echo
2224 echo "*** However, this would only work if libtool was able to extract symbol"
2225 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2226 echo "*** not find such a program. So, this module is probably useless."
2227 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2228 fi
2229 if test "$build_old_libs" = no; then
2230 build_libtool_libs=module
2231 build_old_libs=yes
2232 else
2233 build_libtool_libs=no
2234 fi
2235 fi
2236 else
2237 convenience="$convenience $dir/$old_library"
2238 old_convenience="$old_convenience $dir/$old_library"
2239 deplibs="$dir/$old_library $deplibs"
2240 link_static=yes
2241 fi
2242 fi # link shared/static library?
2243
2244 if test $linkmode = lib; then
2245 if test -n "$dependency_libs" &&
2246 { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
2247 test $link_static = yes; }; then
2248 # Extract -R from dependency_libs
2249 temp_deplibs=
2250 for libdir in $dependency_libs; do
2251 case $libdir in
2252 -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2253 case " $xrpath " in
2254 *" $temp_xrpath "*) ;;
2255 *) xrpath="$xrpath $temp_xrpath";;
2256 esac;;
2257 *) temp_deplibs="$temp_deplibs $libdir";;
2258 esac
2259 done
2260 dependency_libs="$temp_deplibs"
2261 fi
2262
2263 newlib_search_path="$newlib_search_path $absdir"
2264 # Link against this library
2265 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2266 # ... and its dependency_libs
2267 tmp_libs=
2268 for deplib in $dependency_libs; do
2269 newdependency_libs="$deplib $newdependency_libs"
2270 case "$tmp_libs " in
2271 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2272 esac
2273 tmp_libs="$tmp_libs $deplib"
2274 done
2275
2276 if test $link_all_deplibs != no; then
2277 # Add the search paths of all dependency libraries
2278 for deplib in $dependency_libs; do
2279 case $deplib in
2280 -L*) path="$deplib" ;;
2281 *.la)
2282 dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2283 test "X$dir" = "X$deplib" && dir="."
2284 # We need an absolute path.
2285 case $dir in
2286 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2287 *)
2288 absdir=`cd "$dir" && pwd`
2289 if test -z "$absdir"; then
2290 $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2291 absdir="$dir"
2292 fi
2293 ;;
2294 esac
2295 if grep "^installed=no" $deplib > /dev/null; then
2296 path="-L$absdir/$objdir"
2297 else
2298 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2299 if test -z "$libdir"; then
2300 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2301 exit 1
2302 fi
2303 if test "$absdir" != "$libdir"; then
2304 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2305 fi
2306 path="-L$absdir"
2307 fi
2308 ;;
2309 *) continue ;;
2310 esac
2311 case " $deplibs " in
2312 *" $path "*) ;;
2313 *) deplibs="$deplibs $path" ;;
2314 esac
2315 done
2316 fi # link_all_deplibs != no
2317 fi # linkmode = lib
2318 done # for deplib in $libs
2319 if test $pass = dlpreopen; then
2320 # Link the dlpreopened libraries before other libraries
2321 for deplib in $save_deplibs; do
2322 deplibs="$deplib $deplibs"
2323 done
2324 fi
2325 if test $pass != dlopen; then
2326 test $pass != scan && dependency_libs="$newdependency_libs"
2327 if test $pass != conv; then
2328 # Make sure lib_search_path contains only unique directories.
2329 lib_search_path=
2330 for dir in $newlib_search_path; do
2331 case "$lib_search_path " in
2332 *" $dir "*) ;;
2333 *) lib_search_path="$lib_search_path $dir" ;;
2334 esac
2335 done
2336 newlib_search_path=
2337 fi
2338
2339 if test "$linkmode,$pass" != "prog,link"; then
2340 vars="deplibs"
2341 else
2342 vars="compile_deplibs finalize_deplibs"
2343 fi
2344 for var in $vars dependency_libs; do
2345 # Add libraries to $var in reverse order
2346 eval tmp_libs=\"\$$var\"
2347 new_libs=
2348 for deplib in $tmp_libs; do
2349 case $deplib in
2350 -L*) new_libs="$deplib $new_libs" ;;
2351 *)
2352 case " $specialdeplibs " in
2353 *" $deplib "*) new_libs="$deplib $new_libs" ;;
2354 *)
2355 case " $new_libs " in
2356 *" $deplib "*) ;;
2357 *) new_libs="$deplib $new_libs" ;;
2358 esac
2359 ;;
2360 esac
2361 ;;
2362 esac
2363 done
2364 tmp_libs=
2365 for deplib in $new_libs; do
2366 case $deplib in
2367 -L*)
2368 case " $tmp_libs " in
2369 *" $deplib "*) ;;
2370 *) tmp_libs="$tmp_libs $deplib" ;;
2371 esac
2372 ;;
2373 *) tmp_libs="$tmp_libs $deplib" ;;
2374 esac
2375 done
2376 eval $var=\"$tmp_libs\"
2377 done # for var
2378 fi
2379 if test "$pass" = "conv" &&
2380 { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
2381 libs="$deplibs" # reset libs
2382 deplibs=
2383 fi
2384 done # for pass
2385 if test $linkmode = prog; then
2386 dlfiles="$newdlfiles"
2387 dlprefiles="$newdlprefiles"
2388 fi
2389
2390 case $linkmode in
2391 oldlib)
2392 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2393 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
2394 fi
2395
2396 if test -n "$rpath"; then
2397 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
2398 fi
2399
2400 if test -n "$xrpath"; then
2401 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
2402 fi
2403
2404 if test -n "$vinfo"; then
2405 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
2406 fi
2407
2408 if test -n "$release"; then
2409 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
2410 fi
2411
2412 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
2413 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
2414 fi
2415
2416 # Now set the variables for building old libraries.
2417 build_libtool_libs=no
2418 oldlibs="$output"
2419 objs="$objs$old_deplibs"
2420 ;;
2421
2422 lib)
2423 # Make sure we only generate libraries of the form `libNAME.la'.
2424 case $outputname in
2425 lib*)
2426 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2427 eval libname=\"$libname_spec\"
2428 ;;
2429 *)
2430 if test "$module" = no; then
2431 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
2432 $echo "$help" 1>&2
2433 exit 1
2434 fi
2435 if test "$need_lib_prefix" != no; then
2436 # Add the "lib" prefix for modules if required
2437 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2438 eval libname=\"$libname_spec\"
2439 else
2440 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
2441 fi
2442 ;;
2443 esac
2444
2445 if test -n "$objs"; then
2446 if test "$deplibs_check_method" != pass_all; then
2447 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
2448 exit 1
2449 else
2450 echo
2451 echo "*** Warning: Linking the shared library $output against the non-libtool"
2452 echo "*** objects $objs is not portable!"
2453 libobjs="$libobjs $objs"
2454 fi
2455 fi
2456
2457 if test "$dlself" != no; then
2458 $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
2459 fi
2460
2461 set dummy $rpath
2462 if test $# -gt 2; then
2463 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
2464 fi
2465 install_libdir="$2"
2466
2467 oldlibs=
2468 if test -z "$rpath"; then
2469 if test "$build_libtool_libs" = yes; then
2470 # Building a libtool convenience library.
2471 libext=al
2472 oldlibs="$output_objdir/$libname.$libext $oldlibs"
2473 build_libtool_libs=convenience
2474 build_old_libs=yes
2475 fi
2476
2477 if test -n "$vinfo"; then
2478 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
2479 fi
2480
2481 if test -n "$release"; then
2482 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
2483 fi
2484 else
2485
2486 # Parse the version information argument.
2487 save_ifs="$IFS"; IFS=':'
2488 set dummy $vinfo 0 0 0
2489 IFS="$save_ifs"
2490
2491 if test -n "$8"; then
2492 $echo "$modename: too many parameters to \`-version-info'" 1>&2
2493 $echo "$help" 1>&2
2494 exit 1
2495 fi
2496
2497 current="$2"
2498 revision="$3"
2499 age="$4"
2500
2501 # Check that each of the things are valid numbers.
2502 case $current in
2503 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2504 *)
2505 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
2506 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2507 exit 1
2508 ;;
2509 esac
2510
2511 case $revision in
2512 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2513 *)
2514 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
2515 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2516 exit 1
2517 ;;
2518 esac
2519
2520 case $age in
2521 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
2522 *)
2523 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
2524 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2525 exit 1
2526 ;;
2527 esac
2528
2529 if test $age -gt $current; then
2530 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
2531 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
2532 exit 1
2533 fi
2534
2535 # Calculate the version variables.
2536 major=
2537 versuffix=
2538 verstring=
2539 case $version_type in
2540 none) ;;
2541
2542 darwin)
2543 # Like Linux, but with the current version available in
2544 # verstring for coding it into the library header
2545 major=.`expr $current - $age`
2546 versuffix="$major.$age.$revision"
2547 # Darwin ld doesn't like 0 for these options...
2548 minor_current=`expr $current + 1`
2549 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
2550 ;;
2551
2552 freebsd-aout)
2553 major=".$current"
2554 versuffix=".$current.$revision";
2555 ;;
2556
2557 freebsd-elf)
2558 major=".$current"
2559 versuffix=".$current";
2560 ;;
2561
2562 irix)
2563 major=`expr $current - $age + 1`
2564 verstring="sgi$major.$revision"
2565
2566 # Add in all the interfaces that we are compatible with.
2567 loop=$revision
2568 while test $loop != 0; do
2569 iface=`expr $revision - $loop`
2570 loop=`expr $loop - 1`
2571 verstring="sgi$major.$iface:$verstring"
2572 done
2573
2574 # Before this point, $major must not contain `.'.
2575 major=.$major
2576 versuffix="$major.$revision"
2577 ;;
2578
2579 linux)
2580 major=.`expr $current - $age`
2581 versuffix="$major.$age.$revision"
2582 ;;
2583
2584 osf)
2585 major=`expr $current - $age`
2586 versuffix=".$current.$age.$revision"
2587 verstring="$current.$age.$revision"
2588
2589 # Add in all the interfaces that we are compatible with.
2590 loop=$age
2591 while test $loop != 0; do
2592 iface=`expr $current - $loop`
2593 loop=`expr $loop - 1`
2594 verstring="$verstring:${iface}.0"
2595 done
2596
2597 # Make executables depend on our current version.
2598 verstring="$verstring:${current}.0"
2599 ;;
2600
2601 sunos)
2602 major=".$current"
2603 versuffix=".$current.$revision"
2604 ;;
2605
2606 windows)
2607 # Use '-' rather than '.', since we only want one
2608 # extension on DOS 8.3 filesystems.
2609 major=`expr $current - $age`
2610 versuffix="-$major"
2611 ;;
2612
2613 *)
2614 $echo "$modename: unknown library version type \`$version_type'" 1>&2
2615 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
2616 exit 1
2617 ;;
2618 esac
2619
2620 # Clear the version info if we defaulted, and they specified a release.
2621 if test -z "$vinfo" && test -n "$release"; then
2622 major=
2623 verstring="0.0"
2624 case $version_type in
2625 darwin)
2626 # we can't check for "0.0" in archive_cmds due to quoting
2627 # problems, so we reset it completely
2628 verstring=""
2629 ;;
2630 *)
2631 verstring="0.0"
2632 ;;
2633 esac
2634 if test "$need_version" = no; then
2635 versuffix=
2636 else
2637 versuffix=".0.0"
2638 fi
2639 fi
2640
2641 # Remove version info from name if versioning should be avoided
2642 if test "$avoid_version" = yes && test "$need_version" = no; then
2643 major=
2644 versuffix=
2645 verstring=""
2646 fi
2647
2648 # Check to see if the archive will have undefined symbols.
2649 if test "$allow_undefined" = yes; then
2650 if test "$allow_undefined_flag" = unsupported; then
2651 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
2652 build_libtool_libs=no
2653 build_old_libs=yes
2654 fi
2655 else
2656 # Don't allow undefined symbols.
2657 allow_undefined_flag="$no_undefined_flag"
2658 fi
2659 fi
2660
2661 if test "$mode" != relink; then
2662 # Remove our outputs.
2663 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
2664 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
2665 fi
2666
2667 # Now set the variables for building old libraries.
2668 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
2669 oldlibs="$oldlibs $output_objdir/$libname.$libext"
2670
2671 # Transform .lo files to .o files.
2672 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
2673 fi
2674
2675 # Eliminate all temporary directories.
2676 for path in $notinst_path; do
2677 lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
2678 deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
2679 dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
2680 done
2681
2682 if test -n "$xrpath"; then
2683 # If the user specified any rpath flags, then add them.
2684 temp_xrpath=
2685 for libdir in $xrpath; do
2686 temp_xrpath="$temp_xrpath -R$libdir"
2687 case "$finalize_rpath " in
2688 *" $libdir "*) ;;
2689 *) finalize_rpath="$finalize_rpath $libdir" ;;
2690 esac
2691 done
2692 if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
2693 dependency_libs="$temp_xrpath $dependency_libs"
2694 fi
2695 fi
2696
2697 # Make sure dlfiles contains only unique files that won't be dlpreopened
2698 old_dlfiles="$dlfiles"
2699 dlfiles=
2700 for lib in $old_dlfiles; do
2701 case " $dlprefiles $dlfiles " in
2702 *" $lib "*) ;;
2703 *) dlfiles="$dlfiles $lib" ;;
2704 esac
2705 done
2706
2707 # Make sure dlprefiles contains only unique files
2708 old_dlprefiles="$dlprefiles"
2709 dlprefiles=
2710 for lib in $old_dlprefiles; do
2711 case "$dlprefiles " in
2712 *" $lib "*) ;;
2713 *) dlprefiles="$dlprefiles $lib" ;;
2714 esac
2715 done
2716
2717 if test "$build_libtool_libs" = yes; then
2718 if test -n "$rpath"; then
2719 case $host in
2720 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
2721 # these systems don't actually have a c library (as such)!
2722 ;;
2723 *-*-rhapsody* | *-*-darwin1.[012])
2724 # Rhapsody C library is in the System framework
2725 deplibs="$deplibs -framework System"
2726 ;;
2727 *-*-netbsd*)
2728 # Don't link with libc until the a.out ld.so is fixed.
2729 ;;
2730 *-*-openbsd*)
2731 # Do not include libc due to us having libc/libc_r.
2732 ;;
2733 *)
2734 # Add libc to deplibs on all other systems if necessary.
2735 if test $build_libtool_need_lc = "yes"; then
2736 deplibs="$deplibs -lc"
2737 fi
2738 ;;
2739 esac
2740 fi
2741
2742 # Transform deplibs into only deplibs that can be linked in shared.
2743 name_save=$name
2744 libname_save=$libname
2745 release_save=$release
2746 versuffix_save=$versuffix
2747 major_save=$major
2748 # I'm not sure if I'm treating the release correctly. I think
2749 # release should show up in the -l (ie -lgmp5) so we don't want to
2750 # add it in twice. Is that correct?
2751 release=""
2752 versuffix=""
2753 major=""
2754 newdeplibs=
2755 droppeddeps=no
2756 case $deplibs_check_method in
2757 pass_all)
2758 # Don't check for shared/static. Everything works.
2759 # This might be a little naive. We might want to check
2760 # whether the library exists or not. But this is on
2761 # osf3 & osf4 and I'm not really sure... Just
2762 # implementing what was already the behaviour.
2763 newdeplibs=$deplibs
2764 ;;
2765 test_compile)
2766 # This code stresses the "libraries are programs" paradigm to its
2767 # limits. Maybe even breaks it. We compile a program, linking it
2768 # against the deplibs as a proxy for the library. Then we can check
2769 # whether they linked in statically or dynamically with ldd.
2770 $rm conftest.c
2771 cat > conftest.c <<EOF
2772 int main() { return 0; }
2773EOF
2774 $rm conftest
2775 $CC -o conftest conftest.c $deplibs
2776 if test $? -eq 0 ; then
2777 ldd_output=`ldd conftest`
2778 for i in $deplibs; do
2779 name="`expr $i : '-l\(.*\)'`"
2780 # If $name is empty we are operating on a -L argument.
2781 if test -n "$name" && test "$name" != "0"; then
2782 libname=`eval \\$echo \"$libname_spec\"`
2783 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2784 set dummy $deplib_matches
2785 deplib_match=$2
2786 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2787 newdeplibs="$newdeplibs $i"
2788 else
2789 droppeddeps=yes
2790 echo
2791 echo "*** Warning: This library needs some functionality provided by $i."
2792 echo "*** I have the capability to make that library automatically link in when"
2793 echo "*** you link to this library. But I can only do this if you have a"
2794 echo "*** shared version of the library, which you do not appear to have."
2795 fi
2796 else
2797 newdeplibs="$newdeplibs $i"
2798 fi
2799 done
2800 else
2801 # Error occured in the first compile. Let's try to salvage the situation:
2802 # Compile a seperate program for each library.
2803 for i in $deplibs; do
2804 name="`expr $i : '-l\(.*\)'`"
2805 # If $name is empty we are operating on a -L argument.
2806 if test -n "$name" && test "$name" != "0"; then
2807 $rm conftest
2808 $CC -o conftest conftest.c $i
2809 # Did it work?
2810 if test $? -eq 0 ; then
2811 ldd_output=`ldd conftest`
2812 libname=`eval \\$echo \"$libname_spec\"`
2813 deplib_matches=`eval \\$echo \"$library_names_spec\"`
2814 set dummy $deplib_matches
2815 deplib_match=$2
2816 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
2817 newdeplibs="$newdeplibs $i"
2818 else
2819 droppeddeps=yes
2820 echo
2821 echo "*** Warning: This library needs some functionality provided by $i."
2822 echo "*** I have the capability to make that library automatically link in when"
2823 echo "*** you link to this library. But I can only do this if you have a"
2824 echo "*** shared version of the library, which you do not appear to have."
2825 fi
2826 else
2827 droppeddeps=yes
2828 echo
2829 echo "*** Warning! Library $i is needed by this library but I was not able to"
2830 echo "*** make it link in! You will probably need to install it or some"
2831 echo "*** library that it depends on before this library will be fully"
2832 echo "*** functional. Installing it before continuing would be even better."
2833 fi
2834 else
2835 newdeplibs="$newdeplibs $i"
2836 fi
2837 done
2838 fi
2839 ;;
2840 file_magic*)
2841 set dummy $deplibs_check_method
2842 file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2843 for a_deplib in $deplibs; do
2844 name="`expr $a_deplib : '-l\(.*\)'`"
2845 # If $name is empty we are operating on a -L argument.
2846 if test -n "$name" && test "$name" != "0"; then
2847 libname=`eval \\$echo \"$libname_spec\"`
2848 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2849 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2850 for potent_lib in $potential_libs; do
2851 # Follow soft links.
2852 if ls -lLd "$potent_lib" 2>/dev/null \
2853 | grep " -> " >/dev/null; then
2854 continue
2855 fi
2856 # The statement above tries to avoid entering an
2857 # endless loop below, in case of cyclic links.
2858 # We might still enter an endless loop, since a link
2859 # loop can be closed while we follow links,
2860 # but so what?
2861 potlib="$potent_lib"
2862 while test -h "$potlib" 2>/dev/null; do
2863 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
2864 case $potliblink in
2865 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
2866 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
2867 esac
2868 done
2869 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
2870 | sed 10q \
2871 | egrep "$file_magic_regex" > /dev/null; then
2872 newdeplibs="$newdeplibs $a_deplib"
2873 a_deplib=""
2874 break 2
2875 fi
2876 done
2877 done
2878 if test -n "$a_deplib" ; then
2879 droppeddeps=yes
2880 echo
2881 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2882 echo "*** I have the capability to make that library automatically link in when"
2883 echo "*** you link to this library. But I can only do this if you have a"
2884 echo "*** shared version of the library, which you do not appear to have."
2885 fi
2886 else
2887 # Add a -L argument.
2888 newdeplibs="$newdeplibs $a_deplib"
2889 fi
2890 done # Gone through all deplibs.
2891 ;;
2892 match_pattern*)
2893 set dummy $deplibs_check_method
2894 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2895 for a_deplib in $deplibs; do
2896 name="`expr $a_deplib : '-l\(.*\)'`"
2897 # If $name is empty we are operating on a -L argument.
2898 if test -n "$name" && test "$name" != "0"; then
2899 libname=`eval \\$echo \"$libname_spec\"`
2900 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
2901 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
2902 for potent_lib in $potential_libs; do
2903 if eval echo \"$potent_lib\" 2>/dev/null \
2904 | sed 10q \
2905 | egrep "$match_pattern_regex" > /dev/null; then
2906 newdeplibs="$newdeplibs $a_deplib"
2907 a_deplib=""
2908 break 2
2909 fi
2910 done
2911 done
2912 if test -n "$a_deplib" ; then
2913 droppeddeps=yes
2914 echo
2915 echo "*** Warning: This library needs some functionality provided by $a_deplib."
2916 echo "*** I have the capability to make that library automatically link in when"
2917 echo "*** you link to this library. But I can only do this if you have a"
2918 echo "*** shared version of the library, which you do not appear to have."
2919 fi
2920 else
2921 # Add a -L argument.
2922 newdeplibs="$newdeplibs $a_deplib"
2923 fi
2924 done # Gone through all deplibs.
2925 ;;
2926 none | unknown | *)
2927 newdeplibs=""
2928 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2929 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2930 grep . >/dev/null; then
2931 echo
2932 if test "X$deplibs_check_method" = "Xnone"; then
2933 echo "*** Warning: inter-library dependencies are not supported in this platform."
2934 else
2935 echo "*** Warning: inter-library dependencies are not known to be supported."
2936 fi
2937 echo "*** All declared inter-library dependencies are being dropped."
2938 droppeddeps=yes
2939 fi
2940 ;;
2941 esac
2942 versuffix=$versuffix_save
2943 major=$major_save
2944 release=$release_save
2945 libname=$libname_save
2946 name=$name_save
2947
2948 case $host in
2949 *-*-rhapsody* | *-*-darwin1.[012])
2950 # On Rhapsody replace the C library is the System framework
2951 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
2952 ;;
2953 esac
2954
2955 if test "$droppeddeps" = yes; then
2956 if test "$module" = yes; then
2957 echo
2958 echo "*** Warning: libtool could not satisfy all declared inter-library"
2959 echo "*** dependencies of module $libname. Therefore, libtool will create"
2960 echo "*** a static module, that should work as long as the dlopening"
2961 echo "*** application is linked with the -dlopen flag."
2962 if test -z "$global_symbol_pipe"; then
2963 echo
2964 echo "*** However, this would only work if libtool was able to extract symbol"
2965 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2966 echo "*** not find such a program. So, this module is probably useless."
2967 echo "*** \`nm' from GNU binutils and a full rebuild may help."
2968 fi
2969 if test "$build_old_libs" = no; then
2970 oldlibs="$output_objdir/$libname.$libext"
2971 build_libtool_libs=module
2972 build_old_libs=yes
2973 else
2974 build_libtool_libs=no
2975 fi
2976 else
2977 echo "*** The inter-library dependencies that have been dropped here will be"
2978 echo "*** automatically added whenever a program is linked with this library"
2979 echo "*** or is declared to -dlopen it."
2980
2981 if test $allow_undefined = no; then
2982 echo
2983 echo "*** Since this library must not contain undefined symbols,"
2984 echo "*** because either the platform does not support them or"
2985 echo "*** it was explicitly requested with -no-undefined,"
2986 echo "*** libtool will only create a static version of it."
2987 if test "$build_old_libs" = no; then
2988 oldlibs="$output_objdir/$libname.$libext"
2989 build_libtool_libs=module
2990 build_old_libs=yes
2991 else
2992 build_libtool_libs=no
2993 fi
2994 fi
2995 fi
2996 fi
2997 # Done checking deplibs!
2998 deplibs=$newdeplibs
2999 fi
3000
3001 # All the library-specific variables (install_libdir is set above).
3002 library_names=
3003 old_library=
3004 dlname=
3005
3006 # Test again, we may have decided not to build it any more
3007 if test "$build_libtool_libs" = yes; then
3008 if test $hardcode_into_libs = yes; then
3009 # Hardcode the library paths
3010 hardcode_libdirs=
3011 dep_rpath=
3012 rpath="$finalize_rpath"
3013 test "$mode" != relink && rpath="$compile_rpath$rpath"
3014 for libdir in $rpath; do
3015 if test -n "$hardcode_libdir_flag_spec"; then
3016 if test -n "$hardcode_libdir_separator"; then
3017 if test -z "$hardcode_libdirs"; then
3018 hardcode_libdirs="$libdir"
3019 else
3020 # Just accumulate the unique libdirs.
3021 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3022 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3023 ;;
3024 *)
3025 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3026 ;;
3027 esac
3028 fi
3029 else
3030 eval flag=\"$hardcode_libdir_flag_spec\"
3031 dep_rpath="$dep_rpath $flag"
3032 fi
3033 elif test -n "$runpath_var"; then
3034 case "$perm_rpath " in
3035 *" $libdir "*) ;;
3036 *) perm_rpath="$perm_rpath $libdir" ;;
3037 esac
3038 fi
3039 done
3040 # Substitute the hardcoded libdirs into the rpath.
3041 if test -n "$hardcode_libdir_separator" &&
3042 test -n "$hardcode_libdirs"; then
3043 libdir="$hardcode_libdirs"
3044 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3045 fi
3046 if test -n "$runpath_var" && test -n "$perm_rpath"; then
3047 # We should set the runpath_var.
3048 rpath=
3049 for dir in $perm_rpath; do
3050 rpath="$rpath$dir:"
3051 done
3052 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3053 fi
3054 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3055 fi
3056
3057 shlibpath="$finalize_shlibpath"
3058 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3059 if test -n "$shlibpath"; then
3060 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3061 fi
3062
3063 # Get the real and link names of the library.
3064 eval library_names=\"$library_names_spec\"
3065 set dummy $library_names
3066 realname="$2"
3067 shift; shift
3068
3069 if test -n "$soname_spec"; then
3070 eval soname=\"$soname_spec\"
3071 else
3072 soname="$realname"
3073 fi
3074 test -z "$dlname" && dlname=$soname
3075
3076 lib="$output_objdir/$realname"
3077 for link
3078 do
3079 linknames="$linknames $link"
3080 done
3081
3082 # Ensure that we have .o objects for linkers which dislike .lo
3083 # (e.g. aix) in case we are running --disable-static
3084 for obj in $libobjs; do
3085 xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
3086 if test "X$xdir" = "X$obj"; then
3087 xdir="."
3088 else
3089 xdir="$xdir"
3090 fi
3091 baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
3092 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3093 if test ! -f $xdir/$oldobj; then
3094 $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
3095 $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
3096 fi
3097 done
3098
3099 # Use standard objects if they are pic
3100 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3101
3102 # Prepare the list of exported symbols
3103 if test -z "$export_symbols"; then
3104 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3105 $show "generating symbol list for \`$libname.la'"
3106 export_symbols="$output_objdir/$libname.exp"
3107 $run $rm $export_symbols
3108 eval cmds=\"$export_symbols_cmds\"
3109 save_ifs="$IFS"; IFS='~'
3110 for cmd in $cmds; do
3111 IFS="$save_ifs"
3112 $show "$cmd"
3113 $run eval "$cmd" || exit $?
3114 done
3115 IFS="$save_ifs"
3116 if test -n "$export_symbols_regex"; then
3117 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3118 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3119 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3120 $run eval '$mv "${export_symbols}T" "$export_symbols"'
3121 fi
3122 fi
3123 fi
3124
3125 if test -n "$export_symbols" && test -n "$include_expsyms"; then
3126 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3127 fi
3128
3129 if test -n "$convenience"; then
3130 if test -n "$whole_archive_flag_spec"; then
3131 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3132 else
3133 gentop="$output_objdir/${outputname}x"
3134 $show "${rm}r $gentop"
3135 $run ${rm}r "$gentop"
3136 $show "mkdir $gentop"
3137 $run mkdir "$gentop"
3138 status=$?
3139 if test $status -ne 0 && test ! -d "$gentop"; then
3140 exit $status
3141 fi
3142 generated="$generated $gentop"
3143
3144 for xlib in $convenience; do
3145 # Extract the objects.
3146 case $xlib in
3147 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3148 *) xabs=`pwd`"/$xlib" ;;
3149 esac
3150 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3151 xdir="$gentop/$xlib"
3152
3153 $show "${rm}r $xdir"
3154 $run ${rm}r "$xdir"
3155 $show "mkdir $xdir"
3156 $run mkdir "$xdir"
3157 status=$?
3158 if test $status -ne 0 && test ! -d "$xdir"; then
3159 exit $status
3160 fi
3161 $show "(cd $xdir && $AR x $xabs)"
3162 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3163
3164 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3165 done
3166 fi
3167 fi
3168
3169 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3170 eval flag=\"$thread_safe_flag_spec\"
3171 linker_flags="$linker_flags $flag"
3172 fi
3173
3174 # Make a backup of the uninstalled library when relinking
3175 if test "$mode" = relink; then
3176 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
3177 fi
3178
3179 # Do each of the archive commands.
3180 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
3181 eval cmds=\"$archive_expsym_cmds\"
3182 else
3183 eval cmds=\"$archive_cmds\"
3184 fi
3185 save_ifs="$IFS"; IFS='~'
3186 for cmd in $cmds; do
3187 IFS="$save_ifs"
3188 $show "$cmd"
3189 $run eval "$cmd" || exit $?
3190 done
3191 IFS="$save_ifs"
3192
3193 # Restore the uninstalled library and exit
3194 if test "$mode" = relink; then
3195 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
3196 exit 0
3197 fi
3198
3199 # Create links to the real library.
3200 for linkname in $linknames; do
3201 if test "$realname" != "$linkname"; then
3202 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
3203 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
3204 fi
3205 done
3206
3207 # If -module or -export-dynamic was specified, set the dlname.
3208 if test "$module" = yes || test "$export_dynamic" = yes; then
3209 # On all known operating systems, these are identical.
3210 dlname="$soname"
3211 fi
3212 fi
3213 ;;
3214
3215 obj)
3216 if test -n "$deplibs"; then
3217 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
3218 fi
3219
3220 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3221 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
3222 fi
3223
3224 if test -n "$rpath"; then
3225 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
3226 fi
3227
3228 if test -n "$xrpath"; then
3229 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
3230 fi
3231
3232 if test -n "$vinfo"; then
3233 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
3234 fi
3235
3236 if test -n "$release"; then
3237 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
3238 fi
3239
3240 case $output in
3241 *.lo)
3242 if test -n "$objs$old_deplibs"; then
3243 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
3244 exit 1
3245 fi
3246 libobj="$output"
3247 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
3248 ;;
3249 *)
3250 libobj=
3251 obj="$output"
3252 ;;
3253 esac
3254
3255 # Delete the old objects.
3256 $run $rm $obj $libobj
3257
3258 # Objects from convenience libraries. This assumes
3259 # single-version convenience libraries. Whenever we create
3260 # different ones for PIC/non-PIC, this we'll have to duplicate
3261 # the extraction.
3262 reload_conv_objs=
3263 gentop=
3264 # reload_cmds runs $LD directly, so let us get rid of
3265 # -Wl from whole_archive_flag_spec
3266 wl=
3267
3268 if test -n "$convenience"; then
3269 if test -n "$whole_archive_flag_spec"; then
3270 eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
3271 else
3272 gentop="$output_objdir/${obj}x"
3273 $show "${rm}r $gentop"
3274 $run ${rm}r "$gentop"
3275 $show "mkdir $gentop"
3276 $run mkdir "$gentop"
3277 status=$?
3278 if test $status -ne 0 && test ! -d "$gentop"; then
3279 exit $status
3280 fi
3281 generated="$generated $gentop"
3282
3283 for xlib in $convenience; do
3284 # Extract the objects.
3285 case $xlib in
3286 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3287 *) xabs=`pwd`"/$xlib" ;;
3288 esac
3289 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3290 xdir="$gentop/$xlib"
3291
3292 $show "${rm}r $xdir"
3293 $run ${rm}r "$xdir"
3294 $show "mkdir $xdir"
3295 $run mkdir "$xdir"
3296 status=$?
3297 if test $status -ne 0 && test ! -d "$xdir"; then
3298 exit $status
3299 fi
3300 $show "(cd $xdir && $AR x $xabs)"
3301 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3302
3303 reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
3304 done
3305 fi
3306 fi
3307
3308 # Create the old-style object.
3309 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
3310
3311 output="$obj"
3312 eval cmds=\"$reload_cmds\"
3313 save_ifs="$IFS"; IFS='~'
3314 for cmd in $cmds; do
3315 IFS="$save_ifs"
3316 $show "$cmd"
3317 $run eval "$cmd" || exit $?
3318 done
3319 IFS="$save_ifs"
3320
3321 # Exit if we aren't doing a library object file.
3322 if test -z "$libobj"; then
3323 if test -n "$gentop"; then
3324 $show "${rm}r $gentop"
3325 $run ${rm}r $gentop
3326 fi
3327
3328 exit 0
3329 fi
3330
3331 if test "$build_libtool_libs" != yes; then
3332 if test -n "$gentop"; then
3333 $show "${rm}r $gentop"
3334 $run ${rm}r $gentop
3335 fi
3336
3337 # Create an invalid libtool object if no PIC, so that we don't
3338 # accidentally link it into a program.
3339 $show "echo timestamp > $libobj"
3340 $run eval "echo timestamp > $libobj" || exit $?
3341 exit 0
3342 fi
3343
3344 if test -n "$pic_flag" || test "$pic_mode" != default; then
3345 # Only do commands if we really have different PIC objects.
3346 reload_objs="$libobjs $reload_conv_objs"
3347 output="$libobj"
3348 eval cmds=\"$reload_cmds\"
3349 save_ifs="$IFS"; IFS='~'
3350 for cmd in $cmds; do
3351 IFS="$save_ifs"
3352 $show "$cmd"
3353 $run eval "$cmd" || exit $?
3354 done
3355 IFS="$save_ifs"
3356 else
3357 # Just create a symlink.
3358 $show $rm $libobj
3359 $run $rm $libobj
3360 xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
3361 if test "X$xdir" = "X$libobj"; then
3362 xdir="."
3363 else
3364 xdir="$xdir"
3365 fi
3366 baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
3367 oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
3368 $show "(cd $xdir && $LN_S $oldobj $baseobj)"
3369 $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
3370 fi
3371
3372 if test -n "$gentop"; then
3373 $show "${rm}r $gentop"
3374 $run ${rm}r $gentop
3375 fi
3376
3377 exit 0
3378 ;;
3379
3380 prog)
3381 case $host in
3382 *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
3383 esac
3384 if test -n "$vinfo"; then
3385 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
3386 fi
3387
3388 if test -n "$release"; then
3389 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
3390 fi
3391
3392 if test "$preload" = yes; then
3393 if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
3394 test "$dlopen_self_static" = unknown; then
3395 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
3396 fi
3397 fi
3398
3399 case $host in
3400 *-*-rhapsody* | *-*-darwin1.[012])
3401 # On Rhapsody replace the C library is the System framework
3402 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3403 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
3404 ;;
3405 esac
3406
3407 compile_command="$compile_command $compile_deplibs"
3408 finalize_command="$finalize_command $finalize_deplibs"
3409
3410 if test -n "$rpath$xrpath"; then
3411 # If the user specified any rpath flags, then add them.
3412 for libdir in $rpath $xrpath; do
3413 # This is the magic to use -rpath.
3414 case "$finalize_rpath " in
3415 *" $libdir "*) ;;
3416 *) finalize_rpath="$finalize_rpath $libdir" ;;
3417 esac
3418 done
3419 fi
3420
3421 # Now hardcode the library paths
3422 rpath=
3423 hardcode_libdirs=
3424 for libdir in $compile_rpath $finalize_rpath; do
3425 if test -n "$hardcode_libdir_flag_spec"; then
3426 if test -n "$hardcode_libdir_separator"; then
3427 if test -z "$hardcode_libdirs"; then
3428 hardcode_libdirs="$libdir"
3429 else
3430 # Just accumulate the unique libdirs.
3431 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3432 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3433 ;;
3434 *)
3435 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3436 ;;
3437 esac
3438 fi
3439 else
3440 eval flag=\"$hardcode_libdir_flag_spec\"
3441 rpath="$rpath $flag"
3442 fi
3443 elif test -n "$runpath_var"; then
3444 case "$perm_rpath " in
3445 *" $libdir "*) ;;
3446 *) perm_rpath="$perm_rpath $libdir" ;;
3447 esac
3448 fi
3449 case $host in
3450 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
3451 case :$dllsearchpath: in
3452 *":$libdir:"*) ;;
3453 *) dllsearchpath="$dllsearchpath:$libdir";;
3454 esac
3455 ;;
3456 esac
3457 done
3458 # Substitute the hardcoded libdirs into the rpath.
3459 if test -n "$hardcode_libdir_separator" &&
3460 test -n "$hardcode_libdirs"; then
3461 libdir="$hardcode_libdirs"
3462 eval rpath=\" $hardcode_libdir_flag_spec\"
3463 fi
3464 compile_rpath="$rpath"
3465
3466 rpath=
3467 hardcode_libdirs=
3468 for libdir in $finalize_rpath; do
3469 if test -n "$hardcode_libdir_flag_spec"; then
3470 if test -n "$hardcode_libdir_separator"; then
3471 if test -z "$hardcode_libdirs"; then
3472 hardcode_libdirs="$libdir"
3473 else
3474 # Just accumulate the unique libdirs.
3475 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3476 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3477 ;;
3478 *)
3479 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3480 ;;
3481 esac
3482 fi
3483 else
3484 eval flag=\"$hardcode_libdir_flag_spec\"
3485 rpath="$rpath $flag"
3486 fi
3487 elif test -n "$runpath_var"; then
3488 case "$finalize_perm_rpath " in
3489 *" $libdir "*) ;;
3490 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
3491 esac
3492 fi
3493 done
3494 # Substitute the hardcoded libdirs into the rpath.
3495 if test -n "$hardcode_libdir_separator" &&
3496 test -n "$hardcode_libdirs"; then
3497 libdir="$hardcode_libdirs"
3498 eval rpath=\" $hardcode_libdir_flag_spec\"
3499 fi
3500 finalize_rpath="$rpath"
3501
3502 if test -n "$libobjs" && test "$build_old_libs" = yes; then
3503 # Transform all the library objects into standard objects.
3504 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3505 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3506 fi
3507
3508 dlsyms=
3509 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3510 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3511 dlsyms="${outputname}S.c"
3512 else
3513 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
3514 fi
3515 fi
3516
3517 if test -n "$dlsyms"; then
3518 case $dlsyms in
3519 "") ;;
3520 *.c)
3521 # Discover the nlist of each of the dlfiles.
3522 nlist="$output_objdir/${outputname}.nm"
3523
3524 $show "$rm $nlist ${nlist}S ${nlist}T"
3525 $run $rm "$nlist" "${nlist}S" "${nlist}T"
3526
3527 # Parse the name list into a source file.
3528 $show "creating $output_objdir/$dlsyms"
3529
3530 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
3531/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
3532/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
3533
3534#ifdef __cplusplus
3535extern \"C\" {
3536#endif
3537
3538/* Prevent the only kind of declaration conflicts we can make. */
3539#define lt_preloaded_symbols some_other_symbol
3540
3541/* External symbol declarations for the compiler. */\
3542"
3543
3544 if test "$dlself" = yes; then
3545 $show "generating symbol list for \`$output'"
3546
3547 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
3548
3549 # Add our own program objects to the symbol list.
3550 progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3551 for arg in $progfiles; do
3552 $show "extracting global C symbols from \`$arg'"
3553 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3554 done
3555
3556 if test -n "$exclude_expsyms"; then
3557 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3558 $run eval '$mv "$nlist"T "$nlist"'
3559 fi
3560
3561 if test -n "$export_symbols_regex"; then
3562 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3563 $run eval '$mv "$nlist"T "$nlist"'
3564 fi
3565
3566 # Prepare the list of exported symbols
3567 if test -z "$export_symbols"; then
3568 export_symbols="$output_objdir/$output.exp"
3569 $run $rm $export_symbols
3570 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3571 else
3572 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
3573 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
3574 $run eval 'mv "$nlist"T "$nlist"'
3575 fi
3576 fi
3577
3578 for arg in $dlprefiles; do
3579 $show "extracting global C symbols from \`$arg'"
3580 name=`echo "$arg" | sed -e 's%^.*/%%'`
3581 $run eval 'echo ": $name " >> "$nlist"'
3582 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
3583 done
3584
3585 if test -z "$run"; then
3586 # Make sure we have at least an empty file.
3587 test -f "$nlist" || : > "$nlist"
3588
3589 if test -n "$exclude_expsyms"; then
3590 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3591 $mv "$nlist"T "$nlist"
3592 fi
3593
3594 # Try sorting and uniquifying the output.
3595 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
3596 :
3597 else
3598 grep -v "^: " < "$nlist" > "$nlist"S
3599 fi
3600
3601 if test -f "$nlist"S; then
3602 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
3603 else
3604 echo '/* NONE */' >> "$output_objdir/$dlsyms"
3605 fi
3606
3607 $echo >> "$output_objdir/$dlsyms" "\
3608
3609#undef lt_preloaded_symbols
3610
3611#if defined (__STDC__) && __STDC__
3612# define lt_ptr void *
3613#else
3614# define lt_ptr char *
3615# define const
3616#endif
3617
3618/* The mapping between symbol names and symbols. */
3619const struct {
3620 const char *name;
3621 lt_ptr address;
3622}
3623lt_preloaded_symbols[] =
3624{\
3625"
3626
3627 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
3628
3629 $echo >> "$output_objdir/$dlsyms" "\
3630 {0, (lt_ptr) 0}
3631};
3632
3633/* This works around a problem in FreeBSD linker */
3634#ifdef FREEBSD_WORKAROUND
3635static const void *lt_preloaded_setup() {
3636 return lt_preloaded_symbols;
3637}
3638#endif
3639
3640#ifdef __cplusplus
3641}
3642#endif\
3643"
3644 fi
3645
3646 pic_flag_for_symtable=
3647 case $host in
3648 # compiling the symbol table file with pic_flag works around
3649 # a FreeBSD bug that causes programs to crash when -lm is
3650 # linked before any other PIC object. But we must not use
3651 # pic_flag when linking with -static. The problem exists in
3652 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3653 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3654 case "$compile_command " in
3655 *" -static "*) ;;
3656 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
3657 esac;;
3658 *-*-hpux*)
3659 case "$compile_command " in
3660 *" -static "*) ;;
3661 *) pic_flag_for_symtable=" $pic_flag -DPIC";;
3662 esac
3663 esac
3664
3665 # Now compile the dynamic symbol file.
3666 $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
3667 $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
3668
3669 # Clean up the generated files.
3670 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
3671 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
3672
3673 # Transform the symbol file into the correct name.
3674 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3675 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
3676 ;;
3677 *)
3678 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
3679 exit 1
3680 ;;
3681 esac
3682 else
3683 # We keep going just in case the user didn't refer to
3684 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3685 # really was required.
3686
3687 # Nullify the symbol file.
3688 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
3689 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3690 fi
3691
3692 if test $need_relink = no || test "$build_libtool_libs" != yes; then
3693 # Replace the output file specification.
3694 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3695 link_command="$compile_command$compile_rpath"
3696
3697 # We have no uninstalled library dependencies, so finalize right now.
3698 $show "$link_command"
3699 $run eval "$link_command"
3700 status=$?
3701
3702 # Delete the generated files.
3703 if test -n "$dlsyms"; then
3704 $show "$rm $output_objdir/${outputname}S.${objext}"
3705 $run $rm "$output_objdir/${outputname}S.${objext}"
3706 fi
3707
3708 exit $status
3709 fi
3710
3711 if test -n "$shlibpath_var"; then
3712 # We should set the shlibpath_var
3713 rpath=
3714 for dir in $temp_rpath; do
3715 case $dir in
3716 [\\/]* | [A-Za-z]:[\\/]*)
3717 # Absolute path.
3718 rpath="$rpath$dir:"
3719 ;;
3720 *)
3721 # Relative path: add a thisdir entry.
3722 rpath="$rpath\$thisdir/$dir:"
3723 ;;
3724 esac
3725 done
3726 temp_rpath="$rpath"
3727 fi
3728
3729 if test -n "$compile_shlibpath$finalize_shlibpath"; then
3730 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
3731 fi
3732 if test -n "$finalize_shlibpath"; then
3733 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
3734 fi
3735
3736 compile_var=
3737 finalize_var=
3738 if test -n "$runpath_var"; then
3739 if test -n "$perm_rpath"; then
3740 # We should set the runpath_var.
3741 rpath=
3742 for dir in $perm_rpath; do
3743 rpath="$rpath$dir:"
3744 done
3745 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
3746 fi
3747 if test -n "$finalize_perm_rpath"; then
3748 # We should set the runpath_var.
3749 rpath=
3750 for dir in $finalize_perm_rpath; do
3751 rpath="$rpath$dir:"
3752 done
3753 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
3754 fi
3755 fi
3756
3757 if test "$no_install" = yes; then
3758 # We don't need to create a wrapper script.
3759 link_command="$compile_var$compile_command$compile_rpath"
3760 # Replace the output file specification.
3761 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
3762 # Delete the old output file.
3763 $run $rm $output
3764 # Link the executable and exit
3765 $show "$link_command"
3766 $run eval "$link_command" || exit $?
3767 exit 0
3768 fi
3769
3770 if test "$hardcode_action" = relink; then
3771 # Fast installation is not supported
3772 link_command="$compile_var$compile_command$compile_rpath"
3773 relink_command="$finalize_var$finalize_command$finalize_rpath"
3774
3775 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
3776 $echo "$modename: \`$output' will be relinked during installation" 1>&2
3777 else
3778 if test "$fast_install" != no; then
3779 link_command="$finalize_var$compile_command$finalize_rpath"
3780 if test "$fast_install" = yes; then
3781 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
3782 else
3783 # fast_install is set to needless
3784 relink_command=
3785 fi
3786 else
3787 link_command="$compile_var$compile_command$compile_rpath"
3788 relink_command="$finalize_var$finalize_command$finalize_rpath"
3789 fi
3790 fi
3791
3792 # Replace the output file specification.
3793 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
3794
3795 # Delete the old output files.
3796 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
3797
3798 $show "$link_command"
3799 $run eval "$link_command" || exit $?
3800
3801 # Now create the wrapper script.
3802 $show "creating $output"
3803
3804 # Quote the relink command for shipping.
3805 if test -n "$relink_command"; then
3806 # Preserve any variables that may affect compiler behavior
3807 for var in $variables_saved_for_relink; do
3808 if eval test -z \"\${$var+set}\"; then
3809 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
3810 elif eval var_value=\$$var; test -z "$var_value"; then
3811 relink_command="$var=; export $var; $relink_command"
3812 else
3813 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
3814 relink_command="$var=\"$var_value\"; export $var; $relink_command"
3815 fi
3816 done
3817 relink_command="cd `pwd`; $relink_command"
3818 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
3819 fi
3820
3821 # Quote $echo for shipping.
3822 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
3823 case $0 in
3824 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
3825 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
3826 esac
3827 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
3828 else
3829 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
3830 fi
3831
3832 # Only actually do things if our run command is non-null.
3833 if test -z "$run"; then
3834 # win32 will think the script is a binary if it has
3835 # a .exe suffix, so we strip it off here.
3836 case $output in
3837 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
3838 esac
3839 # test for cygwin because mv fails w/o .exe extensions
3840 case $host in
3841 *cygwin*) exeext=.exe ;;
3842 *) exeext= ;;
3843 esac
3844 $rm $output
3845 trap "$rm $output; exit 1" 1 2 15
3846
3847 $echo > $output "\
3848#! $SHELL
3849
3850# $output - temporary wrapper script for $objdir/$outputname
3851# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3852#
3853# The $output program cannot be directly executed until all the libtool
3854# libraries that it depends on are installed.
3855#
3856# This wrapper script should never be moved out of the build directory.
3857# If it is, it will not operate correctly.
3858
3859# Sed substitution that helps us do robust quoting. It backslashifies
3860# metacharacters that are still active within double-quoted strings.
3861Xsed='sed -e 1s/^X//'
3862sed_quote_subst='$sed_quote_subst'
3863
3864# The HP-UX ksh and POSIX shell print the target directory to stdout
3865# if CDPATH is set.
3866if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
3867
3868relink_command=\"$relink_command\"
3869
3870# This environment variable determines our operation mode.
3871if test \"\$libtool_install_magic\" = \"$magic\"; then
3872 # install mode needs the following variable:
3873 notinst_deplibs='$notinst_deplibs'
3874else
3875 # When we are sourced in execute mode, \$file and \$echo are already set.
3876 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3877 echo=\"$qecho\"
3878 file=\"\$0\"
3879 # Make sure echo works.
3880 if test \"X\$1\" = X--no-reexec; then
3881 # Discard the --no-reexec flag, and continue.
3882 shift
3883 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
3884 # Yippee, \$echo works!
3885 :
3886 else
3887 # Restart under the correct shell, and then maybe \$echo will work.
3888 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3889 fi
3890 fi\
3891"
3892 $echo >> $output "\
3893
3894 # Find the directory that this script lives in.
3895 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3896 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3897
3898 # Follow symbolic links until we get to the real thisdir.
3899 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
3900 while test -n \"\$file\"; do
3901 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3902
3903 # If there was a directory component, then change thisdir.
3904 if test \"x\$destdir\" != \"x\$file\"; then
3905 case \"\$destdir\" in
3906 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3907 *) thisdir=\"\$thisdir/\$destdir\" ;;
3908 esac
3909 fi
3910
3911 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3912 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
3913 done
3914
3915 # Try to get the absolute directory name.
3916 absdir=\`cd \"\$thisdir\" && pwd\`
3917 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3918"
3919
3920 if test "$fast_install" = yes; then
3921 echo >> $output "\
3922 program=lt-'$outputname'$exeext
3923 progdir=\"\$thisdir/$objdir\"
3924
3925 if test ! -f \"\$progdir/\$program\" || \\
3926 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
3927 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3928
3929 file=\"\$\$-\$program\"
3930
3931 if test ! -d \"\$progdir\"; then
3932 $mkdir \"\$progdir\"
3933 else
3934 $rm \"\$progdir/\$file\"
3935 fi"
3936
3937 echo >> $output "\
3938
3939 # relink executable if necessary
3940 if test -n \"\$relink_command\"; then
3941 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
3942 else
3943 $echo \"\$relink_command_output\" >&2
3944 $rm \"\$progdir/\$file\"
3945 exit 1
3946 fi
3947 fi
3948
3949 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3950 { $rm \"\$progdir/\$program\";
3951 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3952 $rm \"\$progdir/\$file\"
3953 fi"
3954 else
3955 echo >> $output "\
3956 program='$outputname'
3957 progdir=\"\$thisdir/$objdir\"
3958"
3959 fi
3960
3961 echo >> $output "\
3962
3963 if test -f \"\$progdir/\$program\"; then"
3964
3965 # Export our shlibpath_var if we have one.
3966 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3967 $echo >> $output "\
3968 # Add our own library path to $shlibpath_var
3969 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3970
3971 # Some systems cannot cope with colon-terminated $shlibpath_var
3972 # The second colon is a workaround for a bug in BeOS R4 sed
3973 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3974
3975 export $shlibpath_var
3976"
3977 fi
3978
3979 # fixup the dll searchpath if we need to.
3980 if test -n "$dllsearchpath"; then
3981 $echo >> $output "\
3982 # Add the dll search path components to the executable PATH
3983 PATH=$dllsearchpath:\$PATH
3984"
3985 fi
3986
3987 $echo >> $output "\
3988 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3989 # Run the actual program with our arguments.
3990"
3991 case $host in
3992 # win32 systems need to use the prog path for dll
3993 # lookup to work
3994 *-*-cygwin* | *-*-pw32*)
3995 $echo >> $output "\
3996 exec \$progdir/\$program \${1+\"\$@\"}
3997"
3998 ;;
3999
4000 # Backslashes separate directories on plain windows
4001 *-*-mingw | *-*-os2*)
4002 $echo >> $output "\
4003 exec \$progdir\\\\\$program \${1+\"\$@\"}
4004"
4005 ;;
4006
4007 *)
4008 $echo >> $output "\
4009 # Export the path to the program.
4010 PATH=\"\$progdir:\$PATH\"
4011 export PATH
4012
4013 exec \$program \${1+\"\$@\"}
4014"
4015 ;;
4016 esac
4017 $echo >> $output "\
4018 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
4019 exit 1
4020 fi
4021 else
4022 # The program doesn't exist.
4023 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
4024 \$echo \"This script is just a wrapper for \$program.\" 1>&2
4025 echo \"See the $PACKAGE documentation for more information.\" 1>&2
4026 exit 1
4027 fi
4028fi\
4029"
4030 chmod +x $output
4031 fi
4032 exit 0
4033 ;;
4034 esac
4035
4036 # See if we need to build an old-fashioned archive.
4037 for oldlib in $oldlibs; do
4038
4039 if test "$build_libtool_libs" = convenience; then
4040 oldobjs="$libobjs_save"
4041 addlibs="$convenience"
4042 build_libtool_libs=no
4043 else
4044 if test "$build_libtool_libs" = module; then
4045 oldobjs="$libobjs_save"
4046 build_libtool_libs=no
4047 else
4048 oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
4049 fi
4050 addlibs="$old_convenience"
4051 fi
4052
4053 if test -n "$addlibs"; then
4054 gentop="$output_objdir/${outputname}x"
4055 $show "${rm}r $gentop"
4056 $run ${rm}r "$gentop"
4057 $show "mkdir $gentop"
4058 $run mkdir "$gentop"
4059 status=$?
4060 if test $status -ne 0 && test ! -d "$gentop"; then
4061 exit $status
4062 fi
4063 generated="$generated $gentop"
4064
4065 # Add in members from convenience archives.
4066 for xlib in $addlibs; do
4067 # Extract the objects.
4068 case $xlib in
4069 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
4070 *) xabs=`pwd`"/$xlib" ;;
4071 esac
4072 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
4073 xdir="$gentop/$xlib"
4074
4075 $show "${rm}r $xdir"
4076 $run ${rm}r "$xdir"
4077 $show "mkdir $xdir"
4078 $run mkdir "$xdir"
4079 status=$?
4080 if test $status -ne 0 && test ! -d "$xdir"; then
4081 exit $status
4082 fi
4083 $show "(cd $xdir && $AR x $xabs)"
4084 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
4085
4086 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
4087 done
4088 fi
4089
4090 # Do each command in the archive commands.
4091 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
4092 eval cmds=\"$old_archive_from_new_cmds\"
4093 else
4094 # Ensure that we have .o objects in place in case we decided
4095 # not to build a shared library, and have fallen back to building
4096 # static libs even though --disable-static was passed!
4097 for oldobj in $oldobjs; do
4098 if test ! -f $oldobj; then
4099 xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
4100 if test "X$xdir" = "X$oldobj"; then
4101 xdir="."
4102 else
4103 xdir="$xdir"
4104 fi
4105 baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
4106 obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
4107 $show "(cd $xdir && ${LN_S} $obj $baseobj)"
4108 $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
4109 fi
4110 done
4111
4112 eval cmds=\"$old_archive_cmds\"
4113 fi
4114 save_ifs="$IFS"; IFS='~'
4115 for cmd in $cmds; do
4116 IFS="$save_ifs"
4117 $show "$cmd"
4118 $run eval "$cmd" || exit $?
4119 done
4120 IFS="$save_ifs"
4121 done
4122
4123 if test -n "$generated"; then
4124 $show "${rm}r$generated"
4125 $run ${rm}r$generated
4126 fi
4127
4128 # Now create the libtool archive.
4129 case $output in
4130 *.la)
4131 old_library=
4132 test "$build_old_libs" = yes && old_library="$libname.$libext"
4133 $show "creating $output"
4134
4135 # Preserve any variables that may affect compiler behavior
4136 for var in $variables_saved_for_relink; do
4137 if eval test -z \"\${$var+set}\"; then
4138 relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4139 elif eval var_value=\$$var; test -z "$var_value"; then
4140 relink_command="$var=; export $var; $relink_command"
4141 else
4142 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4143 relink_command="$var=\"$var_value\"; export $var; $relink_command"
4144 fi
4145 done
4146 # Quote the link command for shipping.
4147 relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
4148 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4149
4150 # Only create the output if not a dry run.
4151 if test -z "$run"; then
4152 for installed in no yes; do
4153 if test "$installed" = yes; then
4154 if test -z "$install_libdir"; then
4155 break
4156 fi
4157 output="$output_objdir/$outputname"i
4158 # Replace all uninstalled libtool libraries with the installed ones
4159 newdependency_libs=
4160 for deplib in $dependency_libs; do
4161 case $deplib in
4162 *.la)
4163 name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
4164 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
4165 if test -z "$libdir"; then
4166 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
4167 exit 1
4168 fi
4169 newdependency_libs="$newdependency_libs $libdir/$name"
4170 ;;
4171 *) newdependency_libs="$newdependency_libs $deplib" ;;
4172 esac
4173 done
4174 dependency_libs="$newdependency_libs"
4175 newdlfiles=
4176 for lib in $dlfiles; do
4177 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4178 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4179 if test -z "$libdir"; then
4180 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4181 exit 1
4182 fi
4183 newdlfiles="$newdlfiles $libdir/$name"
4184 done
4185 dlfiles="$newdlfiles"
4186 newdlprefiles=
4187 for lib in $dlprefiles; do
4188 name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
4189 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
4190 if test -z "$libdir"; then
4191 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4192 exit 1
4193 fi
4194 newdlprefiles="$newdlprefiles $libdir/$name"
4195 done
4196 dlprefiles="$newdlprefiles"
4197 fi
4198 $rm $output
4199 # place dlname in correct position for cygwin
4200 tdlname=$dlname
4201 case $host,$output,$installed,$module,$dlname in
4202 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
4203 esac
4204 $echo > $output "\
4205# $outputname - a libtool library file
4206# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4207#
4208# Please DO NOT delete this file!
4209# It is necessary for linking the library.
4210
4211# The name that we can dlopen(3).
4212dlname='$tdlname'
4213
4214# Names of this library.
4215library_names='$library_names'
4216
4217# The name of the static archive.
4218old_library='$old_library'
4219
4220# Libraries that this one depends upon.
4221dependency_libs='$dependency_libs'
4222
4223# Version information for $libname.
4224current=$current
4225age=$age
4226revision=$revision
4227
4228# Is this an already installed library?
4229installed=$installed
4230
4231# Files to dlopen/dlpreopen
4232dlopen='$dlfiles'
4233dlpreopen='$dlprefiles'
4234
4235# Directory that this library needs to be installed in:
4236libdir='$install_libdir'"
4237 if test "$installed" = no && test $need_relink = yes; then
4238 $echo >> $output "\
4239relink_command=\"$relink_command\""
4240 fi
4241 done
4242 fi
4243
4244 # Do a symbolic link so that the libtool archive can be found in
4245 # LD_LIBRARY_PATH before the program is installed.
4246 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
4247 $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
4248 ;;
4249 esac
4250 exit 0
4251 ;;
4252
4253 # libtool install mode
4254 install)
4255 modename="$modename: install"
4256
4257 # There may be an optional sh(1) argument at the beginning of
4258 # install_prog (especially on Windows NT).
4259 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
4260 # Allow the use of GNU shtool's install command.
4261 $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
4262 # Aesthetically quote it.
4263 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
4264 case $arg in
4265 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4266 arg="\"$arg\""
4267 ;;
4268 esac
4269 install_prog="$arg "
4270 arg="$1"
4271 shift
4272 else
4273 install_prog=
4274 arg="$nonopt"
4275 fi
4276
4277 # The real first argument should be the name of the installation program.
4278 # Aesthetically quote it.
4279 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4280 case $arg in
4281 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4282 arg="\"$arg\""
4283 ;;
4284 esac
4285 install_prog="$install_prog$arg"
4286
4287 # We need to accept at least all the BSD install flags.
4288 dest=
4289 files=
4290 opts=
4291 prev=
4292 install_type=
4293 isdir=no
4294 stripme=
4295 for arg
4296 do
4297 if test -n "$dest"; then
4298 files="$files $dest"
4299 dest="$arg"
4300 continue
4301 fi
4302
4303 case $arg in
4304 -d) isdir=yes ;;
4305 -f) prev="-f" ;;
4306 -g) prev="-g" ;;
4307 -m) prev="-m" ;;
4308 -o) prev="-o" ;;
4309 -s)
4310 stripme=" -s"
4311 continue
4312 ;;
4313 -*) ;;
4314
4315 *)
4316 # If the previous option needed an argument, then skip it.
4317 if test -n "$prev"; then
4318 prev=
4319 else
4320 dest="$arg"
4321 continue
4322 fi
4323 ;;
4324 esac
4325
4326 # Aesthetically quote the argument.
4327 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
4328 case $arg in
4329 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
4330 arg="\"$arg\""
4331 ;;
4332 esac
4333 install_prog="$install_prog $arg"
4334 done
4335
4336 if test -z "$install_prog"; then
4337 $echo "$modename: you must specify an install program" 1>&2
4338 $echo "$help" 1>&2
4339 exit 1
4340 fi
4341
4342 if test -n "$prev"; then
4343 $echo "$modename: the \`$prev' option requires an argument" 1>&2
4344 $echo "$help" 1>&2
4345 exit 1
4346 fi
4347
4348 if test -z "$files"; then
4349 if test -z "$dest"; then
4350 $echo "$modename: no file or destination specified" 1>&2
4351 else
4352 $echo "$modename: you must specify a destination" 1>&2
4353 fi
4354 $echo "$help" 1>&2
4355 exit 1
4356 fi
4357
4358 # Strip any trailing slash from the destination.
4359 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
4360
4361 # Check to see that the destination is a directory.
4362 test -d "$dest" && isdir=yes
4363 if test "$isdir" = yes; then
4364 destdir="$dest"
4365 destname=
4366 else
4367 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
4368 test "X$destdir" = "X$dest" && destdir=.
4369 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
4370
4371 # Not a directory, so check to see that there is only one file specified.
4372 set dummy $files
4373 if test $# -gt 2; then
4374 $echo "$modename: \`$dest' is not a directory" 1>&2
4375 $echo "$help" 1>&2
4376 exit 1
4377 fi
4378 fi
4379 case $destdir in
4380 [\\/]* | [A-Za-z]:[\\/]*) ;;
4381 *)
4382 for file in $files; do
4383 case $file in
4384 *.lo) ;;
4385 *)
4386 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
4387 $echo "$help" 1>&2
4388 exit 1
4389 ;;
4390 esac
4391 done
4392 ;;
4393 esac
4394
4395 # This variable tells wrapper scripts just to set variables rather
4396 # than running their programs.
4397 libtool_install_magic="$magic"
4398
4399 staticlibs=
4400 future_libdirs=
4401 current_libdirs=
4402 for file in $files; do
4403
4404 # Do each installation.
4405 case $file in
4406 *.$libext)
4407 # Do the static libraries later.
4408 staticlibs="$staticlibs $file"
4409 ;;
4410
4411 *.la)
4412 # Check to see that this really is a libtool archive.
4413 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4414 else
4415 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
4416 $echo "$help" 1>&2
4417 exit 1
4418 fi
4419
4420 library_names=
4421 old_library=
4422 relink_command=
4423 # If there is no directory component, then add one.
4424 case $file in
4425 */* | *\\*) . $file ;;
4426 *) . ./$file ;;
4427 esac
4428
4429 # Add the libdir to current_libdirs if it is the destination.
4430 if test "X$destdir" = "X$libdir"; then
4431 case "$current_libdirs " in
4432 *" $libdir "*) ;;
4433 *) current_libdirs="$current_libdirs $libdir" ;;
4434 esac
4435 else
4436 # Note the libdir as a future libdir.
4437 case "$future_libdirs " in
4438 *" $libdir "*) ;;
4439 *) future_libdirs="$future_libdirs $libdir" ;;
4440 esac
4441 fi
4442
4443 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
4444 test "X$dir" = "X$file/" && dir=
4445 dir="$dir$objdir"
4446
4447 if test -n "$relink_command"; then
4448 $echo "$modename: warning: relinking \`$file'" 1>&2
4449 $show "$relink_command"
4450 if $run eval "$relink_command"; then :
4451 else
4452 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4453 continue
4454 fi
4455 fi
4456
4457 # See the names of the shared library.
4458 set dummy $library_names
4459 if test -n "$2"; then
4460 realname="$2"
4461 shift
4462 shift
4463
4464 srcname="$realname"
4465 test -n "$relink_command" && srcname="$realname"T
4466
4467 # Install the shared library and build the symlinks.
4468 $show "$install_prog $dir/$srcname $destdir/$realname"
4469 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
4470 if test -n "$stripme" && test -n "$striplib"; then
4471 $show "$striplib $destdir/$realname"
4472 $run eval "$striplib $destdir/$realname" || exit $?
4473 fi
4474
4475 if test $# -gt 0; then
4476 # Delete the old symlinks, and create new ones.
4477 for linkname
4478 do
4479 if test "$linkname" != "$realname"; then
4480 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4481 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
4482 fi
4483 done
4484 fi
4485
4486 # Do each command in the postinstall commands.
4487 lib="$destdir/$realname"
4488 eval cmds=\"$postinstall_cmds\"
4489 save_ifs="$IFS"; IFS='~'
4490 for cmd in $cmds; do
4491 IFS="$save_ifs"
4492 $show "$cmd"
4493 $run eval "$cmd" || exit $?
4494 done
4495 IFS="$save_ifs"
4496 fi
4497
4498 # Install the pseudo-library for information purposes.
4499 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4500 instname="$dir/$name"i
4501 $show "$install_prog $instname $destdir/$name"
4502 $run eval "$install_prog $instname $destdir/$name" || exit $?
4503
4504 # Maybe install the static library, too.
4505 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
4506 ;;
4507
4508 *.lo)
4509 # Install (i.e. copy) a libtool object.
4510
4511 # Figure out destination file name, if it wasn't already specified.
4512 if test -n "$destname"; then
4513 destfile="$destdir/$destname"
4514 else
4515 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4516 destfile="$destdir/$destfile"
4517 fi
4518
4519 # Deduce the name of the destination old-style object file.
4520 case $destfile in
4521 *.lo)
4522 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
4523 ;;
4524 *.$objext)
4525 staticdest="$destfile"
4526 destfile=
4527 ;;
4528 *)
4529 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
4530 $echo "$help" 1>&2
4531 exit 1
4532 ;;
4533 esac
4534
4535 # Install the libtool object if requested.
4536 if test -n "$destfile"; then
4537 $show "$install_prog $file $destfile"
4538 $run eval "$install_prog $file $destfile" || exit $?
4539 fi
4540
4541 # Install the old object if enabled.
4542 if test "$build_old_libs" = yes; then
4543 # Deduce the name of the old-style object file.
4544 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
4545
4546 $show "$install_prog $staticobj $staticdest"
4547 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
4548 fi
4549 exit 0
4550 ;;
4551
4552 *)
4553 # Figure out destination file name, if it wasn't already specified.
4554 if test -n "$destname"; then
4555 destfile="$destdir/$destname"
4556 else
4557 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4558 destfile="$destdir/$destfile"
4559 fi
4560
4561 # Do a test to see if this is really a libtool program.
4562 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4563 notinst_deplibs=
4564 relink_command=
4565
4566 # If there is no directory component, then add one.
4567 case $file in
4568 */* | *\\*) . $file ;;
4569 *) . ./$file ;;
4570 esac
4571
4572 # Check the variables that should have been set.
4573 if test -z "$notinst_deplibs"; then
4574 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
4575 exit 1
4576 fi
4577
4578 finalize=yes
4579 for lib in $notinst_deplibs; do
4580 # Check to see that each library is installed.
4581 libdir=
4582 if test -f "$lib"; then
4583 # If there is no directory component, then add one.
4584 case $lib in
4585 */* | *\\*) . $lib ;;
4586 *) . ./$lib ;;
4587 esac
4588 fi
4589 libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
4590 if test -n "$libdir" && test ! -f "$libfile"; then
4591 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
4592 finalize=no
4593 fi
4594 done
4595
4596 relink_command=
4597 # If there is no directory component, then add one.
4598 case $file in
4599 */* | *\\*) . $file ;;
4600 *) . ./$file ;;
4601 esac
4602
4603 outputname=
4604 if test "$fast_install" = no && test -n "$relink_command"; then
4605 if test "$finalize" = yes && test -z "$run"; then
4606 tmpdir="/tmp"
4607 test -n "$TMPDIR" && tmpdir="$TMPDIR"
4608 tmpdir="$tmpdir/libtool-$$"
4609 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
4610 else
4611 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
4612 continue
4613 fi
4614 file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4615 outputname="$tmpdir/$file"
4616 # Replace the output file specification.
4617 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
4618
4619 $show "$relink_command"
4620 if $run eval "$relink_command"; then :
4621 else
4622 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
4623 ${rm}r "$tmpdir"
4624 continue
4625 fi
4626 file="$outputname"
4627 else
4628 $echo "$modename: warning: cannot relink \`$file'" 1>&2
4629 fi
4630 else
4631 # Install the binary that we compiled earlier.
4632 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
4633 fi
4634 fi
4635
4636 # remove .exe since cygwin /usr/bin/install will append another
4637 # one anyways
4638 case $install_prog,$host in
4639 /usr/bin/install*,*cygwin*)
4640 case $file:$destfile in
4641 *.exe:*.exe)
4642 # this is ok
4643 ;;
4644 *.exe:*)
4645 destfile=$destfile.exe
4646 ;;
4647 *:*.exe)
4648 destfile=`echo $destfile | sed -e 's,.exe$,,'`
4649 ;;
4650 esac
4651 ;;
4652 esac
4653 $show "$install_prog$stripme $file $destfile"
4654 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
4655 test -n "$outputname" && ${rm}r "$tmpdir"
4656 ;;
4657 esac
4658 done
4659
4660 for file in $staticlibs; do
4661 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4662
4663 # Set up the ranlib parameters.
4664 oldlib="$destdir/$name"
4665
4666 $show "$install_prog $file $oldlib"
4667 $run eval "$install_prog \$file \$oldlib" || exit $?
4668
4669 if test -n "$stripme" && test -n "$striplib"; then
4670 $show "$old_striplib $oldlib"
4671 $run eval "$old_striplib $oldlib" || exit $?
4672 fi
4673
4674 # Do each command in the postinstall commands.
4675 eval cmds=\"$old_postinstall_cmds\"
4676 save_ifs="$IFS"; IFS='~'
4677 for cmd in $cmds; do
4678 IFS="$save_ifs"
4679 $show "$cmd"
4680 $run eval "$cmd" || exit $?
4681 done
4682 IFS="$save_ifs"
4683 done
4684
4685 if test -n "$future_libdirs"; then
4686 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
4687 fi
4688
4689 if test -n "$current_libdirs"; then
4690 # Maybe just do a dry run.
4691 test -n "$run" && current_libdirs=" -n$current_libdirs"
4692 exec_cmd='$SHELL $0 --finish$current_libdirs'
4693 else
4694 exit 0
4695 fi
4696 ;;
4697
4698 # libtool finish mode
4699 finish)
4700 modename="$modename: finish"
4701 libdirs="$nonopt"
4702 admincmds=
4703
4704 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
4705 for dir
4706 do
4707 libdirs="$libdirs $dir"
4708 done
4709
4710 for libdir in $libdirs; do
4711 if test -n "$finish_cmds"; then
4712 # Do each command in the finish commands.
4713 eval cmds=\"$finish_cmds\"
4714 save_ifs="$IFS"; IFS='~'
4715 for cmd in $cmds; do
4716 IFS="$save_ifs"
4717 $show "$cmd"
4718 $run eval "$cmd" || admincmds="$admincmds
4719 $cmd"
4720 done
4721 IFS="$save_ifs"
4722 fi
4723 if test -n "$finish_eval"; then
4724 # Do the single finish_eval.
4725 eval cmds=\"$finish_eval\"
4726 $run eval "$cmds" || admincmds="$admincmds
4727 $cmds"
4728 fi
4729 done
4730 fi
4731
4732 # Exit here if they wanted silent mode.
4733 test "$show" = ":" && exit 0
4734
4735 echo "----------------------------------------------------------------------"
4736 echo "Libraries have been installed in:"
4737 for libdir in $libdirs; do
4738 echo " $libdir"
4739 done
4740 echo
4741 echo "If you ever happen to want to link against installed libraries"
4742 echo "in a given directory, LIBDIR, you must either use libtool, and"
4743 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
4744 echo "flag during linking and do at least one of the following:"
4745 if test -n "$shlibpath_var"; then
4746 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
4747 echo " during execution"
4748 fi
4749 if test -n "$runpath_var"; then
4750 echo " - add LIBDIR to the \`$runpath_var' environment variable"
4751 echo " during linking"
4752 fi
4753 if test -n "$hardcode_libdir_flag_spec"; then
4754 libdir=LIBDIR
4755 eval flag=\"$hardcode_libdir_flag_spec\"
4756
4757 echo " - use the \`$flag' linker flag"
4758 fi
4759 if test -n "$admincmds"; then
4760 echo " - have your system administrator run these commands:$admincmds"
4761 fi
4762 if test -f /etc/ld.so.conf; then
4763 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
4764 fi
4765 echo
4766 echo "See any operating system documentation about shared libraries for"
4767 echo "more information, such as the ld(1) and ld.so(8) manual pages."
4768 echo "----------------------------------------------------------------------"
4769 exit 0
4770 ;;
4771
4772 # libtool execute mode
4773 execute)
4774 modename="$modename: execute"
4775
4776 # The first argument is the command name.
4777 cmd="$nonopt"
4778 if test -z "$cmd"; then
4779 $echo "$modename: you must specify a COMMAND" 1>&2
4780 $echo "$help"
4781 exit 1
4782 fi
4783
4784 # Handle -dlopen flags immediately.
4785 for file in $execute_dlfiles; do
4786 if test ! -f "$file"; then
4787 $echo "$modename: \`$file' is not a file" 1>&2
4788 $echo "$help" 1>&2
4789 exit 1
4790 fi
4791
4792 dir=
4793 case $file in
4794 *.la)
4795 # Check to see that this really is a libtool archive.
4796 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
4797 else
4798 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
4799 $echo "$help" 1>&2
4800 exit 1
4801 fi
4802
4803 # Read the libtool library.
4804 dlname=
4805 library_names=
4806
4807 # If there is no directory component, then add one.
4808 case $file in
4809 */* | *\\*) . $file ;;
4810 *) . ./$file ;;
4811 esac
4812
4813 # Skip this library if it cannot be dlopened.
4814 if test -z "$dlname"; then
4815 # Warn if it was a shared library.
4816 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
4817 continue
4818 fi
4819
4820 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4821 test "X$dir" = "X$file" && dir=.
4822
4823 if test -f "$dir/$objdir/$dlname"; then
4824 dir="$dir/$objdir"
4825 else
4826 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
4827 exit 1
4828 fi
4829 ;;
4830
4831 *.lo)
4832 # Just add the directory containing the .lo file.
4833 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4834 test "X$dir" = "X$file" && dir=.
4835 ;;
4836
4837 *)
4838 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
4839 continue
4840 ;;
4841 esac
4842
4843 # Get the absolute pathname.
4844 absdir=`cd "$dir" && pwd`
4845 test -n "$absdir" && dir="$absdir"
4846
4847 # Now add the directory to shlibpath_var.
4848 if eval "test -z \"\$$shlibpath_var\""; then
4849 eval "$shlibpath_var=\"\$dir\""
4850 else
4851 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
4852 fi
4853 done
4854
4855 # This variable tells wrapper scripts just to set shlibpath_var
4856 # rather than running their programs.
4857 libtool_execute_magic="$magic"
4858
4859 # Check if any of the arguments is a wrapper script.
4860 args=
4861 for file
4862 do
4863 case $file in
4864 -*) ;;
4865 *)
4866 # Do a test to see if this is really a libtool program.
4867 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4868 # If there is no directory component, then add one.
4869 case $file in
4870 */* | *\\*) . $file ;;
4871 *) . ./$file ;;
4872 esac
4873
4874 # Transform arg to wrapped name.
4875 file="$progdir/$program"
4876 fi
4877 ;;
4878 esac
4879 # Quote arguments (to preserve shell metacharacters).
4880 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
4881 args="$args \"$file\""
4882 done
4883
4884 if test -z "$run"; then
4885 if test -n "$shlibpath_var"; then
4886 # Export the shlibpath_var.
4887 eval "export $shlibpath_var"
4888 fi
4889
4890 # Restore saved enviroment variables
4891 if test "${save_LC_ALL+set}" = set; then
4892 LC_ALL="$save_LC_ALL"; export LC_ALL
4893 fi
4894 if test "${save_LANG+set}" = set; then
4895 LANG="$save_LANG"; export LANG
4896 fi
4897
4898 # Now prepare to actually exec the command.
4899 exec_cmd='"$cmd"$args'
4900 else
4901 # Display what would be done.
4902 if test -n "$shlibpath_var"; then
4903 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
4904 $echo "export $shlibpath_var"
4905 fi
4906 $echo "$cmd$args"
4907 exit 0
4908 fi
4909 ;;
4910
4911 # libtool clean and uninstall mode
4912 clean | uninstall)
4913 modename="$modename: $mode"
4914 rm="$nonopt"
4915 files=
4916 rmforce=
4917 exit_status=0
4918
4919 # This variable tells wrapper scripts just to set variables rather
4920 # than running their programs.
4921 libtool_install_magic="$magic"
4922
4923 for arg
4924 do
4925 case $arg in
4926 -f) rm="$rm $arg"; rmforce=yes ;;
4927 -*) rm="$rm $arg" ;;
4928 *) files="$files $arg" ;;
4929 esac
4930 done
4931
4932 if test -z "$rm"; then
4933 $echo "$modename: you must specify an RM program" 1>&2
4934 $echo "$help" 1>&2
4935 exit 1
4936 fi
4937
4938 rmdirs=
4939
4940 for file in $files; do
4941 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
4942 if test "X$dir" = "X$file"; then
4943 dir=.
4944 objdir="$objdir"
4945 else
4946 objdir="$dir/$objdir"
4947 fi
4948 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
4949 test $mode = uninstall && objdir="$dir"
4950
4951 # Remember objdir for removal later, being careful to avoid duplicates
4952 if test $mode = clean; then
4953 case " $rmdirs " in
4954 *" $objdir "*) ;;
4955 *) rmdirs="$rmdirs $objdir" ;;
4956 esac
4957 fi
4958
4959 # Don't error if the file doesn't exist and rm -f was used.
4960 if (test -L "$file") >/dev/null 2>&1 \
4961 || (test -h "$file") >/dev/null 2>&1 \
4962 || test -f "$file"; then
4963 :
4964 elif test -d "$file"; then
4965 exit_status=1
4966 continue
4967 elif test "$rmforce" = yes; then
4968 continue
4969 fi
4970
4971 rmfiles="$file"
4972
4973 case $name in
4974 *.la)
4975 # Possibly a libtool archive, so verify it.
4976 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
4977 . $dir/$name
4978
4979 # Delete the libtool libraries and symlinks.
4980 for n in $library_names; do
4981 rmfiles="$rmfiles $objdir/$n"
4982 done
4983 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
4984 test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
4985
4986 if test $mode = uninstall; then
4987 if test -n "$library_names"; then
4988 # Do each command in the postuninstall commands.
4989 eval cmds=\"$postuninstall_cmds\"
4990 save_ifs="$IFS"; IFS='~'
4991 for cmd in $cmds; do
4992 IFS="$save_ifs"
4993 $show "$cmd"
4994 $run eval "$cmd"
4995 if test $? != 0 && test "$rmforce" != yes; then
4996 exit_status=1
4997 fi
4998 done
4999 IFS="$save_ifs"
5000 fi
5001
5002 if test -n "$old_library"; then
5003 # Do each command in the old_postuninstall commands.
5004 eval cmds=\"$old_postuninstall_cmds\"
5005 save_ifs="$IFS"; IFS='~'
5006 for cmd in $cmds; do
5007 IFS="$save_ifs"
5008 $show "$cmd"
5009 $run eval "$cmd"
5010 if test $? != 0 && test "$rmforce" != yes; then
5011 exit_status=1
5012 fi
5013 done
5014 IFS="$save_ifs"
5015 fi
5016 # FIXME: should reinstall the best remaining shared library.
5017 fi
5018 fi
5019 ;;
5020
5021 *.lo)
5022 if test "$build_old_libs" = yes; then
5023 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
5024 rmfiles="$rmfiles $dir/$oldobj"
5025 fi
5026 ;;
5027
5028 *)
5029 # Do a test to see if this is a libtool program.
5030 if test $mode = clean &&
5031 (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
5032 relink_command=
5033 . $dir/$file
5034
5035 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
5036 if test "$fast_install" = yes && test -n "$relink_command"; then
5037 rmfiles="$rmfiles $objdir/lt-$name"
5038 fi
5039 fi
5040 ;;
5041 esac
5042 $show "$rm $rmfiles"
5043 $run $rm $rmfiles || exit_status=1
5044 done
5045
5046 # Try to remove the ${objdir}s in the directories where we deleted files
5047 for dir in $rmdirs; do
5048 if test -d "$dir"; then
5049 $show "rmdir $dir"
5050 $run rmdir $dir >/dev/null 2>&1
5051 fi
5052 done
5053
5054 exit $exit_status
5055 ;;
5056
5057 "")
5058 $echo "$modename: you must specify a MODE" 1>&2
5059 $echo "$generic_help" 1>&2
5060 exit 1
5061 ;;
5062 esac
5063
5064 if test -z "$exec_cmd"; then
5065 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5066 $echo "$generic_help" 1>&2
5067 exit 1
5068 fi
5069fi # test -z "$show_help"
5070
5071if test -n "$exec_cmd"; then
5072 eval exec $exec_cmd
5073 exit 1
5074fi
5075
5076# We need to display help for each of the modes.
5077case $mode in
5078"") $echo \
5079"Usage: $modename [OPTION]... [MODE-ARG]...
5080
5081Provide generalized library-building support services.
5082
5083 --config show all configuration variables
5084 --debug enable verbose shell tracing
5085-n, --dry-run display commands without modifying any files
5086 --features display basic configuration information and exit
5087 --finish same as \`--mode=finish'
5088 --help display this help message and exit
5089 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
5090 --quiet same as \`--silent'
5091 --silent don't print informational messages
5092 --version print version information
5093
5094MODE must be one of the following:
5095
5096 clean remove files from the build directory
5097 compile compile a source file into a libtool object
5098 execute automatically set library path, then run a program
5099 finish complete the installation of libtool libraries
5100 install install libraries or executables
5101 link create a library or an executable
5102 uninstall remove libraries from an installed directory
5103
5104MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
5105a more detailed description of MODE."
5106 exit 0
5107 ;;
5108
5109clean)
5110 $echo \
5111"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
5112
5113Remove files from the build directory.
5114
5115RM is the name of the program to use to delete files associated with each FILE
5116(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5117to RM.
5118
5119If FILE is a libtool library, object or program, all the files associated
5120with it are deleted. Otherwise, only FILE itself is deleted using RM."
5121 ;;
5122
5123compile)
5124 $echo \
5125"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
5126
5127Compile a source file into a libtool library object.
5128
5129This mode accepts the following additional options:
5130
5131 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
5132 -prefer-pic try to building PIC objects only
5133 -prefer-non-pic try to building non-PIC objects only
5134 -static always build a \`.o' file suitable for static linking
5135
5136COMPILE-COMMAND is a command to be used in creating a \`standard' object file
5137from the given SOURCEFILE.
5138
5139The output file name is determined by removing the directory component from
5140SOURCEFILE, then substituting the C source code suffix \`.c' with the
5141library object suffix, \`.lo'."
5142 ;;
5143
5144execute)
5145 $echo \
5146"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
5147
5148Automatically set library path, then run a program.
5149
5150This mode accepts the following additional options:
5151
5152 -dlopen FILE add the directory containing FILE to the library path
5153
5154This mode sets the library path environment variable according to \`-dlopen'
5155flags.
5156
5157If any of the ARGS are libtool executable wrappers, then they are translated
5158into their corresponding uninstalled binary, and any of their required library
5159directories are added to the library path.
5160
5161Then, COMMAND is executed, with ARGS as arguments."
5162 ;;
5163
5164finish)
5165 $echo \
5166"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
5167
5168Complete the installation of libtool libraries.
5169
5170Each LIBDIR is a directory that contains libtool libraries.
5171
5172The commands that this mode executes may require superuser privileges. Use
5173the \`--dry-run' option if you just want to see what would be executed."
5174 ;;
5175
5176install)
5177 $echo \
5178"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
5179
5180Install executables or libraries.
5181
5182INSTALL-COMMAND is the installation command. The first component should be
5183either the \`install' or \`cp' program.
5184
5185The rest of the components are interpreted as arguments to that command (only
5186BSD-compatible install options are recognized)."
5187 ;;
5188
5189link)
5190 $echo \
5191"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
5192
5193Link object files or libraries together to form another library, or to
5194create an executable program.
5195
5196LINK-COMMAND is a command using the C compiler that you would use to create
5197a program from several object files.
5198
5199The following components of LINK-COMMAND are treated specially:
5200
5201 -all-static do not do any dynamic linking at all
5202 -avoid-version do not add a version suffix if possible
5203 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
5204 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
5205 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
5206 -export-symbols SYMFILE
5207 try to export only the symbols listed in SYMFILE
5208 -export-symbols-regex REGEX
5209 try to export only the symbols matching REGEX
5210 -LLIBDIR search LIBDIR for required installed libraries
5211 -lNAME OUTPUT-FILE requires the installed library libNAME
5212 -module build a library that can dlopened
5213 -no-fast-install disable the fast-install mode
5214 -no-install link a not-installable executable
5215 -no-undefined declare that a library does not refer to external symbols
5216 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
5217 -release RELEASE specify package release information
5218 -rpath LIBDIR the created library will eventually be installed in LIBDIR
5219 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
5220 -static do not do any dynamic linking of libtool libraries
5221 -version-info CURRENT[:REVISION[:AGE]]
5222 specify library version info [each variable defaults to 0]
5223
5224All other options (arguments beginning with \`-') are ignored.
5225
5226Every other argument is treated as a filename. Files ending in \`.la' are
5227treated as uninstalled libtool libraries, other files are standard or library
5228object files.
5229
5230If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
5231only library objects (\`.lo' files) may be specified, and \`-rpath' is
5232required, except when creating a convenience library.
5233
5234If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
5235using \`ar' and \`ranlib', or on Windows using \`lib'.
5236
5237If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
5238is created, otherwise an executable program is created."
5239 ;;
5240
5241uninstall)
5242 $echo \
5243"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
5244
5245Remove libraries from an installation directory.
5246
5247RM is the name of the program to use to delete files associated with each FILE
5248(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
5249to RM.
5250
5251If FILE is a libtool library, all the files associated with it are deleted.
5252Otherwise, only FILE itself is deleted using RM."
5253 ;;
5254
5255*)
5256 $echo "$modename: invalid operation mode \`$mode'" 1>&2
5257 $echo "$help" 1>&2
5258 exit 1
5259 ;;
5260esac
5261
5262echo
5263$echo "Try \`$modename --help' for more information about other modes."
5264
5265exit 0
5266
5267# Local Variables:
5268# mode:shell-script
5269# sh-indentation:2
5270# End:
Note: See TracBrowser for help on using the repository browser.