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