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