comparison ltmain.sh @ 0:b8f7423e385c

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

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