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