1
# ltmain.sh - Provide generalized library-building support services.
2
# NOTE: Changing this file will not affect anything until you rerun ltconfig.
4
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
5
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7
# This program is free software; you can redistribute it and/or modify
8
# it under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 2 of the License, or
10
# (at your option) any later version.
12
# This program is distributed in the hope that it will be useful, but
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
# General Public License for more details.
17
# You should have received a copy of the GNU General Public License
18
# along with this program; if not, write to the Free Software
19
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21
# As a special exception to the GNU General Public License, if you
22
# distribute this file as part of a program that contains a
23
# configuration script generated by Autoconf, you may include it under
24
# the same distribution terms that you use for the rest of that program.
26
# Check that we have a working $echo.
27
if test "X$1" = X--no-reexec; then
28
# Discard the --no-reexec flag, and continue.
30
elif test "X$1" = X--fallback-echo; then
31
# Avoid inline document here, it may be left over
33
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
34
# Yippee, $echo works!
37
# Restart under the correct shell, and then maybe $echo will work.
38
exec $SHELL "$0" --no-reexec ${1+"$@"}
41
if test "X$1" = X--fallback-echo; then
42
# used as fallback echo
50
# The name of this program.
51
progname=`$echo "$0" | sed 's%^.*/%%'`
58
TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
61
help="Try \`$progname --help' for more information."
62
magic="%%%MAGIC variable%%%"
67
# Sed substitution that helps us do robust quoting. It backslashifies
68
# metacharacters that are still active within double-quoted strings.
70
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
72
NL2SP='tr \015\012 \040\040'
75
# Only set LANG and LC_ALL to C if already set.
76
# These must not be set unconditionally because not all systems understand
77
# e.g. LANG=C (notably SCO).
78
# We save the old values to restore during execute mode.
79
if test "${LC_ALL+set}" = set; then
80
save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
82
if test "${LANG+set}" = set; then
83
save_LANG="$LANG"; LANG=C; export LANG
86
if test "$LTCONFIG_VERSION" != "$VERSION"; then
87
echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
88
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
92
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
93
echo "$modename: not configured to build any kind of library" 1>&2
94
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
107
lo2o="s/\\.lo\$/.${objext}/"
108
o2lo="s/\\.${objext}\$/.lo/"
110
# Parse our command line options once, thoroughly.
117
-*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
121
# If the previous option needs an argument, assign it.
122
if test -n "$prev"; then
125
eval "$prev=\"\$$prev \$arg\""
137
# Have we seen a non-optional argument yet?
144
echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
149
sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
154
echo "$progname: enabling shell trace mode"
164
if test "$build_libtool_libs" = yes; then
165
echo "enable shared libraries"
167
echo "disable shared libraries"
169
if test "$build_old_libs" = yes; then
170
echo "enable static libraries"
172
echo "disable static libraries"
177
--finish) mode="finish" ;;
179
--mode) prevopt="--mode" prev=mode ;;
180
--mode=*) mode="$optarg" ;;
192
$echo "$modename: unrecognized option \`$arg'" 1>&2
204
if test -n "$prevopt"; then
205
$echo "$modename: option \`$prevopt' requires an argument" 1>&2
210
if test -z "$show_help"; then
212
# Infer the operation mode.
213
if test -z "$mode"; then
215
*cc | *++ | gcc* | *-gcc*)
227
*db | *dbx | *strace | *truss)
237
# If we have no mode, but dlfiles were specified, then do execute mode.
238
test -n "$execute_dlfiles" && mode=execute
240
# Just use the default operation mode.
241
if test -z "$mode"; then
242
if test -n "$nonopt"; then
243
$echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
245
$echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
252
# Only execute mode is allowed to have -dlopen flags.
253
if test -n "$execute_dlfiles" && test "$mode" != execute; then
254
$echo "$modename: unrecognized option \`-dlopen'" 1>&2
259
# Change the help message to a mode-specific one.
261
help="Try \`$modename --help --mode=$mode' for more information."
263
# These modes are in order of execution frequency so that they run quickly.
265
# libtool compile mode
267
modename="$modename: compile"
268
# Get the compilation command and the source file.
277
# Accept any command-line options.
280
if test "$user_target" != "no"; then
281
$echo "$modename: you cannot specify \`-o' more than once" 1>&2
293
case "$user_target" in
295
# The next one is the -o target name
300
# We got the output file
307
# Accept the current argument as the source file.
311
# Aesthetically quote the previous argument.
313
# Backslashify any backslashes, double quotes, and dollar signs.
314
# These are the only characters that are still specially
315
# interpreted inside of double-quoted scrings.
316
lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
318
# Double-quote args containing other shell metacharacters.
319
# Many Bourne shells cannot handle close brackets correctly in scan
320
# sets, so we specify it separately.
322
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
323
lastarg="\"$lastarg\""
327
# Add the previous argument to base_compile.
328
if test -z "$base_compile"; then
329
base_compile="$lastarg"
331
base_compile="$base_compile $lastarg"
335
case "$user_target" in
339
# Get the name of the library object.
340
libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
343
$echo "$modename: you must specify a target with \`-o'" 1>&2
348
# Recognize several different file suffixes.
349
# If the user specifies -o file.o, it is replaced with file.lo
364
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
367
*.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
369
$echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
374
if test -z "$base_compile"; then
375
$echo "$modename: you must specify a compilation command" 1>&2
380
# Delete any leftover library objects.
381
if test "$build_old_libs" = yes; then
382
removelist="$obj $libobj"
388
trap "$run $rm $removelist; exit 1" 1 2 15
390
# Calculate the filename of the output object if compiler does
391
# not support -o with -c
392
if test "$compiler_c_o" = no; then
393
output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
394
lockfile="$output_obj.lock"
395
removelist="$removelist $output_obj $lockfile"
396
trap "$run $rm $removelist; exit 1" 1 2 15
402
# Lock this critical section if it is needed
403
# We use this script file to make the link, it avoids creating a new file
404
if test "$need_locks" = yes; then
405
until ln "$0" "$lockfile" 2>/dev/null; do
406
$show "Waiting for $lockfile to be removed"
409
elif test "$need_locks" = warn; then
410
if test -f "$lockfile"; then
412
*** ERROR, $lockfile exists and contains:
413
`cat $lockfile 2>/dev/null`
415
This indicates that another process is trying to use the same
416
temporary object file, and libtool could not work around it because
417
your compiler does not support \`-c' and \`-o' together. If you
418
repeat this compilation, it may succeed, by chance, but you had better
419
avoid parallel builds (make -j) in this platform, or get a better
425
echo $srcfile > "$lockfile"
428
if test -n "$fix_srcfile_path"; then
429
eval srcfile=\"$fix_srcfile_path\"
432
# Only build a PIC object if we are building libtool libraries.
433
if test "$build_libtool_libs" = yes; then
434
# Without this assignment, base_compile gets emptied.
435
fbsd_hideous_sh_bug=$base_compile
437
# All platforms use -DPIC, to notify preprocessed assembler code.
438
command="$base_compile $srcfile $pic_flag -DPIC"
439
if test "$build_old_libs" = yes; then
441
dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
442
if test "X$dir" = "X$libobj"; then
447
libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
449
if test -d "$dir"; then
456
if test $status -ne 0 && test ! -d $dir; then
461
if test "$compiler_o_lo" = yes; then
463
command="$command -o $output_obj"
464
elif test "$compiler_c_o" = yes; then
466
command="$command -o $output_obj"
469
$run $rm "$output_obj"
471
if $run eval "$command"; then :
473
test -n "$output_obj" && $run $rm $removelist
477
if test "$need_locks" = warn &&
478
test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
480
*** ERROR, $lockfile contains:
481
`cat $lockfile 2>/dev/null`
483
but it should contain:
486
This indicates that another process is trying to use the same
487
temporary object file, and libtool could not work around it because
488
your compiler does not support \`-c' and \`-o' together. If you
489
repeat this compilation, it may succeed, by chance, but you had better
490
avoid parallel builds (make -j) in this platform, or get a better
497
# Just move the object if needed, then go on to compile the next one
498
if test x"$output_obj" != x"$libobj"; then
499
$show "$mv $output_obj $libobj"
500
if $run $mv $output_obj $libobj; then :
508
# If we have no pic_flag, then copy the object into place and finish.
509
if test -z "$pic_flag" && test "$build_old_libs" = yes; then
510
# Rename the .lo from within objdir to obj
511
if test -f $obj; then
516
$show "$mv $libobj $obj"
517
if $run $mv $libobj $obj; then :
524
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
525
if test "X$xdir" = "X$obj"; then
530
baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
531
libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
532
# Now arrange that obj and lo_libobj become the same file
533
$show "(cd $xdir && $LN_S $baseobj $libobj)"
534
if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
543
# Allow error messages only from the first compilation.
544
suppress_output=' >/dev/null 2>&1'
547
# Only build a position-dependent object if we build old libraries.
548
if test "$build_old_libs" = yes; then
549
command="$base_compile $srcfile"
550
if test "$compiler_c_o" = yes; then
551
command="$command -o $obj"
555
# Suppress compiler output if we already did a PIC compilation.
556
command="$command$suppress_output"
557
$run $rm "$output_obj"
559
if $run eval "$command"; then :
565
if test "$need_locks" = warn &&
566
test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
568
*** ERROR, $lockfile contains:
569
`cat $lockfile 2>/dev/null`
571
but it should contain:
574
This indicates that another process is trying to use the same
575
temporary object file, and libtool could not work around it because
576
your compiler does not support \`-c' and \`-o' together. If you
577
repeat this compilation, it may succeed, by chance, but you had better
578
avoid parallel builds (make -j) in this platform, or get a better
585
# Just move the object if needed
586
if test x"$output_obj" != x"$obj"; then
587
$show "$mv $output_obj $obj"
588
if $run $mv $output_obj $obj; then :
596
# Create an invalid libtool object if no PIC, so that we do not
597
# accidentally link it into a program.
598
if test "$build_libtool_libs" != yes; then
599
$show "echo timestamp > $libobj"
600
$run eval "echo timestamp > \$libobj" || exit $?
602
# Move the .lo from within objdir
603
$show "$mv $libobj $lo_libobj"
604
if $run $mv $libobj $lo_libobj; then :
613
# Unlock the critical section if it was locked
614
if test "$need_locks" != no; then
623
modename="$modename: link"
625
*-*-cygwin* | *-*-mingw* | *-*-os2*)
626
# It is impossible to link a dll without this setting, and
627
# we shouldn't force the makefile maintainer to figure out
628
# which system we are compiling for in order to pass an extra
629
# flag for every libtool invokation.
632
# FIXME: Unfortunately, there are problems with the above when trying
633
# to make a dll which has undefined symbols, in which case not
634
# even a static library is built. For now, we need to specify
635
# -no-undefined on the libtool link line when we can be certain
636
# that all symbols are satisfied, otherwise we get a static library.
639
# This is a source program that is used to create dlls on Windows
640
# Don't remove nor modify the starting and closing comments
641
# /* ltdll.c starts here */
642
# #define WIN32_LEAN_AND_MEAN
643
# #include <windows.h>
644
# #undef WIN32_LEAN_AND_MEAN
648
# # ifdef __CYGWIN32__
649
# # define __CYGWIN__ __CYGWIN32__
656
# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
662
# #include <cygwin/cygwin_dll.h>
663
# DECLARE_CYGWIN_DLL( DllMain );
665
# HINSTANCE __hDllInstance_base;
668
# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
670
# __hDllInstance_base = hInst;
673
# /* ltdll.c ends here */
674
# This is a source program that is used to create import libraries
675
# on Windows for dlls which lack them. Don't remove nor modify the
676
# starting and closing comments
677
# /* impgen.c starts here */
678
# /* Copyright (C) 1999 Free Software Foundation, Inc.
680
# This file is part of GNU libtool.
682
# This program is free software; you can redistribute it and/or modify
683
# it under the terms of the GNU General Public License as published by
684
# the Free Software Foundation; either version 2 of the License, or
685
# (at your option) any later version.
687
# This program is distributed in the hope that it will be useful,
688
# but WITHOUT ANY WARRANTY; without even the implied warranty of
689
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
690
# GNU General Public License for more details.
692
# You should have received a copy of the GNU General Public License
693
# along with this program; if not, write to the Free Software
694
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
697
# #include <stdio.h> /* for printf() */
698
# #include <unistd.h> /* for open(), lseek(), read() */
699
# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
700
# #include <string.h> /* for strdup() */
702
# static unsigned int
703
# pe_get16 (fd, offset)
707
# unsigned char b[2];
708
# lseek (fd, offset, SEEK_SET);
710
# return b[0] + (b[1]<<8);
713
# static unsigned int
714
# pe_get32 (fd, offset)
718
# unsigned char b[4];
719
# lseek (fd, offset, SEEK_SET);
721
# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
724
# static unsigned int
728
# unsigned char *b = ptr;
729
# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
738
# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
739
# unsigned long export_rva, export_size, nsections, secptr, expptr;
740
# unsigned long name_rvas, nexp;
741
# unsigned char *expdata, *erva;
742
# char *filename, *dll_name;
744
# filename = argv[1];
746
# dll = open(filename, O_RDONLY|O_BINARY);
750
# dll_name = filename;
752
# for (i=0; filename[i]; i++)
753
# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
754
# dll_name = filename + i +1;
756
# pe_header_offset = pe_get32 (dll, 0x3c);
757
# opthdr_ofs = pe_header_offset + 4 + 20;
758
# num_entries = pe_get32 (dll, opthdr_ofs + 92);
760
# if (num_entries < 1) /* no exports */
763
# export_rva = pe_get32 (dll, opthdr_ofs + 96);
764
# export_size = pe_get32 (dll, opthdr_ofs + 100);
765
# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
766
# secptr = (pe_header_offset + 4 + 20 +
767
# pe_get16 (dll, pe_header_offset + 4 + 16));
770
# for (i = 0; i < nsections; i++)
773
# unsigned long secptr1 = secptr + 40 * i;
774
# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
775
# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
776
# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
777
# lseek(dll, secptr1, SEEK_SET);
778
# read(dll, sname, 8);
779
# if (vaddr <= export_rva && vaddr+vsize > export_rva)
781
# expptr = fptr + (export_rva - vaddr);
782
# if (export_rva + export_size > vaddr + vsize)
783
# export_size = vsize - (export_rva - vaddr);
788
# expdata = (unsigned char*)malloc(export_size);
789
# lseek (dll, expptr, SEEK_SET);
790
# read (dll, expdata, export_size);
791
# erva = expdata - export_rva;
793
# nexp = pe_as32 (expdata+24);
794
# name_rvas = pe_as32 (expdata+32);
796
# printf ("EXPORTS\n");
797
# for (i = 0; i<nexp; i++)
799
# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
800
# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
805
# /* impgen.c ends here */
811
compile_command="$nonopt"
812
finalize_command="$nonopt"
823
if test -n "$shlibpath_var"; then
824
# get the directories listed in $shlibpath_var
825
eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
829
# now prepend the system-specific ones
830
eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
831
eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
839
export_symbols_regex=
842
link_against_libtool_libs=
846
prefer_static_libs=no
858
# We need to know -static, to get the right output filenames.
862
-all-static | -static)
863
if test "X$arg" = "X-all-static"; then
864
if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
865
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
867
if test -n "$link_static_flag"; then
868
dlopen_self=$dlopen_self_static
871
if test -z "$pic_flag" && test -n "$link_static_flag"; then
872
dlopen_self=$dlopen_self_static
875
build_libtool_libs=no
877
prefer_static_libs=yes
883
# See if our shared archives depend on static archives.
884
test -n "$old_archive_from_new_cmds" && build_old_libs=yes
886
# Go through the arguments, transforming them on the way.
887
while test $# -gt 0; do
891
# If the previous option needs an argument, assign it.
892
if test -n "$prev"; then
895
compile_command="$compile_command @OUTPUT@"
896
finalize_command="$finalize_command @OUTPUT@"
902
if test "$preload" = no; then
903
# Add the symbol object into the linking commands.
904
compile_command="$compile_command @SYMFILE@"
905
finalize_command="$finalize_command @SYMFILE@"
909
*.la | *.lo) ;; # We handle these cases below.
911
if test "$dlself" = no; then
919
if test "$prev" = dlprefiles; then
921
elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
931
if test "$prev" = dlfiles; then
932
dlfiles="$dlfiles $arg"
934
dlprefiles="$dlprefiles $arg"
941
export_symbols="$arg"
942
if test ! -f "$arg"; then
943
$echo "$modename: symbol file \`$arg' does not exist"
950
export_symbols_regex="$arg"
960
# We need an absolute path.
962
[\\/]* | [A-Za-z]:[\\/]*) ;;
964
$echo "$modename: only absolute run-paths are allowed" 1>&2
968
if test "$prev" = rpath; then
971
*) rpath="$rpath $arg" ;;
976
*) xrpath="$xrpath $arg" ;;
983
eval "$prev=\"\$arg\""
994
if test -n "$link_static_flag"; then
995
compile_command="$compile_command $link_static_flag"
996
finalize_command="$finalize_command $link_static_flag"
1002
# FIXME: remove this flag sometime in the future.
1003
$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1027
-export-symbols | -export-symbols-regex)
1028
if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1029
$echo "$modename: not more than one -exported-symbols argument allowed"
1032
if test "X$arg" = "X-export-symbols"; then
1041
dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1042
# We need an absolute path.
1044
[\\/]* | [A-Za-z]:[\\/]*) ;;
1046
absdir=`cd "$dir" && pwd`
1047
if test -z "$absdir"; then
1048
$echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1049
$echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1055
case " $deplibs " in
1057
*) deplibs="$deplibs $arg";;
1059
case " $lib_search_path " in
1061
*) lib_search_path="$lib_search_path $dir";;
1064
*-*-cygwin* | *-*-mingw* | *-*-os2*)
1065
dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1066
case ":$dllsearchpath:" in
1067
::) dllsearchpath="$dllsearchdir";;
1068
*":$dllsearchdir:"*) ;;
1069
*) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1076
if test "$arg" = "-lc"; then
1078
*-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1079
# These systems don't actually have c library (as such)
1082
*-*-rhapsody* | *-*-darwin1.[012])
1083
# Rhapsody C library is in the System framework
1084
deplibs="$deplibs -framework System"
1088
elif test "$arg" = "-lm"; then
1090
*-*-cygwin* | *-*-beos*)
1091
# These systems don't actually have math library (as such)
1094
*-*-rhapsody* | *-*-darwin1.[012])
1095
# Rhapsody math library is in the System framework
1096
deplibs="$deplibs -framework System"
1101
deplibs="$deplibs $arg"
1132
dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1133
# We need an absolute path.
1135
[\\/]* | [A-Za-z]:[\\/]*) ;;
1137
$echo "$modename: only absolute run-paths are allowed" 1>&2
1143
*) xrpath="$xrpath $dir" ;;
1149
# If we have no pic_flag, then this is the same as -all-static.
1150
if test -z "$pic_flag" && test -n "$link_static_flag"; then
1151
compile_command="$compile_command $link_static_flag"
1152
finalize_command="$finalize_command $link_static_flag"
1167
# Some other compiler flag.
1169
# Unknown arguments in both finalize_command and compile_command need
1170
# to be aesthetically quoted because they are evaled later.
1171
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1173
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1179
*.o | *.obj | *.a | *.lib)
1180
# A standard object.
1186
if test "$prev" = dlfiles; then
1187
dlfiles="$dlfiles $arg"
1188
if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
1192
# If libtool objects are unsupported, then we need to preload.
1197
if test "$prev" = dlprefiles; then
1198
# Preload the old-style object.
1199
dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1202
libobjs="$libobjs $arg"
1206
# A libtool-controlled library.
1213
# Check to see that this really is a libtool archive.
1214
if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1216
$echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1220
# If the library was installed with an old release of libtool,
1221
# it will not redefine variable installed.
1225
# If there is no directory component, then add one.
1227
*/* | *\\*) . $arg ;;
1231
# Get the name of the library we link against.
1233
for l in $old_library $library_names; do
1237
if test -z "$linklib"; then
1238
$echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1242
# Find the relevant object directory and library name.
1243
name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
1245
if test "X$installed" = Xyes; then
1248
dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1249
if test "X$dir" = "X$arg"; then
1256
if test -n "$dependency_libs"; then
1257
# Extract -R and -L from dependency_libs
1259
for deplib in $dependency_libs; do
1261
-R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1262
case " $rpath $xrpath " in
1263
*" $temp_xrpath "*) ;;
1264
*) xrpath="$xrpath $temp_xrpath";;
1266
-L*) case "$compile_command $temp_deplibs " in
1268
*) temp_deplibs="$temp_deplibs $deplib";;
1270
temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
1271
case " $lib_search_path " in
1273
*) lib_search_path="$lib_search_path $temp_dir";;
1276
*) temp_deplibs="$temp_deplibs $deplib";;
1279
dependency_libs="$temp_deplibs"
1282
if test -z "$libdir"; then
1283
# It is a libtool convenience library, so add in its objects.
1284
convenience="$convenience $dir/$old_library"
1285
old_convenience="$old_convenience $dir/$old_library"
1286
deplibs="$deplibs$dependency_libs"
1287
compile_command="$compile_command $dir/$old_library$dependency_libs"
1288
finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1292
# This library was specified with -dlopen.
1293
if test "$prev" = dlfiles; then
1294
dlfiles="$dlfiles $arg"
1295
if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1296
# If there is no dlname, no dlopen support or we're linking statically,
1297
# we need to preload.
1300
# We should not create a dependency on this library, but we
1301
# may need any libraries it requires.
1302
compile_command="$compile_command$dependency_libs"
1303
finalize_command="$finalize_command$dependency_libs"
1309
# The library was specified with -dlpreopen.
1310
if test "$prev" = dlprefiles; then
1311
# Prefer using a static library (so that no silly _DYNAMIC symbols
1312
# are required to link).
1313
if test -n "$old_library"; then
1314
dlprefiles="$dlprefiles $dir/$old_library"
1316
dlprefiles="$dlprefiles $dir/$linklib"
1321
if test -n "$library_names" &&
1322
{ test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1323
link_against_libtool_libs="$link_against_libtool_libs $arg"
1324
if test -n "$shlibpath_var"; then
1325
# Make sure the rpath contains only unique directories.
1326
case "$temp_rpath " in
1328
*) temp_rpath="$temp_rpath $dir" ;;
1332
# We need an absolute path.
1334
[\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1336
absdir=`cd "$dir" && pwd`
1337
if test -z "$absdir"; then
1338
$echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
1339
$echo "$modename: passing it literally to the linker, although it might fail" 1>&2
1345
# This is the magic to use -rpath.
1346
# Skip directories that are in the system default run-time
1347
# search path, unless they have been requested with -R.
1348
case " $sys_lib_dlsearch_path " in
1351
case "$compile_rpath " in
1353
*) compile_rpath="$compile_rpath $absdir"
1358
case " $sys_lib_dlsearch_path " in
1361
case "$finalize_rpath " in
1363
*) finalize_rpath="$finalize_rpath $libdir"
1369
case "$hardcode_action" in
1370
immediate | unsupported)
1371
if test "$hardcode_direct" = no; then
1372
compile_command="$compile_command $dir/$linklib"
1373
deplibs="$deplibs $dir/$linklib"
1375
*-*-cygwin* | *-*-mingw* | *-*-os2*)
1376
dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1377
if test -n "$dllsearchpath"; then
1378
dllsearchpath="$dllsearchpath:$dllsearchdir"
1380
dllsearchpath="$dllsearchdir"
1384
elif test "$hardcode_minus_L" = no; then
1387
compile_shlibpath="$compile_shlibpath$dir:"
1390
case "$compile_command " in
1392
*) compile_command="$compile_command -L$dir";;
1394
compile_command="$compile_command -l$name"
1395
deplibs="$deplibs -L$dir -l$name"
1396
elif test "$hardcode_shlibpath_var" = no; then
1397
case ":$compile_shlibpath:" in
1399
*) compile_shlibpath="$compile_shlibpath$dir:";;
1401
compile_command="$compile_command -l$name"
1402
deplibs="$deplibs -l$name"
1409
if test "$hardcode_direct" = yes; then
1410
compile_command="$compile_command $absdir/$linklib"
1411
deplibs="$deplibs $absdir/$linklib"
1412
elif test "$hardcode_minus_L" = yes; then
1413
case "$compile_command " in
1415
*) compile_command="$compile_command -L$absdir";;
1417
compile_command="$compile_command -l$name"
1418
deplibs="$deplibs -L$absdir -l$name"
1419
elif test "$hardcode_shlibpath_var" = yes; then
1420
case ":$compile_shlibpath:" in
1422
*) compile_shlibpath="$compile_shlibpath$absdir:";;
1424
compile_command="$compile_command -l$name"
1425
deplibs="$deplibs -l$name"
1436
if test "$lib_linked" != yes; then
1437
$echo "$modename: configuration error: unsupported hardcode properties"
1441
# Finalize command for both is simple: just hardcode it.
1442
if test "$hardcode_direct" = yes; then
1443
finalize_command="$finalize_command $libdir/$linklib"
1444
elif test "$hardcode_minus_L" = yes; then
1445
case "$finalize_command " in
1447
*) finalize_command="$finalize_command -L$libdir";;
1449
finalize_command="$finalize_command -l$name"
1450
elif test "$hardcode_shlibpath_var" = yes; then
1451
case ":$finalize_shlibpath:" in
1453
*) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1455
finalize_command="$finalize_command -l$name"
1457
# We cannot seem to hardcode it, guess we'll fake it.
1458
case "$finalize_command " in
1460
*) finalize_command="$finalize_command -L$libdir";;
1462
finalize_command="$finalize_command -l$name"
1465
# Transform directly to old archives if we don't build new libraries.
1466
if test -n "$pic_flag" && test -z "$old_library"; then
1467
$echo "$modename: cannot find static library for \`$arg'" 1>&2
1471
# Here we assume that one of hardcode_direct or hardcode_minus_L
1472
# is not unsupported. This is valid on all known static and
1474
if test "$hardcode_direct" != unsupported; then
1475
test -n "$old_library" && linklib="$old_library"
1476
compile_command="$compile_command $dir/$linklib"
1477
finalize_command="$finalize_command $dir/$linklib"
1479
case "$compile_command " in
1481
*) compile_command="$compile_command -L$dir";;
1483
compile_command="$compile_command -l$name"
1484
case "$finalize_command " in
1486
*) finalize_command="$finalize_command -L$dir";;
1488
finalize_command="$finalize_command -l$name"
1492
# Add in any libraries that this one depends upon.
1493
compile_command="$compile_command$dependency_libs"
1494
finalize_command="$finalize_command$dependency_libs"
1498
# Some other compiler argument.
1500
# Unknown arguments in both finalize_command and compile_command need
1501
# to be aesthetically quoted because they are evaled later.
1502
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1504
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1511
# Now actually substitute the argument into the commands.
1512
if test -n "$arg"; then
1513
compile_command="$compile_command $arg"
1514
finalize_command="$finalize_command $arg"
1518
if test -n "$prev"; then
1519
$echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1524
if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1525
eval arg=\"$export_dynamic_flag_spec\"
1526
compile_command="$compile_command $arg"
1527
finalize_command="$finalize_command $arg"
1531
# calculate the name of the file, without its directory
1532
outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1533
libobjs_save="$libobjs"
1537
$echo "$modename: you must specify an output file" 1>&2
1543
if test -n "$link_against_libtool_libs"; then
1544
$echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1548
if test -n "$deplibs"; then
1549
$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
1552
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1553
$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
1556
if test -n "$rpath"; then
1557
$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1560
if test -n "$xrpath"; then
1561
$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
1564
if test -n "$vinfo"; then
1565
$echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
1568
if test -n "$release"; then
1569
$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
1572
if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1573
$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
1576
# Now set the variables for building old libraries.
1577
build_libtool_libs=no
1582
# Make sure we only generate libraries of the form `libNAME.la'.
1583
case "$outputname" in
1585
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1586
eval libname=\"$libname_spec\"
1589
if test "$module" = no; then
1590
$echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1594
if test "$need_lib_prefix" != no; then
1595
# Add the "lib" prefix for modules if required
1596
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1597
eval libname=\"$libname_spec\"
1599
libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1604
output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1605
if test "X$output_objdir" = "X$output"; then
1606
output_objdir="$objdir"
1608
output_objdir="$output_objdir/$objdir"
1611
if test -n "$objs"; then
1612
$echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1616
# How the heck are we supposed to write a wrapper for a shared library?
1617
if test -n "$link_against_libtool_libs"; then
1618
$echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1622
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1623
$echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
1627
if test $# -gt 2; then
1628
$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1633
if test -z "$rpath"; then
1634
if test "$build_libtool_libs" = yes; then
1635
# Building a libtool convenience library.
1637
oldlibs="$output_objdir/$libname.$libext $oldlibs"
1638
build_libtool_libs=convenience
1641
dependency_libs="$deplibs"
1643
if test -n "$vinfo"; then
1644
$echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1647
if test -n "$release"; then
1648
$echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1652
# Parse the version information argument.
1653
IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
1654
set dummy $vinfo 0 0 0
1657
if test -n "$8"; then
1658
$echo "$modename: too many parameters to \`-version-info'" 1>&2
1667
# Check that each of the things are valid numbers.
1669
0 | [1-9] | [1-9][0-9]*) ;;
1671
$echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1672
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
1678
0 | [1-9] | [1-9][0-9]*) ;;
1680
$echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1681
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
1687
0 | [1-9] | [1-9][0-9]*) ;;
1689
$echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1690
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
1695
if test $age -gt $current; then
1696
$echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1697
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
1701
# Calculate the version variables.
1705
case "$version_type" in
1709
major=`expr $current - $age + 1`
1710
versuffix="$major.$revision"
1711
verstring="sgi$major.$revision"
1713
# Add in all the interfaces that we are compatible with.
1715
while test $loop != 0; do
1716
iface=`expr $revision - $loop`
1717
loop=`expr $loop - 1`
1718
verstring="sgi$major.$iface:$verstring"
1723
major=.`expr $current - $age`
1724
versuffix="$major.$age.$revision"
1728
major=`expr $current - $age`
1729
versuffix=".$current.$age.$revision"
1730
verstring="$current.$age.$revision"
1732
# Add in all the interfaces that we are compatible with.
1734
while test $loop != 0; do
1735
iface=`expr $current - $loop`
1736
loop=`expr $loop - 1`
1737
verstring="$verstring:${iface}.0"
1740
# Make executables depend on our current version.
1741
verstring="$verstring:${current}.0"
1746
versuffix=".$current.$revision"
1751
versuffix=".$current.$revision";
1756
versuffix=".$current";
1760
# Like Linux, but with '-' rather than '.', since we only
1761
# want one extension on Windows 95.
1762
major=`expr $current - $age`
1763
versuffix="-$major-$age-$revision"
1767
# Like Linux, but with the current version available in
1768
# verstring for coding it into the library header
1769
major=.`expr $current - $age`
1770
versuffix="$major.$age.$revision"
1771
# Darwin ld doesn't like 0 for these options...
1772
minor_current=`expr $current + 1`
1773
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
1777
$echo "$modename: unknown library version type \`$version_type'" 1>&2
1778
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1783
# Clear the version info if we defaulted, and they specified a release.
1784
if test -z "$vinfo" && test -n "$release"; then
1786
case "$version_type" in
1788
# we can't check for "0.0" in archive_cmds due to quoting
1789
# problems, so we reset it completely
1796
if test "$need_version" = no; then
1803
# Remove version info from name if versioning should be avoided
1804
if test "$avoid_version" = yes && test "$need_version" = no; then
1810
# Check to see if the archive will have undefined symbols.
1811
if test "$allow_undefined" = yes; then
1812
if test "$allow_undefined_flag" = unsupported; then
1813
$echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1814
build_libtool_libs=no
1818
# Don't allow undefined symbols.
1819
allow_undefined_flag="$no_undefined_flag"
1822
dependency_libs="$deplibs"
1824
*-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1825
# these systems don't actually have a c library (as such)!
1827
*-*-rhapsody* | *-*-darwin1.[012])
1828
# Rhapsody C library is in the System framework
1829
deplibs="$deplibs -framework System"
1832
# Add libc to deplibs on all other systems.
1833
deplibs="$deplibs -lc"
1838
# Create the output directory, or remove our outputs if we need to.
1839
if test -d $output_objdir; then
1840
$show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
1841
$run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1843
$show "$mkdir $output_objdir"
1844
$run $mkdir $output_objdir
1846
if test $status -ne 0 && test ! -d $output_objdir; then
1851
# Now set the variables for building old libraries.
1852
if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1853
oldlibs="$oldlibs $output_objdir/$libname.$libext"
1855
# Transform .lo files to .o files.
1856
oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
1859
if test "$build_libtool_libs" = yes; then
1860
# Transform deplibs into only deplibs that can be linked in shared.
1862
libname_save=$libname
1863
release_save=$release
1864
versuffix_save=$versuffix
1866
# I'm not sure if I'm treating the release correctly. I think
1867
# release should show up in the -l (ie -lgmp5) so we don't want to
1868
# add it in twice. Is that correct?
1874
case "$deplibs_check_method" in
1876
# Don't check for shared/static. Everything works.
1877
# This might be a little naive. We might want to check
1878
# whether the library exists or not. But this is on
1879
# osf3 & osf4 and I'm not really sure... Just
1880
# implementing what was already the behaviour.
1884
# This code stresses the "libraries are programs" paradigm to its
1885
# limits. Maybe even breaks it. We compile a program, linking it
1886
# against the deplibs as a proxy for the library. Then we can check
1887
# whether they linked in statically or dynamically with ldd.
1889
cat > conftest.c <<EOF
1890
int main() { return 0; }
1893
$CC -o conftest conftest.c $deplibs
1894
if test $? -eq 0 ; then
1895
ldd_output=`ldd conftest`
1896
for i in $deplibs; do
1897
name="`expr $i : '-l\(.*\)'`"
1898
# If $name is empty we are operating on a -L argument.
1899
if test "$name" != "" ; then
1900
libname=`eval \\$echo \"$libname_spec\"`
1901
deplib_matches=`eval \\$echo \"$library_names_spec\"`
1902
set dummy $deplib_matches
1904
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1905
newdeplibs="$newdeplibs $i"
1909
echo "*** Warning: This library needs some functionality provided by $i."
1910
echo "*** I have the capability to make that library automatically link in when"
1911
echo "*** you link to this library. But I can only do this if you have a"
1912
echo "*** shared version of the library, which you do not appear to have."
1915
newdeplibs="$newdeplibs $i"
1919
# Error occured in the first compile. Let's try to salvage the situation:
1920
# Compile a seperate program for each library.
1921
for i in $deplibs; do
1922
name="`expr $i : '-l\(.*\)'`"
1923
# If $name is empty we are operating on a -L argument.
1924
if test "$name" != "" ; then
1926
$CC -o conftest conftest.c $i
1928
if test $? -eq 0 ; then
1929
ldd_output=`ldd conftest`
1930
libname=`eval \\$echo \"$libname_spec\"`
1931
deplib_matches=`eval \\$echo \"$library_names_spec\"`
1932
set dummy $deplib_matches
1934
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1935
newdeplibs="$newdeplibs $i"
1939
echo "*** Warning: This library needs some functionality provided by $i."
1940
echo "*** I have the capability to make that library automatically link in when"
1941
echo "*** you link to this library. But I can only do this if you have a"
1942
echo "*** shared version of the library, which you do not appear to have."
1947
echo "*** Warning! Library $i is needed by this library but I was not able to"
1948
echo "*** make it link in! You will probably need to install it or some"
1949
echo "*** library that it depends on before this library will be fully"
1950
echo "*** functional. Installing it before continuing would be even better."
1953
newdeplibs="$newdeplibs $i"
1959
set dummy $deplibs_check_method
1960
file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1961
for a_deplib in $deplibs; do
1962
name="`expr $a_deplib : '-l\(.*\)'`"
1963
# If $name is empty we are operating on a -L argument.
1964
if test "$name" != "" ; then
1965
libname=`eval \\$echo \"$libname_spec\"`
1966
for i in $lib_search_path; do
1967
potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1968
for potent_lib in $potential_libs; do
1969
# Follow soft links.
1970
if ls -lLd "$potent_lib" 2>/dev/null \
1971
| grep " -> " >/dev/null; then
1974
# The statement above tries to avoid entering an
1975
# endless loop below, in case of cyclic links.
1976
# We might still enter an endless loop, since a link
1977
# loop can be closed while we follow links,
1979
potlib="$potent_lib"
1980
while test -h "$potlib" 2>/dev/null; do
1981
potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1982
case "$potliblink" in
1983
[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1984
*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1987
if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1989
| egrep "$file_magic_regex" > /dev/null; then
1990
newdeplibs="$newdeplibs $a_deplib"
1996
if test -n "$a_deplib" ; then
1999
echo "*** Warning: This library needs some functionality provided by $a_deplib."
2000
echo "*** I have the capability to make that library automatically link in when"
2001
echo "*** you link to this library. But I can only do this if you have a"
2002
echo "*** shared version of the library, which you do not appear to have."
2005
# Add a -L argument.
2006
newdeplibs="$newdeplibs $a_deplib"
2008
done # Gone through all deplibs.
2012
if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
2013
-e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
2014
grep . >/dev/null; then
2016
if test "X$deplibs_check_method" = "Xnone"; then
2017
echo "*** Warning: inter-library dependencies are not supported in this platform."
2019
echo "*** Warning: inter-library dependencies are not known to be supported."
2021
echo "*** All declared inter-library dependencies are being dropped."
2026
versuffix=$versuffix_save
2028
release=$release_save
2029
libname=$libname_save
2032
if test "$droppeddeps" = yes; then
2033
if test "$module" = yes; then
2035
echo "*** Warning: libtool could not satisfy all declared inter-library"
2036
echo "*** dependencies of module $libname. Therefore, libtool will create"
2037
echo "*** a static module, that should work as long as the dlopening"
2038
echo "*** application is linked with the -dlopen flag."
2039
if test -z "$global_symbol_pipe"; then
2041
echo "*** However, this would only work if libtool was able to extract symbol"
2042
echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2043
echo "*** not find such a program. So, this module is probably useless."
2044
echo "*** \`nm' from GNU binutils and a full rebuild may help."
2046
if test "$build_old_libs" = no; then
2047
oldlibs="$output_objdir/$libname.$libext"
2048
build_libtool_libs=module
2051
build_libtool_libs=no
2054
echo "*** The inter-library dependencies that have been dropped here will be"
2055
echo "*** automatically added whenever a program is linked with this library"
2056
echo "*** or is declared to -dlopen it."
2059
# Done checking deplibs!
2063
# All the library-specific variables (install_libdir is set above).
2068
# Test again, we may have decided not to build it any more
2069
if test "$build_libtool_libs" = yes; then
2070
# Get the real and link names of the library.
2071
eval library_names=\"$library_names_spec\"
2072
set dummy $library_names
2076
if test -n "$soname_spec"; then
2077
eval soname=\"$soname_spec\"
2082
lib="$output_objdir/$realname"
2085
linknames="$linknames $link"
2088
# Ensure that we have .o objects for linkers which dislike .lo
2089
# (e.g. aix) in case we are running --disable-static
2090
for obj in $libobjs; do
2091
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
2092
if test "X$xdir" = "X$obj"; then
2097
baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
2098
oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2099
if test ! -f $xdir/$oldobj; then
2100
$show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
2101
$run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
2105
# Use standard objects if they are pic
2106
test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2108
# Prepare the list of exported symbols
2109
if test -z "$export_symbols"; then
2110
if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2111
$show "generating symbol list for \`$libname.la'"
2112
export_symbols="$output_objdir/$libname.exp"
2113
$run $rm $export_symbols
2114
eval cmds=\"$export_symbols_cmds\"
2115
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2116
for cmd in $cmds; do
2119
$run eval "$cmd" || exit $?
2122
if test -n "$export_symbols_regex"; then
2123
$show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2124
$run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2125
$show "$mv \"${export_symbols}T\" \"$export_symbols\""
2126
$run eval '$mv "${export_symbols}T" "$export_symbols"'
2131
if test -n "$export_symbols" && test -n "$include_expsyms"; then
2132
$run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2135
if test -n "$convenience"; then
2136
if test -n "$whole_archive_flag_spec"; then
2137
eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2139
gentop="$output_objdir/${outputname}x"
2140
$show "${rm}r $gentop"
2141
$run ${rm}r "$gentop"
2142
$show "mkdir $gentop"
2143
$run mkdir "$gentop"
2145
if test $status -ne 0 && test ! -d "$gentop"; then
2148
generated="$generated $gentop"
2150
for xlib in $convenience; do
2151
# Extract the objects.
2153
[\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2154
*) xabs=`pwd`"/$xlib" ;;
2156
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2157
xdir="$gentop/$xlib"
2159
$show "${rm}r $xdir"
2164
if test $status -ne 0 && test ! -d "$xdir"; then
2167
$show "(cd $xdir && $AR x $xabs)"
2168
$run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2170
libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2175
if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2176
eval flag=\"$thread_safe_flag_spec\"
2177
linkopts="$linkopts $flag"
2180
# Do each of the archive commands.
2181
if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2182
eval cmds=\"$archive_expsym_cmds\"
2184
eval cmds=\"$archive_cmds\"
2186
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2187
for cmd in $cmds; do
2190
$run eval "$cmd" || exit $?
2194
# Create links to the real library.
2195
for linkname in $linknames; do
2196
if test "$realname" != "$linkname"; then
2197
$show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2198
$run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
2202
# If -module or -export-dynamic was specified, set the dlname.
2203
if test "$module" = yes || test "$export_dynamic" = yes; then
2204
# On all known operating systems, these are identical.
2211
if test -n "$link_against_libtool_libs"; then
2212
$echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2216
if test -n "$deplibs"; then
2217
$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
2220
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2221
$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
2224
if test -n "$rpath"; then
2225
$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2228
if test -n "$xrpath"; then
2229
$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
2232
if test -n "$vinfo"; then
2233
$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
2236
if test -n "$release"; then
2237
$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
2242
if test -n "$objs"; then
2243
$echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2247
obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2255
# Delete the old objects.
2256
$run $rm $obj $libobj
2258
# Objects from convenience libraries. This assumes
2259
# single-version convenience libraries. Whenever we create
2260
# different ones for PIC/non-PIC, this we'll have to duplicate
2264
# reload_cmds runs $LD directly, so let us get rid of
2265
# -Wl from whole_archive_flag_spec
2268
if test -n "$convenience"; then
2269
if test -n "$whole_archive_flag_spec"; then
2270
eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
2272
gentop="$output_objdir/${obj}x"
2273
$show "${rm}r $gentop"
2274
$run ${rm}r "$gentop"
2275
$show "mkdir $gentop"
2276
$run mkdir "$gentop"
2278
if test $status -ne 0 && test ! -d "$gentop"; then
2281
generated="$generated $gentop"
2283
for xlib in $convenience; do
2284
# Extract the objects.
2286
[\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2287
*) xabs=`pwd`"/$xlib" ;;
2289
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2290
xdir="$gentop/$xlib"
2292
$show "${rm}r $xdir"
2297
if test $status -ne 0 && test ! -d "$xdir"; then
2300
$show "(cd $xdir && $AR x $xabs)"
2301
$run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
2303
reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
2308
# Create the old-style object.
2309
reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
2312
eval cmds=\"$reload_cmds\"
2313
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2314
for cmd in $cmds; do
2317
$run eval "$cmd" || exit $?
2321
# Exit if we aren't doing a library object file.
2322
if test -z "$libobj"; then
2323
if test -n "$gentop"; then
2324
$show "${rm}r $gentop"
2331
if test "$build_libtool_libs" != yes; then
2332
if test -n "$gentop"; then
2333
$show "${rm}r $gentop"
2337
# Create an invalid libtool object if no PIC, so that we don't
2338
# accidentally link it into a program.
2339
$show "echo timestamp > $libobj"
2340
$run eval "echo timestamp > $libobj" || exit $?
2344
if test -n "$pic_flag"; then
2345
# Only do commands if we really have different PIC objects.
2346
reload_objs="$libobjs $reload_conv_objs"
2348
eval cmds=\"$reload_cmds\"
2349
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2350
for cmd in $cmds; do
2353
$run eval "$cmd" || exit $?
2357
# Just create a symlink.
2360
xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
2361
if test "X$xdir" = "X$libobj"; then
2366
baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
2367
oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
2368
$show "(cd $xdir && $LN_S $oldobj $baseobj)"
2369
$run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
2372
if test -n "$gentop"; then
2373
$show "${rm}r $gentop"
2380
# Anything else should be a program.
2382
if test -n "$vinfo"; then
2383
$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
2386
if test -n "$release"; then
2387
$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
2390
if test "$preload" = yes; then
2391
if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2392
test "$dlopen_self_static" = unknown; then
2393
$echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2397
if test -n "$rpath$xrpath"; then
2398
# If the user specified any rpath flags, then add them.
2399
for libdir in $rpath $xrpath; do
2400
# This is the magic to use -rpath.
2401
case "$compile_rpath " in
2403
*) compile_rpath="$compile_rpath $libdir" ;;
2405
case "$finalize_rpath " in
2407
*) finalize_rpath="$finalize_rpath $libdir" ;;
2412
# Now hardcode the library paths
2415
for libdir in $compile_rpath $finalize_rpath; do
2416
if test -n "$hardcode_libdir_flag_spec"; then
2417
if test -n "$hardcode_libdir_separator"; then
2418
if test -z "$hardcode_libdirs"; then
2419
hardcode_libdirs="$libdir"
2421
# Just accumulate the unique libdirs.
2422
case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2423
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2426
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2431
eval flag=\"$hardcode_libdir_flag_spec\"
2432
rpath="$rpath $flag"
2434
elif test -n "$runpath_var"; then
2435
case "$perm_rpath " in
2437
*) perm_rpath="$perm_rpath $libdir" ;;
2441
# Substitute the hardcoded libdirs into the rpath.
2442
if test -n "$hardcode_libdir_separator" &&
2443
test -n "$hardcode_libdirs"; then
2444
libdir="$hardcode_libdirs"
2445
eval rpath=\" $hardcode_libdir_flag_spec\"
2447
compile_rpath="$rpath"
2451
for libdir in $finalize_rpath; do
2452
if test -n "$hardcode_libdir_flag_spec"; then
2453
if test -n "$hardcode_libdir_separator"; then
2454
if test -z "$hardcode_libdirs"; then
2455
hardcode_libdirs="$libdir"
2457
# Just accumulate the unique libdirs.
2458
case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2459
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2462
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2467
eval flag=\"$hardcode_libdir_flag_spec\"
2468
rpath="$rpath $flag"
2470
elif test -n "$runpath_var"; then
2471
case "$finalize_perm_rpath " in
2473
*) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2477
# Substitute the hardcoded libdirs into the rpath.
2478
if test -n "$hardcode_libdir_separator" &&
2479
test -n "$hardcode_libdirs"; then
2480
libdir="$hardcode_libdirs"
2481
eval rpath=\" $hardcode_libdir_flag_spec\"
2483
finalize_rpath="$rpath"
2485
output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2486
if test "X$output_objdir" = "X$output"; then
2487
output_objdir="$objdir"
2489
output_objdir="$output_objdir/$objdir"
2492
# Create the binary in the object directory, then wrap it.
2493
if test ! -d $output_objdir; then
2494
$show "$mkdir $output_objdir"
2495
$run $mkdir $output_objdir
2497
if test $status -ne 0 && test ! -d $output_objdir; then
2502
if test -n "$libobjs" && test "$build_old_libs" = yes; then
2503
# Transform all the library objects into standard objects.
2504
compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2505
finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2509
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2510
if test -n "$NM" && test -n "$global_symbol_pipe"; then
2511
dlsyms="${outputname}S.c"
2513
$echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2517
if test -n "$dlsyms"; then
2521
# Discover the nlist of each of the dlfiles.
2522
nlist="$output_objdir/${outputname}.nm"
2524
$show "$rm $nlist ${nlist}S ${nlist}T"
2525
$run $rm "$nlist" "${nlist}S" "${nlist}T"
2527
# Parse the name list into a source file.
2528
$show "creating $output_objdir/$dlsyms"
2530
test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
2531
/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
2532
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
2538
/* Prevent the only kind of declaration conflicts we can make. */
2539
#define lt_preloaded_symbols some_other_symbol
2541
/* External symbol declarations for the compiler. */\
2544
if test "$dlself" = yes; then
2545
$show "generating symbol list for \`$output'"
2547
test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2549
# Add our own program objects to the symbol list.
2550
progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2551
for arg in $progfiles; do
2552
$show "extracting global C symbols from \`$arg'"
2553
$run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2556
if test -n "$exclude_expsyms"; then
2557
$run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2558
$run eval '$mv "$nlist"T "$nlist"'
2561
if test -n "$export_symbols_regex"; then
2562
$run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2563
$run eval '$mv "$nlist"T "$nlist"'
2566
# Prepare the list of exported symbols
2567
if test -z "$export_symbols"; then
2568
export_symbols="$output_objdir/$output.exp"
2569
$run $rm $export_symbols
2570
$run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2572
$run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2573
$run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2574
$run eval 'mv "$nlist"T "$nlist"'
2578
for arg in $dlprefiles; do
2579
$show "extracting global C symbols from \`$arg'"
2580
name=`echo "$arg" | sed -e 's%^.*/%%'`
2581
$run eval 'echo ": $name " >> "$nlist"'
2582
$run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2585
if test -z "$run"; then
2586
# Make sure we have at least an empty file.
2587
test -f "$nlist" || : > "$nlist"
2589
if test -n "$exclude_expsyms"; then
2590
egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2591
$mv "$nlist"T "$nlist"
2594
# Try sorting and uniquifying the output.
2595
if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2598
grep -v "^: " < "$nlist" > "$nlist"S
2601
if test -f "$nlist"S; then
2602
eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2604
echo '/* NONE */' >> "$output_objdir/$dlsyms"
2607
$echo >> "$output_objdir/$dlsyms" "\
2609
#undef lt_preloaded_symbols
2611
#if defined (__STDC__) && __STDC__
2612
# define lt_ptr_t void *
2614
# define lt_ptr_t char *
2618
/* The mapping between symbol names and symbols. */
2623
lt_preloaded_symbols[] =
2627
sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
2628
-e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
2629
< "$nlist" >> "$output_objdir/$dlsyms"
2631
$echo >> "$output_objdir/$dlsyms" "\
2635
/* This works around a problem in FreeBSD linker */
2636
#ifdef FREEBSD_WORKAROUND
2637
static const void *lt_preloaded_setup() {
2638
return lt_preloaded_symbols;
2648
pic_flag_for_symtable=
2650
# compiling the symbol table file with pic_flag works around
2651
# a FreeBSD bug that causes programs to crash when -lm is
2652
# linked before any other PIC object. But we must not use
2653
# pic_flag when linking with -static. The problem exists in
2654
# FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2655
*-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
2656
case "$compile_command " in
2658
*) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2661
case "$compile_command " in
2663
*) pic_flag_for_symtable=" $pic_flag -DPIC";;
2667
# Now compile the dynamic symbol file.
2668
$show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2669
$run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
2671
# Clean up the generated files.
2672
$show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2673
$run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
2675
# Transform the symbol file into the correct name.
2676
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2677
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2680
$echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2685
# We keep going just in case the user didn't refer to
2686
# lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2687
# really was required.
2689
# Nullify the symbol file.
2690
compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2691
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2694
if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
2695
# Replace the output file specification.
2696
compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2697
link_command="$compile_command$compile_rpath"
2699
# We have no uninstalled library dependencies, so finalize right now.
2700
$show "$link_command"
2701
$run eval "$link_command"
2704
# Delete the generated files.
2705
if test -n "$dlsyms"; then
2706
$show "$rm $output_objdir/${outputname}S.${objext}"
2707
$run $rm "$output_objdir/${outputname}S.${objext}"
2713
if test -n "$shlibpath_var"; then
2714
# We should set the shlibpath_var
2716
for dir in $temp_rpath; do
2718
[\\/]* | [A-Za-z]:[\\/]*)
2723
# Relative path: add a thisdir entry.
2724
rpath="$rpath\$thisdir/$dir:"
2731
if test -n "$compile_shlibpath$finalize_shlibpath"; then
2732
compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
2734
if test -n "$finalize_shlibpath"; then
2735
finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
2740
if test -n "$runpath_var"; then
2741
if test -n "$perm_rpath"; then
2742
# We should set the runpath_var.
2744
for dir in $perm_rpath; do
2747
compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2749
if test -n "$finalize_perm_rpath"; then
2750
# We should set the runpath_var.
2752
for dir in $finalize_perm_rpath; do
2755
finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2759
if test "$hardcode_action" = relink; then
2760
# Fast installation is not supported
2761
link_command="$compile_var$compile_command$compile_rpath"
2762
relink_command="$finalize_var$finalize_command$finalize_rpath"
2764
$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2765
$echo "$modename: \`$output' will be relinked during installation" 1>&2
2767
if test "$fast_install" != no; then
2768
link_command="$finalize_var$compile_command$finalize_rpath"
2769
if test "$fast_install" = yes; then
2770
relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2772
# fast_install is set to needless
2776
link_command="$compile_var$compile_command$compile_rpath"
2777
relink_command="$finalize_var$finalize_command$finalize_rpath"
2781
# Replace the output file specification.
2782
link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2784
# Delete the old output files.
2785
$run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2787
$show "$link_command"
2788
$run eval "$link_command" || exit $?
2790
# Now create the wrapper script.
2791
$show "creating $output"
2793
# Quote the relink command for shipping.
2794
if test -n "$relink_command"; then
2795
relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2798
# Quote $echo for shipping.
2799
if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2801
[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
2802
*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2804
qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2806
qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
2809
# Only actually do things if our run command is non-null.
2810
if test -z "$run"; then
2811
# win32 will think the script is a binary if it has
2812
# a .exe suffix, so we strip it off here.
2814
*.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2817
trap "$rm $output; exit 1" 1 2 15
2822
# $output - temporary wrapper script for $objdir/$outputname
2823
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2825
# The $output program cannot be directly executed until all the libtool
2826
# libraries that it depends on are installed.
2828
# This wrapper script should never be moved out of the build directory.
2829
# If it is, it will not operate correctly.
2831
# Sed substitution that helps us do robust quoting. It backslashifies
2832
# metacharacters that are still active within double-quoted strings.
2833
Xsed='sed -e 1s/^X//'
2834
sed_quote_subst='$sed_quote_subst'
2836
# The HP-UX ksh and POSIX shell print the target directory to stdout
2838
if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
2840
relink_command=\"$relink_command\"
2842
# This environment variable determines our operation mode.
2843
if test \"\$libtool_install_magic\" = \"$magic\"; then
2844
# install mode needs the following variable:
2845
link_against_libtool_libs='$link_against_libtool_libs'
2847
# When we are sourced in execute mode, \$file and \$echo are already set.
2848
if test \"\$libtool_execute_magic\" != \"$magic\"; then
2851
# Make sure echo works.
2852
if test \"X\$1\" = X--no-reexec; then
2853
# Discard the --no-reexec flag, and continue.
2855
elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2856
# Yippee, \$echo works!
2859
# Restart under the correct shell, and then maybe \$echo will work.
2860
exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2866
# Find the directory that this script lives in.
2867
thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2868
test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2870
# Follow symbolic links until we get to the real thisdir.
2871
file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2872
while test -n \"\$file\"; do
2873
destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2875
# If there was a directory component, then change thisdir.
2876
if test \"x\$destdir\" != \"x\$file\"; then
2877
case \"\$destdir\" in
2878
[\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
2879
*) thisdir=\"\$thisdir/\$destdir\" ;;
2883
file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2884
file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2887
# Try to get the absolute directory name.
2888
absdir=\`cd \"\$thisdir\" && pwd\`
2889
test -n \"\$absdir\" && thisdir=\"\$absdir\"
2892
if test "$fast_install" = yes; then
2894
program=lt-'$outputname'
2895
progdir=\"\$thisdir/$objdir\"
2897
if test ! -f \"\$progdir/\$program\" || \\
2898
{ file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2899
test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2901
file=\"\$\$-\$program\"
2903
if test ! -d \"\$progdir\"; then
2904
$mkdir \"\$progdir\"
2906
$rm \"\$progdir/\$file\"
2911
# relink executable if necessary
2912
if test -n \"\$relink_command\"; then
2913
if (cd \"\$thisdir\" && eval \$relink_command); then :
2915
$rm \"\$progdir/\$file\"
2920
$mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2921
{ $rm \"\$progdir/\$program\";
2922
$mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2923
$rm \"\$progdir/\$file\"
2927
program='$outputname'
2928
progdir=\"\$thisdir/$objdir\"
2934
if test -f \"\$progdir/\$program\"; then"
2936
# Export our shlibpath_var if we have one.
2937
if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2939
# Add our own library path to $shlibpath_var
2940
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2942
# Some systems cannot cope with colon-terminated $shlibpath_var
2943
# The second colon is a workaround for a bug in BeOS R4 sed
2944
$shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2946
export $shlibpath_var
2950
# fixup the dll searchpath if we need to.
2951
if test -n "$dllsearchpath"; then
2953
# Add the dll search path components to the executable PATH
2954
PATH=$dllsearchpath:\$PATH
2959
if test \"\$libtool_execute_magic\" != \"$magic\"; then
2960
# Run the actual program with our arguments.
2963
# win32 systems need to use the prog path for dll
2967
exec \$progdir/\$program \${1+\"\$@\"}
2971
# Backslashes separate directories on plain windows
2972
*-*-mingw | *-*-os2*)
2974
exec \$progdir\\\\\$program \${1+\"\$@\"}
2980
# Export the path to the program.
2981
PATH=\"\$progdir:\$PATH\"
2984
exec \$program \${1+\"\$@\"}
2989
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2993
# The program doesn't exist.
2994
\$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2995
\$echo \"This script is just a wrapper for \$program.\" 1>&2
2996
echo \"See the $PACKAGE documentation for more information.\" 1>&2
3007
# See if we need to build an old-fashioned archive.
3008
for oldlib in $oldlibs; do
3010
if test "$build_libtool_libs" = convenience; then
3011
oldobjs="$libobjs_save"
3012
addlibs="$convenience"
3013
build_libtool_libs=no
3015
if test "$build_libtool_libs" = module; then
3016
oldobjs="$libobjs_save"
3017
build_libtool_libs=no
3019
oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
3021
addlibs="$old_convenience"
3024
if test -n "$addlibs"; then
3025
gentop="$output_objdir/${outputname}x"
3026
$show "${rm}r $gentop"
3027
$run ${rm}r "$gentop"
3028
$show "mkdir $gentop"
3029
$run mkdir "$gentop"
3031
if test $status -ne 0 && test ! -d "$gentop"; then
3034
generated="$generated $gentop"
3036
# Add in members from convenience archives.
3037
for xlib in $addlibs; do
3038
# Extract the objects.
3040
[\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
3041
*) xabs=`pwd`"/$xlib" ;;
3043
xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
3044
xdir="$gentop/$xlib"
3046
$show "${rm}r $xdir"
3051
if test $status -ne 0 && test ! -d "$xdir"; then
3054
$show "(cd $xdir && $AR x $xabs)"
3055
$run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
3057
oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
3061
# Do each command in the archive commands.
3062
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
3063
eval cmds=\"$old_archive_from_new_cmds\"
3065
# Ensure that we have .o objects in place in case we decided
3066
# not to build a shared library, and have fallen back to building
3067
# static libs even though --disable-static was passed!
3068
for oldobj in $oldobjs; do
3069
if test ! -f $oldobj; then
3070
xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
3071
if test "X$xdir" = "X$oldobj"; then
3076
baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
3077
obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
3078
$show "(cd $xdir && ${LN_S} $obj $baseobj)"
3079
$run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
3083
eval cmds=\"$old_archive_cmds\"
3085
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3086
for cmd in $cmds; do
3089
$run eval "$cmd" || exit $?
3094
if test -n "$generated"; then
3095
$show "${rm}r$generated"
3096
$run ${rm}r$generated
3099
# Now create the libtool archive.
3103
test "$build_old_libs" = yes && old_library="$libname.$libext"
3104
$show "creating $output"
3106
if test -n "$xrpath"; then
3108
for libdir in $xrpath; do
3109
temp_xrpath="$temp_xrpath -R$libdir"
3111
dependency_libs="$temp_xrpath $dependency_libs"
3114
# Only create the output if not a dry run.
3115
if test -z "$run"; then
3116
for installed in no yes; do
3117
if test "$installed" = yes; then
3118
if test -z "$install_libdir"; then
3121
output="$output_objdir/$outputname"i
3125
# $outputname - a libtool library file
3126
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
3128
# Please DO NOT delete this file!
3129
# It is necessary for linking the library.
3131
# The name that we can dlopen(3).
3134
# Names of this library.
3135
library_names='$library_names'
3137
# The name of the static archive.
3138
old_library='$old_library'
3140
# Libraries that this one depends upon.
3141
dependency_libs='$dependency_libs'
3143
# Version information for $libname.
3148
# Is this an already installed library?
3149
installed=$installed
3151
# Directory that this library needs to be installed in:
3152
libdir='$install_libdir'\
3157
# Do a symbolic link so that the libtool archive can be found in
3158
# LD_LIBRARY_PATH before the program is installed.
3159
$show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
3160
$run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
3166
# libtool install mode
3168
modename="$modename: install"
3170
# There may be an optional sh(1) argument at the beginning of
3171
# install_prog (especially on Windows NT).
3172
if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3173
# Aesthetically quote it.
3174
arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3176
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3180
install_prog="$arg "
3188
# The real first argument should be the name of the installation program.
3189
# Aesthetically quote it.
3190
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3192
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3196
install_prog="$install_prog$arg"
3198
# We need to accept at least all the BSD install flags.
3208
if test -n "$dest"; then
3209
files="$files $dest"
3227
# If the previous option needed an argument, then skip it.
3228
if test -n "$prev"; then
3237
# Aesthetically quote the argument.
3238
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3240
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3244
install_prog="$install_prog $arg"
3247
if test -z "$install_prog"; then
3248
$echo "$modename: you must specify an install program" 1>&2
3253
if test -n "$prev"; then
3254
$echo "$modename: the \`$prev' option requires an argument" 1>&2
3259
if test -z "$files"; then
3260
if test -z "$dest"; then
3261
$echo "$modename: no file or destination specified" 1>&2
3263
$echo "$modename: you must specify a destination" 1>&2
3269
# Strip any trailing slash from the destination.
3270
dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3272
# Check to see that the destination is a directory.
3273
test -d "$dest" && isdir=yes
3274
if test "$isdir" = yes; then
3278
destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3279
test "X$destdir" = "X$dest" && destdir=.
3280
destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3282
# Not a directory, so check to see that there is only one file specified.
3284
if test $# -gt 2; then
3285
$echo "$modename: \`$dest' is not a directory" 1>&2
3291
[\\/]* | [A-Za-z]:[\\/]*) ;;
3293
for file in $files; do
3297
$echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3306
# This variable tells wrapper scripts just to set variables rather
3307
# than running their programs.
3308
libtool_install_magic="$magic"
3313
for file in $files; do
3315
# Do each installation.
3318
# Do the static libraries later.
3319
staticlibs="$staticlibs $file"
3323
# Check to see that this really is a libtool archive.
3324
if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3326
$echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3333
# If there is no directory component, then add one.
3335
*/* | *\\*) . $file ;;
3339
# Add the libdir to current_libdirs if it is the destination.
3340
if test "X$destdir" = "X$libdir"; then
3341
case "$current_libdirs " in
3343
*) current_libdirs="$current_libdirs $libdir" ;;
3346
# Note the libdir as a future libdir.
3347
case "$future_libdirs " in
3349
*) future_libdirs="$future_libdirs $libdir" ;;
3353
dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3354
test "X$dir" = "X$file/" && dir=
3357
# See the names of the shared library.
3358
set dummy $library_names
3359
if test -n "$2"; then
3364
# Install the shared library and build the symlinks.
3365
$show "$install_prog $dir/$realname $destdir/$realname"
3366
$run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3368
if test $# -gt 0; then
3369
# Delete the old symlinks, and create new ones.
3372
if test "$linkname" != "$realname"; then
3373
$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3374
$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3379
# Do each command in the postinstall commands.
3380
lib="$destdir/$realname"
3381
eval cmds=\"$postinstall_cmds\"
3382
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3383
for cmd in $cmds; do
3386
$run eval "$cmd" || exit $?
3391
# Install the pseudo-library for information purposes.
3392
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3393
instname="$dir/$name"i
3394
$show "$install_prog $instname $destdir/$name"
3395
$run eval "$install_prog $instname $destdir/$name" || exit $?
3397
# Maybe install the static library, too.
3398
test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3402
# Install (i.e. copy) a libtool object.
3404
# Figure out destination file name, if it wasn't already specified.
3405
if test -n "$destname"; then
3406
destfile="$destdir/$destname"
3408
destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3409
destfile="$destdir/$destfile"
3412
# Deduce the name of the destination old-style object file.
3415
staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3418
staticdest="$destfile"
3422
$echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3428
# Install the libtool object if requested.
3429
if test -n "$destfile"; then
3430
$show "$install_prog $file $destfile"
3431
$run eval "$install_prog $file $destfile" || exit $?
3434
# Install the old object if enabled.
3435
if test "$build_old_libs" = yes; then
3436
# Deduce the name of the old-style object file.
3437
staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3439
$show "$install_prog $staticobj $staticdest"
3440
$run eval "$install_prog \$staticobj \$staticdest" || exit $?
3446
# Figure out destination file name, if it wasn't already specified.
3447
if test -n "$destname"; then
3448
destfile="$destdir/$destname"
3450
destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3451
destfile="$destdir/$destfile"
3454
# Do a test to see if this is really a libtool program.
3455
if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3456
link_against_libtool_libs=
3459
# If there is no directory component, then add one.
3461
*/* | *\\*) . $file ;;
3465
# Check the variables that should have been set.
3466
if test -z "$link_against_libtool_libs"; then
3467
$echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3472
for lib in $link_against_libtool_libs; do
3473
# Check to see that each library is installed.
3475
if test -f "$lib"; then
3476
# If there is no directory component, then add one.
3478
*/* | *\\*) . $lib ;;
3482
libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3483
if test -n "$libdir" && test ! -f "$libfile"; then
3484
$echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3490
if test "$fast_install" = no && test -n "$relink_command"; then
3491
if test "$finalize" = yes && test -z "$run"; then
3493
test -n "$TMPDIR" && tmpdir="$TMPDIR"
3494
tmpdir="$tmpdir/libtool-$$"
3495
if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3497
$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3500
outputname="$tmpdir/$file"
3501
# Replace the output file specification.
3502
relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3504
$show "$relink_command"
3505
if $run eval "$relink_command"; then :
3507
$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3513
$echo "$modename: warning: cannot relink \`$file'" 1>&2
3516
# Install the binary that we compiled earlier.
3517
file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3521
$show "$install_prog$stripme $file $destfile"
3522
$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3523
test -n "$outputname" && ${rm}r "$tmpdir"
3528
for file in $staticlibs; do
3529
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3531
# Set up the ranlib parameters.
3532
oldlib="$destdir/$name"
3534
$show "$install_prog $file $oldlib"
3535
$run eval "$install_prog \$file \$oldlib" || exit $?
3537
# Do each command in the postinstall commands.
3538
eval cmds=\"$old_postinstall_cmds\"
3539
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3540
for cmd in $cmds; do
3543
$run eval "$cmd" || exit $?
3548
if test -n "$future_libdirs"; then
3549
$echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3552
if test -n "$current_libdirs"; then
3553
# Maybe just do a dry run.
3554
test -n "$run" && current_libdirs=" -n$current_libdirs"
3555
exec $SHELL $0 --finish$current_libdirs
3562
# libtool finish mode
3564
modename="$modename: finish"
3568
if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3571
libdirs="$libdirs $dir"
3574
for libdir in $libdirs; do
3575
if test -n "$finish_cmds"; then
3576
# Do each command in the finish commands.
3577
eval cmds=\"$finish_cmds\"
3578
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3579
for cmd in $cmds; do
3582
$run eval "$cmd" || admincmds="$admincmds
3587
if test -n "$finish_eval"; then
3588
# Do the single finish_eval.
3589
eval cmds=\"$finish_eval\"
3590
$run eval "$cmds" || admincmds="$admincmds
3596
# Exit here if they wanted silent mode.
3597
test "$show" = : && exit 0
3599
echo "----------------------------------------------------------------------"
3600
echo "Libraries have been installed in:"
3601
for libdir in $libdirs; do
3605
echo "If you ever happen to want to link against installed libraries"
3606
echo "in a given directory, LIBDIR, you must either use libtool, and"
3607
echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3608
echo "flag during linking and do at least one of the following:"
3609
if test -n "$shlibpath_var"; then
3610
echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
3611
echo " during execution"
3613
if test -n "$runpath_var"; then
3614
echo " - add LIBDIR to the \`$runpath_var' environment variable"
3615
echo " during linking"
3617
if test -n "$hardcode_libdir_flag_spec"; then
3619
eval flag=\"$hardcode_libdir_flag_spec\"
3621
echo " - use the \`$flag' linker flag"
3623
if test -n "$admincmds"; then
3624
echo " - have your system administrator run these commands:$admincmds"
3626
if test -f /etc/ld.so.conf; then
3627
echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3630
echo "See any operating system documentation about shared libraries for"
3631
echo "more information, such as the ld(1) and ld.so(8) manual pages."
3632
echo "----------------------------------------------------------------------"
3636
# libtool execute mode
3638
modename="$modename: execute"
3640
# The first argument is the command name.
3642
if test -z "$cmd"; then
3643
$echo "$modename: you must specify a COMMAND" 1>&2
3648
# Handle -dlopen flags immediately.
3649
for file in $execute_dlfiles; do
3650
if test ! -f "$file"; then
3651
$echo "$modename: \`$file' is not a file" 1>&2
3659
# Check to see that this really is a libtool archive.
3660
if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3662
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3667
# Read the libtool library.
3671
# If there is no directory component, then add one.
3673
*/* | *\\*) . $file ;;
3677
# Skip this library if it cannot be dlopened.
3678
if test -z "$dlname"; then
3679
# Warn if it was a shared library.
3680
test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3684
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3685
test "X$dir" = "X$file" && dir=.
3687
if test -f "$dir/$objdir/$dlname"; then
3690
$echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3696
# Just add the directory containing the .lo file.
3697
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3698
test "X$dir" = "X$file" && dir=.
3702
$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
3707
# Get the absolute pathname.
3708
absdir=`cd "$dir" && pwd`
3709
test -n "$absdir" && dir="$absdir"
3711
# Now add the directory to shlibpath_var.
3712
if eval "test -z \"\$$shlibpath_var\""; then
3713
eval "$shlibpath_var=\"\$dir\""
3715
eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3719
# This variable tells wrapper scripts just to set shlibpath_var
3720
# rather than running their programs.
3721
libtool_execute_magic="$magic"
3723
# Check if any of the arguments is a wrapper script.
3730
# Do a test to see if this is really a libtool program.
3731
if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3732
# If there is no directory component, then add one.
3734
*/* | *\\*) . $file ;;
3738
# Transform arg to wrapped name.
3739
file="$progdir/$program"
3743
# Quote arguments (to preserve shell metacharacters).
3744
file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3745
args="$args \"$file\""
3748
if test -z "$run"; then
3749
if test -n "$shlibpath_var"; then
3750
# Export the shlibpath_var.
3751
eval "export $shlibpath_var"
3754
# Restore saved enviroment variables
3755
if test "${save_LC_ALL+set}" = set; then
3756
LC_ALL="$save_LC_ALL"; export LC_ALL
3758
if test "${save_LANG+set}" = set; then
3759
LANG="$save_LANG"; export LANG
3762
# Now actually exec the command.
3763
eval "exec \$cmd$args"
3765
$echo "$modename: cannot exec \$cmd$args"
3768
# Display what would be done.
3769
if test -n "$shlibpath_var"; then
3770
eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3771
$echo "export $shlibpath_var"
3778
# libtool uninstall mode
3780
modename="$modename: uninstall"
3787
-*) rm="$rm $arg" ;;
3788
*) files="$files $arg" ;;
3792
if test -z "$rm"; then
3793
$echo "$modename: you must specify an RM program" 1>&2
3798
for file in $files; do
3799
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3800
test "X$dir" = "X$file" && dir=.
3801
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3807
# Possibly a libtool archive, so verify it.
3808
if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3811
# Delete the libtool libraries and symlinks.
3812
for n in $library_names; do
3813
rmfiles="$rmfiles $dir/$n"
3815
test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
3817
$show "$rm $rmfiles"
3820
if test -n "$library_names"; then
3821
# Do each command in the postuninstall commands.
3822
eval cmds=\"$postuninstall_cmds\"
3823
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3824
for cmd in $cmds; do
3832
if test -n "$old_library"; then
3833
# Do each command in the old_postuninstall commands.
3834
eval cmds=\"$old_postuninstall_cmds\"
3835
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3836
for cmd in $cmds; do
3844
# FIXME: should reinstall the best remaining shared library.
3849
if test "$build_old_libs" = yes; then
3850
oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3851
rmfiles="$rmfiles $dir/$oldobj"
3853
$show "$rm $rmfiles"
3858
$show "$rm $rmfiles"
3867
$echo "$modename: you must specify a MODE" 1>&2
3868
$echo "$generic_help" 1>&2
3873
$echo "$modename: invalid operation mode \`$mode'" 1>&2
3874
$echo "$generic_help" 1>&2
3876
fi # test -z "$show_help"
3878
# We need to display help for each of the modes.
3881
"Usage: $modename [OPTION]... [MODE-ARG]...
3883
Provide generalized library-building support services.
3885
--config show all configuration variables
3886
--debug enable verbose shell tracing
3887
-n, --dry-run display commands without modifying any files
3888
--features display basic configuration information and exit
3889
--finish same as \`--mode=finish'
3890
--help display this help message and exit
3891
--mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
3892
--quiet same as \`--silent'
3893
--silent don't print informational messages
3894
--version print version information
3896
MODE must be one of the following:
3898
compile compile a source file into a libtool object
3899
execute automatically set library path, then run a program
3900
finish complete the installation of libtool libraries
3901
install install libraries or executables
3902
link create a library or an executable
3903
uninstall remove libraries from an installed directory
3905
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
3906
a more detailed description of MODE."
3912
"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3914
Compile a source file into a libtool library object.
3916
This mode accepts the following additional options:
3918
-o OUTPUT-FILE set the output file name to OUTPUT-FILE
3919
-static always build a \`.o' file suitable for static linking
3921
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3922
from the given SOURCEFILE.
3924
The output file name is determined by removing the directory component from
3925
SOURCEFILE, then substituting the C source code suffix \`.c' with the
3926
library object suffix, \`.lo'."
3931
"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3933
Automatically set library path, then run a program.
3935
This mode accepts the following additional options:
3937
-dlopen FILE add the directory containing FILE to the library path
3939
This mode sets the library path environment variable according to \`-dlopen'
3942
If any of the ARGS are libtool executable wrappers, then they are translated
3943
into their corresponding uninstalled binary, and any of their required library
3944
directories are added to the library path.
3946
Then, COMMAND is executed, with ARGS as arguments."
3951
"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3953
Complete the installation of libtool libraries.
3955
Each LIBDIR is a directory that contains libtool libraries.
3957
The commands that this mode executes may require superuser privileges. Use
3958
the \`--dry-run' option if you just want to see what would be executed."
3963
"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3965
Install executables or libraries.
3967
INSTALL-COMMAND is the installation command. The first component should be
3968
either the \`install' or \`cp' program.
3970
The rest of the components are interpreted as arguments to that command (only
3971
BSD-compatible install options are recognized)."
3976
"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3978
Link object files or libraries together to form another library, or to
3979
create an executable program.
3981
LINK-COMMAND is a command using the C compiler that you would use to create
3982
a program from several object files.
3984
The following components of LINK-COMMAND are treated specially:
3986
-all-static do not do any dynamic linking at all
3987
-avoid-version do not add a version suffix if possible
3988
-dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
3989
-dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
3990
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
3991
-export-symbols SYMFILE
3992
try to export only the symbols listed in SYMFILE
3993
-export-symbols-regex REGEX
3994
try to export only the symbols matching REGEX
3995
-LLIBDIR search LIBDIR for required installed libraries
3996
-lNAME OUTPUT-FILE requires the installed library libNAME
3997
-module build a library that can dlopened
3998
-no-undefined declare that a library does not refer to external symbols
3999
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects
4000
-release RELEASE specify package release information
4001
-rpath LIBDIR the created library will eventually be installed in LIBDIR
4002
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
4003
-static do not do any dynamic linking of libtool libraries
4004
-version-info CURRENT[:REVISION[:AGE]]
4005
specify library version info [each variable defaults to 0]
4007
All other options (arguments beginning with \`-') are ignored.
4009
Every other argument is treated as a filename. Files ending in \`.la' are
4010
treated as uninstalled libtool libraries, other files are standard or library
4013
If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
4014
only library objects (\`.lo' files) may be specified, and \`-rpath' is
4015
required, except when creating a convenience library.
4017
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
4018
using \`ar' and \`ranlib', or on Windows using \`lib'.
4020
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
4021
is created, otherwise an executable program is created."
4026
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
4028
Remove libraries from an installation directory.
4030
RM is the name of the program to use to delete files associated with each FILE
4031
(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
4034
If FILE is a libtool library, all the files associated with it are deleted.
4035
Otherwise, only FILE itself is deleted using RM."
4039
$echo "$modename: invalid operation mode \`$mode'" 1>&2
4046
$echo "Try \`$modename --help' for more information about other modes."