]> git.saurik.com Git - wxWidgets.git/blame - ltmain.sh
fixed font-matching bug in wxFontList::FindOrCreateFont for wxGTK when
[wxWidgets.git] / ltmain.sh
CommitLineData
352c26ff
VZ
1# ltmain.sh - Provide generalized library-building support services.
2# NOTE: Changing this file will not affect anything until you rerun ltconfig.
3#
a9b5e89f
VZ
4# Copyright (C) 1996-1999 Free Software Foundation, Inc.
5# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
352c26ff
VZ
6#
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.
11#
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.
16#
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.
20#
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.
25
26# Check that we have a working $echo.
27if test "X$1" = X--no-reexec; then
28 # Discard the --no-reexec flag, and continue.
29 shift
30elif test "X$1" = X--fallback-echo; then
a9b5e89f
VZ
31 # Avoid inline document here, it may be left over
32 :
352c26ff
VZ
33elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
34 # Yippee, $echo works!
35 :
36else
37 # Restart under the correct shell, and then maybe $echo will work.
38 exec $SHELL "$0" --no-reexec ${1+"$@"}
39fi
40
a9b5e89f
VZ
41if test "X$1" = X--fallback-echo; then
42 # used as fallback echo
43 shift
44 cat <<EOF
45$*
46EOF
47 exit 0
48fi
49
352c26ff
VZ
50# The name of this program.
51progname=`$echo "$0" | sed 's%^.*/%%'`
52modename="$progname"
53
54# Constants.
55PROGRAM=ltmain.sh
56PACKAGE=libtool
a9b5e89f
VZ
57VERSION=1.3
58TIMESTAMP=" (1.385.2.117 1999/04/29 13:07:13)"
352c26ff
VZ
59
60default_mode=
61help="Try \`$progname --help' for more information."
62magic="%%%MAGIC variable%%%"
63mkdir="mkdir"
64mv="mv -f"
65rm="rm -f"
66
67# Sed substitution that helps us do robust quoting. It backslashifies
68# metacharacters that are still active within double-quoted strings.
a9b5e89f 69Xsed='sed -e 1s/^X//'
352c26ff 70sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
a9b5e89f
VZ
71SP2NL='tr \040 \012'
72NL2SP='tr \012 \040'
352c26ff
VZ
73
74# NLS nuisances.
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.
79if test "${LC_ALL+set}" = set; then
80 save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
81fi
82if test "${LANG+set}" = set; then
83 save_LANG="$LANG"; LANG=C; export LANG
84fi
85
86if 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
89 exit 1
90fi
91
92if 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
95 exit 1
96fi
97
98# Global variables.
99mode=$default_mode
100nonopt=
101prev=
102prevopt=
103run=
104show="$echo"
105show_help=
106execute_dlfiles=
107lo2o="s/\\.lo\$/.${objext}/"
a9b5e89f 108o2lo="s/\\.${objext}\$/.lo/"
352c26ff
VZ
109
110# Parse our command line options once, thoroughly.
111while test $# -gt 0
112do
113 arg="$1"
114 shift
115
116 case "$arg" in
117 -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
118 *) optarg= ;;
119 esac
120
121 # If the previous option needs an argument, assign it.
122 if test -n "$prev"; then
123 case "$prev" in
124 execute_dlfiles)
125 eval "$prev=\"\$$prev \$arg\""
126 ;;
127 *)
128 eval "$prev=\$arg"
129 ;;
130 esac
131
132 prev=
133 prevopt=
134 continue
135 fi
136
137 # Have we seen a non-optional argument yet?
138 case "$arg" in
139 --help)
140 show_help=yes
141 ;;
142
143 --version)
a9b5e89f 144 echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
352c26ff
VZ
145 exit 0
146 ;;
147
148 --config)
149 sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
150 exit 0
151 ;;
152
153 --debug)
154 echo "$progname: enabling shell trace mode"
155 set -x
156 ;;
157
158 --dry-run | -n)
159 run=:
160 ;;
161
162 --features)
163 echo "host: $host"
164 if test "$build_libtool_libs" = yes; then
165 echo "enable shared libraries"
166 else
167 echo "disable shared libraries"
168 fi
169 if test "$build_old_libs" = yes; then
170 echo "enable static libraries"
171 else
172 echo "disable static libraries"
173 fi
174 exit 0
175 ;;
176
177 --finish) mode="finish" ;;
178
179 --mode) prevopt="--mode" prev=mode ;;
180 --mode=*) mode="$optarg" ;;
181
182 --quiet | --silent)
183 show=:
184 ;;
185
186 -dlopen)
187 prevopt="-dlopen"
188 prev=execute_dlfiles
189 ;;
190
191 -*)
192 $echo "$modename: unrecognized option \`$arg'" 1>&2
193 $echo "$help" 1>&2
194 exit 1
195 ;;
196
197 *)
198 nonopt="$arg"
199 break
200 ;;
201 esac
202done
203
204if test -n "$prevopt"; then
205 $echo "$modename: option \`$prevopt' requires an argument" 1>&2
206 $echo "$help" 1>&2
207 exit 1
208fi
209
210if test -z "$show_help"; then
211
212 # Infer the operation mode.
213 if test -z "$mode"; then
214 case "$nonopt" in
215 *cc | *++ | gcc* | *-gcc*)
216 mode=link
217 for arg
218 do
a9b5e89f
VZ
219 case "$arg" in
220 -c)
221 mode=compile
222 break
223 ;;
224 esac
352c26ff
VZ
225 done
226 ;;
227 *db | *dbx | *strace | *truss)
228 mode=execute
229 ;;
230 *install*|cp|mv)
231 mode=install
232 ;;
233 *rm)
234 mode=uninstall
235 ;;
236 *)
237 # If we have no mode, but dlfiles were specified, then do execute mode.
238 test -n "$execute_dlfiles" && mode=execute
239
240 # Just use the default operation mode.
241 if test -z "$mode"; then
a9b5e89f
VZ
242 if test -n "$nonopt"; then
243 $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
244 else
245 $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
246 fi
352c26ff
VZ
247 fi
248 ;;
249 esac
250 fi
251
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
255 $echo "$help" 1>&2
256 exit 1
257 fi
258
259 # Change the help message to a mode-specific one.
260 generic_help="$help"
261 help="Try \`$modename --help --mode=$mode' for more information."
262
263 # These modes are in order of execution frequency so that they run quickly.
264 case "$mode" in
265 # libtool compile mode
266 compile)
267 modename="$modename: compile"
268 # Get the compilation command and the source file.
269 base_compile=
270 lastarg=
271 srcfile="$nonopt"
272 suppress_output=
352c26ff
VZ
273
274 user_target=no
275 for arg
276 do
277 # Accept any command-line options.
278 case "$arg" in
279 -o)
a9b5e89f
VZ
280 if test "$user_target" != "no"; then
281 $echo "$modename: you cannot specify \`-o' more than once" 1>&2
352c26ff 282 exit 1
a9b5e89f
VZ
283 fi
284 user_target=next
352c26ff
VZ
285 ;;
286
352c26ff 287 -static)
a9b5e89f
VZ
288 build_old_libs=yes
289 continue
290 ;;
352c26ff
VZ
291 esac
292
293 case "$user_target" in
294 next)
a9b5e89f
VZ
295 # The next one is the -o target name
296 user_target=yes
297 continue
298 ;;
352c26ff 299 yes)
a9b5e89f
VZ
300 # We got the output file
301 user_target=set
302 libobj="$arg"
303 continue
304 ;;
352c26ff
VZ
305 esac
306
307 # Accept the current argument as the source file.
308 lastarg="$srcfile"
309 srcfile="$arg"
310
311 # Aesthetically quote the previous argument.
312
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"`
317
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.
321 case "$lastarg" in
322 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
a9b5e89f
VZ
323 lastarg="\"$lastarg\""
324 ;;
352c26ff
VZ
325 esac
326
327 # Add the previous argument to base_compile.
328 if test -z "$base_compile"; then
a9b5e89f 329 base_compile="$lastarg"
352c26ff 330 else
a9b5e89f 331 base_compile="$base_compile $lastarg"
352c26ff
VZ
332 fi
333 done
334
335 case "$user_target" in
336 set)
337 ;;
338 no)
339 # Get the name of the library object.
340 libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
341 ;;
342 *)
343 $echo "$modename: you must specify a target with \`-o'" 1>&2
344 exit 1
345 ;;
346 esac
347
348 # Recognize several different file suffixes.
349 # If the user specifies -o file.o, it is replaced with file.lo
350 xform='[cCFSfmso]'
351 case "$libobj" in
352 *.ada) xform=ada ;;
353 *.adb) xform=adb ;;
354 *.ads) xform=ads ;;
355 *.asm) xform=asm ;;
356 *.c++) xform=c++ ;;
357 *.cc) xform=cc ;;
358 *.cpp) xform=cpp ;;
359 *.cxx) xform=cxx ;;
360 *.f90) xform=f90 ;;
361 *.for) xform=for ;;
362 esac
363
364 libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
365
366 case "$libobj" in
367 *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
368 *)
369 $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
370 exit 1
371 ;;
372 esac
373
374 if test -z "$base_compile"; then
375 $echo "$modename: you must specify a compilation command" 1>&2
376 $echo "$help" 1>&2
377 exit 1
378 fi
379
380 # Delete any leftover library objects.
381 if test "$build_old_libs" = yes; then
a9b5e89f 382 removelist="$obj $libobj"
352c26ff 383 else
a9b5e89f 384 removelist="$libobj"
352c26ff
VZ
385 fi
386
387 $run $rm $removelist
388 trap "$run $rm $removelist; exit 1" 1 2 15
389
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
397 else
398 need_locks=no
399 lockfile=
400 fi
401
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
a9b5e89f
VZ
406 $show "Waiting for $lockfile to be removed"
407 sleep 2
352c26ff
VZ
408 done
409 elif test "$need_locks" = warn; then
410 if test -f "$lockfile"; then
411 echo "\
412*** ERROR, $lockfile exists and contains:
413`cat $lockfile 2>/dev/null`
414
415This indicates that another process is trying to use the same
416temporary object file, and libtool could not work around it because
417your compiler does not support \`-c' and \`-o' together. If you
418repeat this compilation, it may succeed, by chance, but you had better
419avoid parallel builds (make -j) in this platform, or get a better
420compiler."
421
422 $run $rm $removelist
423 exit 1
424 fi
425 echo $srcfile > "$lockfile"
426 fi
427
428 if test -n "$fix_srcfile_path"; then
429 eval srcfile=\"$fix_srcfile_path\"
430 fi
431
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
436
437 # All platforms use -DPIC, to notify preprocessed assembler code.
a9b5e89f
VZ
438 command="$base_compile $pic_flag -DPIC $srcfile"
439 if test "$build_old_libs" = yes; then
440 lo_libobj="$libobj"
441 dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
442 if test "X$dir" = "X$libobj"; then
443 dir="$objdir"
444 else
445 dir="$dir/$objdir"
446 fi
447 libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
448
449 if test -d "$dir"; then
450 $show "$rm $libobj"
451 $run $rm $libobj
452 else
453 $show "$mkdir $dir"
454 $run $mkdir $dir
455 status=$?
456 if test $status -ne 0 && test ! -d $dir; then
457 exit $status
458 fi
459 fi
460 fi
352c26ff 461 if test "$compiler_o_lo" = yes; then
a9b5e89f
VZ
462 output_obj="$libobj"
463 command="$command -o $output_obj"
352c26ff 464 elif test "$compiler_c_o" = yes; then
a9b5e89f
VZ
465 output_obj="$obj"
466 command="$command -o $output_obj"
352c26ff
VZ
467 fi
468
469 $show "$command"
470 if $run eval "$command"; then :
471 else
a9b5e89f
VZ
472 test -n "$output_obj" && $run $rm $removelist
473 exit 1
352c26ff
VZ
474 fi
475
476 if test "$need_locks" = warn &&
477 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
478 echo "\
479*** ERROR, $lockfile contains:
480`cat $lockfile 2>/dev/null`
481
482but it should contain:
483$srcfile
484
485This indicates that another process is trying to use the same
486temporary object file, and libtool could not work around it because
487your compiler does not support \`-c' and \`-o' together. If you
488repeat this compilation, it may succeed, by chance, but you had better
489avoid parallel builds (make -j) in this platform, or get a better
490compiler."
491
492 $run $rm $removelist
493 exit 1
494 fi
495
496 # Just move the object if needed, then go on to compile the next one
a9b5e89f
VZ
497 if test x"$output_obj" != x"$libobj"; then
498 $show "$mv $output_obj $libobj"
499 if $run $mv $output_obj $libobj; then :
352c26ff
VZ
500 else
501 error=$?
502 $run $rm $removelist
503 exit $error
504 fi
505 fi
506
a9b5e89f
VZ
507 # If we have no pic_flag, then copy the object into place and finish.
508 if test -z "$pic_flag" && test "$build_old_libs" = yes; then
509 # Rename the .lo from within objdir to obj
510 if test -f $obj; then
511 $show $rm $obj
512 $run $rm $obj
513 fi
514
515 $show "$mv $libobj $obj"
516 if $run $mv $libobj $obj; then :
517 else
518 error=$?
519 $run $rm $removelist
520 exit $error
521 fi
522
523 # Now arrange that obj and lo_libobj become the same file
524 $show "$LN_S $obj $lo_libobj"
525 if $run $LN_S $obj $lo_libobj; then
352c26ff
VZ
526 exit 0
527 else
a9b5e89f 528 error=$?
352c26ff
VZ
529 $run $rm $removelist
530 exit $error
531 fi
532 fi
533
534 # Allow error messages only from the first compilation.
535 suppress_output=' >/dev/null 2>&1'
536 fi
537
538 # Only build a position-dependent object if we build old libraries.
539 if test "$build_old_libs" = yes; then
540 command="$base_compile $srcfile"
352c26ff 541 if test "$compiler_c_o" = yes; then
a9b5e89f
VZ
542 command="$command -o $obj"
543 output_obj="$obj"
352c26ff
VZ
544 fi
545
546 # Suppress compiler output if we already did a PIC compilation.
547 command="$command$suppress_output"
548 $show "$command"
549 if $run eval "$command"; then :
550 else
a9b5e89f
VZ
551 $run $rm $removelist
552 exit 1
352c26ff
VZ
553 fi
554
555 if test "$need_locks" = warn &&
556 test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
557 echo "\
558*** ERROR, $lockfile contains:
559`cat $lockfile 2>/dev/null`
560
561but it should contain:
562$srcfile
563
564This indicates that another process is trying to use the same
565temporary object file, and libtool could not work around it because
566your compiler does not support \`-c' and \`-o' together. If you
567repeat this compilation, it may succeed, by chance, but you had better
568avoid parallel builds (make -j) in this platform, or get a better
569compiler."
570
571 $run $rm $removelist
572 exit 1
573 fi
574
575 # Just move the object if needed
a9b5e89f
VZ
576 if test x"$output_obj" != x"$obj"; then
577 $show "$mv $output_obj $obj"
578 if $run $mv $output_obj $obj; then :
579 else
580 error=$?
581 $run $rm $removelist
582 exit $error
583 fi
584 fi
585
586 # Create an invalid libtool object if no PIC, so that we do not
587 # accidentally link it into a program.
588 if test "$build_libtool_libs" != yes; then
589 $show "echo timestamp > $libobj"
590 $run eval "echo timestamp > \$libobj" || exit $?
591 else
592 # Move the .lo from within objdir
593 $show "$mv $libobj $lo_libobj"
594 if $run $mv $libobj $lo_libobj; then :
352c26ff
VZ
595 else
596 error=$?
597 $run $rm $removelist
598 exit $error
599 fi
600 fi
601 fi
602
603 # Unlock the critical section if it was locked
604 if test "$need_locks" != no; then
605 $rm "$lockfile"
606 fi
607
352c26ff
VZ
608 exit 0
609 ;;
610
611 # libtool link mode
612 link)
613 modename="$modename: link"
614 C_compiler="$CC" # save it, to compile generated C sources
615 CC="$nonopt"
a9b5e89f
VZ
616 case "$host" in
617 *-*-cygwin* | *-*-mingw* | *-*-os2*)
618 # It is impossible to link a dll without this setting, and
619 # we shouldn't force the makefile maintainer to figure out
620 # which system we are compiling for in order to pass an extra
621 # flag for every libtool invokation.
622 # allow_undefined=no
623
624 # FIXME: Unfortunately, there are problems with the above when trying
625 # to make a dll which has undefined symbols, in which case not
626 # even a static library is built. For now, we need to specify
627 # -no-undefined on the libtool link line when we can be certain
628 # that all symbols are satisfied, otherwise we get a static library.
629 allow_undefined=yes
630
631 # This is a source program that is used to create dlls on Windows
632 # Don't remove nor modify the starting and closing comments
633# /* ltdll.c starts here */
634# #define WIN32_LEAN_AND_MEAN
635# #include <windows.h>
636# #undef WIN32_LEAN_AND_MEAN
637# #include <stdio.h>
638#
639# #ifdef __cplusplus
640# extern "C" {
641# #endif
642# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
643# #ifdef __cplusplus
644# }
645# #endif
646#
647# #include <cygwin/cygwin_dll.h>
648# DECLARE_CYGWIN_DLL( DllMain );
649# HINSTANCE __hDllInstance_base;
650#
651# BOOL APIENTRY
652# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
653# {
654# __hDllInstance_base = hInst;
655# return TRUE;
656# }
657# /* ltdll.c ends here */
658 # This is a source program that is used to create import libraries
659 # on Windows for dlls which lack them. Don't remove nor modify the
660 # starting and closing comments
661# /* impgen.c starts here */
662# /* Copyright (C) 1999 Free Software Foundation, Inc.
663#
664# This file is part of GNU libtool.
665#
666# This program is free software; you can redistribute it and/or modify
667# it under the terms of the GNU General Public License as published by
668# the Free Software Foundation; either version 2 of the License, or
669# (at your option) any later version.
670#
671# This program is distributed in the hope that it will be useful,
672# but WITHOUT ANY WARRANTY; without even the implied warranty of
673# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
674# GNU General Public License for more details.
675#
676# You should have received a copy of the GNU General Public License
677# along with this program; if not, write to the Free Software
678# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
679# */
680#
681# #include <stdio.h> /* for printf() */
682# #include <unistd.h> /* for open(), lseek(), read() */
683# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
684# #include <string.h> /* for strdup() */
685#
686# static unsigned int
687# pe_get16 (fd, offset)
688# int fd;
689# int offset;
690# {
691# unsigned char b[2];
692# lseek (fd, offset, SEEK_SET);
693# read (fd, b, 2);
694# return b[0] + (b[1]<<8);
695# }
696#
697# static unsigned int
698# pe_get32 (fd, offset)
699# int fd;
700# int offset;
701# {
702# unsigned char b[4];
703# lseek (fd, offset, SEEK_SET);
704# read (fd, b, 4);
705# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
706# }
707#
708# static unsigned int
709# pe_as32 (ptr)
710# void *ptr;
711# {
712# unsigned char *b = ptr;
713# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
714# }
715#
716# int
717# main (argc, argv)
718# int argc;
719# char *argv[];
720# {
721# int dll;
722# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
723# unsigned long export_rva, export_size, nsections, secptr, expptr;
724# unsigned long name_rvas, nexp;
725# unsigned char *expdata, *erva;
726# char *filename, *dll_name;
727#
728# filename = argv[1];
729#
730# dll = open(filename, O_RDONLY|O_BINARY);
731# if (!dll)
732# return 1;
733#
734# dll_name = filename;
735#
736# for (i=0; filename[i]; i++)
737# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
738# dll_name = filename + i +1;
739#
740# pe_header_offset = pe_get32 (dll, 0x3c);
741# opthdr_ofs = pe_header_offset + 4 + 20;
742# num_entries = pe_get32 (dll, opthdr_ofs + 92);
743#
744# if (num_entries < 1) /* no exports */
745# return 1;
746#
747# export_rva = pe_get32 (dll, opthdr_ofs + 96);
748# export_size = pe_get32 (dll, opthdr_ofs + 100);
749# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
750# secptr = (pe_header_offset + 4 + 20 +
751# pe_get16 (dll, pe_header_offset + 4 + 16));
752#
753# expptr = 0;
754# for (i = 0; i < nsections; i++)
755# {
756# char sname[8];
757# unsigned long secptr1 = secptr + 40 * i;
758# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
759# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
760# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
761# lseek(dll, secptr1, SEEK_SET);
762# read(dll, sname, 8);
763# if (vaddr <= export_rva && vaddr+vsize > export_rva)
764# {
765# expptr = fptr + (export_rva - vaddr);
766# if (export_rva + export_size > vaddr + vsize)
767# export_size = vsize - (export_rva - vaddr);
768# break;
769# }
770# }
771#
772# expdata = (unsigned char*)malloc(export_size);
773# lseek (dll, expptr, SEEK_SET);
774# read (dll, expdata, export_size);
775# erva = expdata - export_rva;
776#
777# nexp = pe_as32 (expdata+24);
778# name_rvas = pe_as32 (expdata+32);
779#
780# printf ("EXPORTS\n");
781# for (i = 0; i<nexp; i++)
782# {
783# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
784# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
785# }
786#
787# return 0;
788# }
789# /* impgen.c ends here */
790 ;;
791 *)
792 allow_undefined=yes
793 ;;
794 esac
352c26ff
VZ
795 compile_command="$CC"
796 finalize_command="$CC"
797
a9b5e89f
VZ
798 compile_rpath=
799 finalize_rpath=
352c26ff
VZ
800 compile_shlibpath=
801 finalize_shlibpath=
802 convenience=
803 old_convenience=
804 deplibs=
a9b5e89f
VZ
805 linkopts=
806
807 if test -n "$shlibpath_var"; then
808 # get the directories listed in $shlibpath_var
809 eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
810 else
811 lib_search_path=
812 fi
813 # now prepend the system-specific ones
814 eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
815 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
352c26ff 816
a9b5e89f 817 avoid_version=no
352c26ff
VZ
818 dlfiles=
819 dlprefiles=
a9b5e89f 820 dlself=no
352c26ff
VZ
821 export_dynamic=no
822 export_symbols=
a9b5e89f 823 export_symbols_regex=
352c26ff 824 generated=
352c26ff
VZ
825 libobjs=
826 link_against_libtool_libs=
827 ltlibs=
828 module=no
829 objs=
a9b5e89f
VZ
830 prefer_static_libs=no
831 preload=no
352c26ff
VZ
832 prev=
833 prevarg=
834 release=
835 rpath=
a9b5e89f 836 xrpath=
352c26ff
VZ
837 perm_rpath=
838 temp_rpath=
a9b5e89f 839 thread_safe=no
352c26ff
VZ
840 vinfo=
841
842 # We need to know -static, to get the right output filenames.
843 for arg
844 do
845 case "$arg" in
846 -all-static | -static)
a9b5e89f
VZ
847 if test "X$arg" = "X-all-static"; then
848 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
352c26ff 849 $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
a9b5e89f
VZ
850 fi
851 if test -n "$link_static_flag"; then
852 dlopen_self=$dlopen_self_static
853 fi
854 else
855 if test -z "$pic_flag" && test -n "$link_static_flag"; then
856 dlopen_self=$dlopen_self_static
857 fi
858 fi
859 build_libtool_libs=no
352c26ff 860 build_old_libs=yes
a9b5e89f
VZ
861 prefer_static_libs=yes
862 break
863 ;;
352c26ff
VZ
864 esac
865 done
866
867 # See if our shared archives depend on static archives.
868 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
869
870 # Go through the arguments, transforming them on the way.
871 while test $# -gt 0; do
872 arg="$1"
873 shift
874
875 # If the previous option needs an argument, assign it.
876 if test -n "$prev"; then
a9b5e89f
VZ
877 case "$prev" in
878 output)
879 compile_command="$compile_command @OUTPUT@"
880 finalize_command="$finalize_command @OUTPUT@"
881 ;;
882 esac
883
884 case "$prev" in
885 dlfiles|dlprefiles)
886 if test "$preload" = no; then
887 # Add the symbol object into the linking commands.
888 compile_command="$compile_command @SYMFILE@"
889 finalize_command="$finalize_command @SYMFILE@"
890 preload=yes
891 fi
892 case "$arg" in
893 *.la | *.lo) ;; # We handle these cases below.
894 self)
895 if test "$prev" = dlprefiles; then
896 dlself=yes
897 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
898 dlself=yes
899 else
900 dlself=needless
901 export_dynamic=yes
902 fi
903 prev=
904 continue
905 ;;
906 *)
907 if test "$prev" = dlfiles; then
908 dlfiles="$dlfiles $arg"
909 else
910 dlprefiles="$dlprefiles $arg"
911 fi
912 prev=
913 ;;
914 esac
915 ;;
916 expsyms)
352c26ff 917 export_symbols="$arg"
a9b5e89f
VZ
918 if test ! -f "$arg"; then
919 $echo "$modename: symbol file \`$arg' does not exist"
920 exit 1
921 fi
352c26ff 922 prev=
a9b5e89f
VZ
923 continue
924 ;;
925 expsyms_regex)
926 export_symbols_regex="$arg"
927 prev=
928 continue
352c26ff
VZ
929 ;;
930 release)
931 release="-$arg"
932 prev=
933 continue
934 ;;
a9b5e89f
VZ
935 rpath | xrpath)
936 # We need an absolute path.
937 case "$arg" in
938 [\\/]* | [A-Za-z]:[\\/]*) ;;
939 *)
940 $echo "$modename: only absolute run-paths are allowed" 1>&2
941 exit 1
942 ;;
943 esac
944 if test "$prev" = rpath; then
945 case "$rpath " in
946 *" $arg "*) ;;
947 *) rpath="$rpath $arg" ;;
948 esac
949 else
950 case "$xrpath " in
951 *" $arg "*) ;;
952 *) xrpath="$xrpath $arg" ;;
953 esac
954 fi
352c26ff
VZ
955 prev=
956 continue
957 ;;
a9b5e89f
VZ
958 *)
959 eval "$prev=\"\$arg\""
960 prev=
961 continue
962 ;;
963 esac
352c26ff
VZ
964 fi
965
966 prevarg="$arg"
967
968 case "$arg" in
969 -all-static)
970 if test -n "$link_static_flag"; then
a9b5e89f 971 compile_command="$compile_command $link_static_flag"
352c26ff 972 finalize_command="$finalize_command $link_static_flag"
a9b5e89f
VZ
973 fi
974 continue
352c26ff
VZ
975 ;;
976
977 -allow-undefined)
978 # FIXME: remove this flag sometime in the future.
979 $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
980 continue
981 ;;
982
a9b5e89f
VZ
983 -avoid-version)
984 avoid_version=yes
985 continue
986 ;;
987
352c26ff 988 -dlopen)
a9b5e89f
VZ
989 prev=dlfiles
990 continue
991 ;;
352c26ff
VZ
992
993 -dlpreopen)
a9b5e89f
VZ
994 prev=dlprefiles
995 continue
996 ;;
352c26ff
VZ
997
998 -export-dynamic)
a9b5e89f
VZ
999 export_dynamic=yes
1000 continue
1001 ;;
352c26ff 1002
a9b5e89f
VZ
1003 -export-symbols | -export-symbols-regex)
1004 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1005 $echo "$modename: not more than one -exported-symbols argument allowed"
1006 exit 1
1007 fi
1008 if test "X$arg" = "X-export-symbols"; then
1009 prev=expsyms
1010 else
1011 prev=expsyms_regex
1012 fi
352c26ff 1013 continue
a9b5e89f 1014 ;;
352c26ff
VZ
1015
1016 -L*)
a9b5e89f
VZ
1017 dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1018 # We need an absolute path.
1019 case "$dir" in
1020 [\\/]* | [A-Za-z]:[\\/]*) ;;
1021 *)
1022 absdir=`cd "$dir" && pwd`
1023 if test -z "$absdir"; then
1024 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1025 exit 1
352c26ff 1026 fi
a9b5e89f
VZ
1027 dir="$absdir"
1028 ;;
1029 esac
1030 case " $deplibs " in
1031 *" $arg "*) ;;
1032 *) deplibs="$deplibs $arg";;
1033 esac
1034 case " $lib_search_path " in
1035 *" $dir "*) ;;
1036 *) lib_search_path="$lib_search_path $dir";;
1037 esac
1038 case "$host" in
1039 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1040 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1041 case ":$dllsearchpath:" in
1042 ::) dllsearchpath="$dllsearchdir";;
1043 *":$dllsearchdir:"*) ;;
1044 *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
1045 esac
1046 ;;
1047 esac
1048 ;;
1049
1050 -l*)
1051 if test "$arg" = "-lc"; then
1052 case "$host" in
1053 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1054 # These systems don't actually have c library (as such)
1055 continue
1056 ;;
1057 esac
1058 elif test "$arg" = "-lm"; then
1059 case "$host" in
1060 *-*-cygwin* | *-*-beos*)
1061 # These systems don't actually have math library (as such)
1062 continue
1063 ;;
1064 esac
352c26ff 1065 fi
a9b5e89f
VZ
1066 deplibs="$deplibs $arg"
1067 ;;
1068
1069 -module)
1070 module=yes
1071 continue
1072 ;;
1073
352c26ff
VZ
1074 -no-undefined)
1075 allow_undefined=no
1076 continue
1077 ;;
1078
1079 -o) prev=output ;;
1080
1081 -release)
1082 prev=release
1083 continue
1084 ;;
1085
1086 -rpath)
a9b5e89f
VZ
1087 prev=rpath
1088 continue
1089 ;;
1090
1091 -R)
1092 prev=xrpath
1093 continue
1094 ;;
1095
1096 -R*)
1097 dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1098 # We need an absolute path.
1099 case "$dir" in
1100 [\\/]* | [A-Za-z]:[\\/]*) ;;
1101 *)
1102 $echo "$modename: only absolute run-paths are allowed" 1>&2
1103 exit 1
1104 ;;
1105 esac
1106 case "$xrpath " in
1107 *" $dir "*) ;;
1108 *) xrpath="$xrpath $dir" ;;
1109 esac
1110 continue
1111 ;;
352c26ff
VZ
1112
1113 -static)
1114 # If we have no pic_flag, then this is the same as -all-static.
1115 if test -z "$pic_flag" && test -n "$link_static_flag"; then
a9b5e89f 1116 compile_command="$compile_command $link_static_flag"
352c26ff 1117 finalize_command="$finalize_command $link_static_flag"
a9b5e89f
VZ
1118 fi
1119 continue
1120 ;;
1121
1122 -thread-safe)
1123 thread_safe=yes
352c26ff
VZ
1124 continue
1125 ;;
1126
1127 -version-info)
a9b5e89f
VZ
1128 prev=vinfo
1129 continue
1130 ;;
352c26ff
VZ
1131
1132 # Some other compiler flag.
1133 -* | +*)
1134 # Unknown arguments in both finalize_command and compile_command need
1135 # to be aesthetically quoted because they are evaled later.
1136 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1137 case "$arg" in
1138 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1139 arg="\"$arg\""
1140 ;;
1141 esac
a9b5e89f 1142 ;;
352c26ff
VZ
1143
1144 *.o | *.obj | *.a | *.lib)
a9b5e89f
VZ
1145 # A standard object.
1146 objs="$objs $arg"
1147 ;;
352c26ff
VZ
1148
1149 *.lo)
a9b5e89f 1150 # A library object.
352c26ff
VZ
1151 if test "$prev" = dlfiles; then
1152 dlfiles="$dlfiles $arg"
a9b5e89f 1153 if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
352c26ff
VZ
1154 prev=
1155 continue
1156 else
1157 # If libtool objects are unsupported, then we need to preload.
1158 prev=dlprefiles
1159 fi
1160 fi
1161
1162 if test "$prev" = dlprefiles; then
1163 # Preload the old-style object.
1164 dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
1165 prev=
1166 fi
1167 libobjs="$libobjs $arg"
a9b5e89f 1168 ;;
352c26ff
VZ
1169
1170 *.la)
a9b5e89f 1171 # A libtool-controlled library.
352c26ff 1172
a9b5e89f
VZ
1173 dlname=
1174 libdir=
1175 library_names=
1176 old_library=
352c26ff 1177
a9b5e89f
VZ
1178 # Check to see that this really is a libtool archive.
1179 if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
1180 else
1181 $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
1182 exit 1
1183 fi
352c26ff
VZ
1184
1185 # If the library was installed with an old release of libtool,
1186 # it will not redefine variable installed.
1187 installed=yes
1188
a9b5e89f
VZ
1189 # Read the .la file
1190 # If there is no directory component, then add one.
1191 case "$arg" in
1192 */* | *\\*) . $arg ;;
1193 *) . ./$arg ;;
1194 esac
352c26ff 1195
a9b5e89f
VZ
1196 # Get the name of the library we link against.
1197 linklib=
1198 for l in $old_library $library_names; do
1199 linklib="$l"
1200 done
352c26ff 1201
a9b5e89f
VZ
1202 if test -z "$linklib"; then
1203 $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
1204 exit 1
1205 fi
352c26ff 1206
a9b5e89f
VZ
1207 # Find the relevant object directory and library name.
1208 name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
352c26ff
VZ
1209
1210 if test "X$installed" = Xyes; then
1211 dir="$libdir"
1212 else
1213 dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1214 if test "X$dir" = "X$arg"; then
1215 dir="$objdir"
1216 else
1217 dir="$dir/$objdir"
1218 fi
1219 fi
1220
a9b5e89f
VZ
1221 if test -n "$dependency_libs"; then
1222 # Extract -R from dependency_libs
1223 temp_deplibs=
1224 for deplib in $dependency_libs; do
1225 case "$deplib" in
1226 -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
1227 case " $rpath $xrpath " in
1228 *" $temp_xrpath "*) ;;
1229 *) xrpath="$xrpath $temp_xrpath";;
1230 esac;;
1231 -L*) case "$compile_command $temp_deplibs " in
1232 *" $deplib "*) ;;
1233 *) temp_deplibs="$temp_deplibs $deplib";;
1234 esac;;
1235 *) temp_deplibs="$temp_deplibs $deplib";;
1236 esac
1237 done
1238 dependency_libs="$temp_deplibs"
1239 fi
1240
1241 if test -z "$libdir"; then
352c26ff
VZ
1242 # It is a libtool convenience library, so add in its objects.
1243 convenience="$convenience $dir/$old_library"
1244 old_convenience="$old_convenience $dir/$old_library"
1245 deplibs="$deplibs$dependency_libs"
1246 compile_command="$compile_command $dir/$old_library$dependency_libs"
1247 finalize_command="$finalize_command $dir/$old_library$dependency_libs"
1248 continue
1249 fi
1250
a9b5e89f
VZ
1251 # This library was specified with -dlopen.
1252 if test "$prev" = dlfiles; then
1253 dlfiles="$dlfiles $arg"
1254 if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
1255 # If there is no dlname, no dlopen support or we're linking statically,
1256 # we need to preload.
1257 prev=dlprefiles
1258 else
1259 # We should not create a dependency on this library, but we
352c26ff
VZ
1260 # may need any libraries it requires.
1261 compile_command="$compile_command$dependency_libs"
1262 finalize_command="$finalize_command$dependency_libs"
a9b5e89f
VZ
1263 prev=
1264 continue
1265 fi
1266 fi
1267
1268 # The library was specified with -dlpreopen.
1269 if test "$prev" = dlprefiles; then
1270 # Prefer using a static library (so that no silly _DYNAMIC symbols
1271 # are required to link).
1272 if test -n "$old_library"; then
1273 dlprefiles="$dlprefiles $dir/$old_library"
1274 else
1275 dlprefiles="$dlprefiles $dir/$linklib"
1276 fi
1277 prev=
1278 fi
352c26ff 1279
a9b5e89f
VZ
1280 if test -n "$library_names" &&
1281 { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
1282 link_against_libtool_libs="$link_against_libtool_libs $arg"
1283 if test -n "$shlibpath_var"; then
1284 # Make sure the rpath contains only unique directories.
1285 case "$temp_rpath " in
1286 *" $dir "*) ;;
1287 *) temp_rpath="$temp_rpath $dir" ;;
1288 esac
1289 fi
1290
1291 # We need an absolute path.
1292 case "$dir" in
1293 [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
1294 *)
1295 absdir=`cd "$dir" && pwd`
1296 if test -z "$absdir"; then
1297 $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1298 exit 1
1299 fi
1300 ;;
1301 esac
1302
352c26ff 1303 # This is the magic to use -rpath.
a9b5e89f
VZ
1304 # Skip directories that are in the system default run-time
1305 # search path, unless they have been requested with -R.
1306 case " $sys_lib_dlsearch_path " in
1307 *" $absdir "*) ;;
1308 *)
1309 case "$compile_rpath " in
1310 *" $absdir "*) ;;
1311 *) compile_rpath="$compile_rpath $absdir"
1312 esac
1313 ;;
1314 esac
352c26ff 1315
a9b5e89f
VZ
1316 case " $sys_lib_dlsearch_path " in
1317 *" $libdir "*) ;;
1318 *)
1319 case "$finalize_rpath " in
1320 *" $libdir "*) ;;
1321 *) finalize_rpath="$finalize_rpath $libdir"
1322 esac
1323 ;;
1324 esac
352c26ff
VZ
1325
1326 lib_linked=yes
a9b5e89f
VZ
1327 case "$hardcode_action" in
1328 immediate | unsupported)
1329 if test "$hardcode_direct" = no; then
1330 compile_command="$compile_command $dir/$linklib"
1331 deplibs="$deplibs $dir/$linklib"
1332 case "$host" in
1333 *-*-cygwin* | *-*-mingw* | *-*-os2*)
1334 dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
1335 if test -n "$dllsearchpath"; then
1336 dllsearchpath="$dllsearchpath:$dllsearchdir"
1337 else
1338 dllsearchpath="$dllsearchdir"
1339 fi
1340 ;;
1341 esac
1342 elif test "$hardcode_minus_L" = no; then
352c26ff
VZ
1343 case "$host" in
1344 *-*-sunos*)
a9b5e89f 1345 compile_shlibpath="$compile_shlibpath$dir:"
352c26ff
VZ
1346 ;;
1347 esac
a9b5e89f
VZ
1348 case "$compile_command " in
1349 *" -L$dir "*) ;;
1350 *) compile_command="$compile_command -L$dir";;
1351 esac
1352 compile_command="$compile_command -l$name"
1353 deplibs="$deplibs -L$dir -l$name"
1354 elif test "$hardcode_shlibpath_var" = no; then
1355 case ":$compile_shlibpath:" in
1356 *":$dir:"*) ;;
1357 *) compile_shlibpath="$compile_shlibpath$dir:";;
1358 esac
1359 compile_command="$compile_command -l$name"
1360 deplibs="$deplibs -l$name"
352c26ff
VZ
1361 else
1362 lib_linked=no
a9b5e89f
VZ
1363 fi
1364 ;;
1365
1366 relink)
1367 if test "$hardcode_direct" = yes; then
1368 compile_command="$compile_command $absdir/$linklib"
1369 deplibs="$deplibs $absdir/$linklib"
1370 elif test "$hardcode_minus_L" = yes; then
1371 case "$compile_command " in
1372 *" -L$absdir "*) ;;
1373 *) compile_command="$compile_command -L$absdir";;
1374 esac
1375 compile_command="$compile_command -l$name"
1376 deplibs="$deplibs -L$absdir -l$name"
1377 elif test "$hardcode_shlibpath_var" = yes; then
1378 case ":$compile_shlibpath:" in
1379 *":$absdir:"*) ;;
1380 *) compile_shlibpath="$compile_shlibpath$absdir:";;
1381 esac
1382 compile_command="$compile_command -l$name"
1383 deplibs="$deplibs -l$name"
352c26ff
VZ
1384 else
1385 lib_linked=no
a9b5e89f
VZ
1386 fi
1387 ;;
352c26ff
VZ
1388
1389 *)
1390 lib_linked=no
1391 ;;
a9b5e89f 1392 esac
352c26ff
VZ
1393
1394 if test "$lib_linked" != yes; then
1395 $echo "$modename: configuration error: unsupported hardcode properties"
1396 exit 1
1397 fi
1398
a9b5e89f
VZ
1399 # Finalize command for both is simple: just hardcode it.
1400 if test "$hardcode_direct" = yes; then
1401 finalize_command="$finalize_command $libdir/$linklib"
1402 elif test "$hardcode_minus_L" = yes; then
1403 case "$finalize_command " in
1404 *" -L$libdir "*) ;;
1405 *) finalize_command="$finalize_command -L$libdir";;
1406 esac
1407 finalize_command="$finalize_command -l$name"
1408 elif test "$hardcode_shlibpath_var" = yes; then
1409 case ":$finalize_shlibpath:" in
1410 *":$libdir:"*) ;;
1411 *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
1412 esac
1413 finalize_command="$finalize_command -l$name"
1414 else
1415 # We cannot seem to hardcode it, guess we'll fake it.
1416 case "$finalize_command " in
1417 *" -L$dir "*) ;;
1418 *) finalize_command="$finalize_command -L$libdir";;
1419 esac
1420 finalize_command="$finalize_command -l$name"
1421 fi
1422 else
1423 # Transform directly to old archives if we don't build new libraries.
1424 if test -n "$pic_flag" && test -z "$old_library"; then
1425 $echo "$modename: cannot find static library for \`$arg'" 1>&2
1426 exit 1
1427 fi
352c26ff
VZ
1428
1429 # Here we assume that one of hardcode_direct or hardcode_minus_L
1430 # is not unsupported. This is valid on all known static and
1431 # shared platforms.
1432 if test "$hardcode_direct" != unsupported; then
1433 test -n "$old_library" && linklib="$old_library"
1434 compile_command="$compile_command $dir/$linklib"
1435 finalize_command="$finalize_command $dir/$linklib"
1436 else
a9b5e89f
VZ
1437 case "$compile_command " in
1438 *" -L$dir "*) ;;
1439 *) compile_command="$compile_command -L$dir";;
1440 esac
1441 compile_command="$compile_command -l$name"
1442 case "$finalize_command " in
1443 *" -L$dir "*) ;;
1444 *) finalize_command="$finalize_command -L$dir";;
1445 esac
1446 finalize_command="$finalize_command -l$name"
352c26ff 1447 fi
a9b5e89f 1448 fi
352c26ff
VZ
1449
1450 # Add in any libraries that this one depends upon.
1451 compile_command="$compile_command$dependency_libs"
1452 finalize_command="$finalize_command$dependency_libs"
1453 continue
a9b5e89f 1454 ;;
352c26ff
VZ
1455
1456 # Some other compiler argument.
1457 *)
1458 # Unknown arguments in both finalize_command and compile_command need
1459 # to be aesthetically quoted because they are evaled later.
1460 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1461 case "$arg" in
1462 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
1463 arg="\"$arg\""
1464 ;;
1465 esac
a9b5e89f 1466 ;;
352c26ff
VZ
1467 esac
1468
1469 # Now actually substitute the argument into the commands.
1470 if test -n "$arg"; then
1471 compile_command="$compile_command $arg"
1472 finalize_command="$finalize_command $arg"
1473 fi
1474 done
1475
1476 if test -n "$prev"; then
1477 $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1478 $echo "$help" 1>&2
1479 exit 1
1480 fi
1481
a9b5e89f
VZ
1482 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1483 eval arg=\"$export_dynamic_flag_spec\"
1484 compile_command="$compile_command $arg"
1485 finalize_command="$finalize_command $arg"
352c26ff 1486 fi
a9b5e89f 1487
352c26ff
VZ
1488 oldlibs=
1489 # calculate the name of the file, without its directory
1490 outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
a9b5e89f 1491 libobjs_save="$libobjs"
352c26ff
VZ
1492
1493 case "$output" in
1494 "")
1495 $echo "$modename: you must specify an output file" 1>&2
1496 $echo "$help" 1>&2
1497 exit 1
1498 ;;
1499
1500 *.a | *.lib)
1501 if test -n "$link_against_libtool_libs"; then
a9b5e89f
VZ
1502 $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
1503 exit 1
352c26ff
VZ
1504 fi
1505
1506 if test -n "$deplibs"; then
a9b5e89f 1507 $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
352c26ff
VZ
1508 fi
1509
a9b5e89f
VZ
1510 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1511 $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
352c26ff
VZ
1512 fi
1513
1514 if test -n "$rpath"; then
a9b5e89f
VZ
1515 $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
1516 fi
1517
1518 if test -n "$xrpath"; then
1519 $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
352c26ff
VZ
1520 fi
1521
1522 if test -n "$vinfo"; then
a9b5e89f 1523 $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
352c26ff
VZ
1524 fi
1525
1526 if test -n "$release"; then
a9b5e89f 1527 $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
352c26ff
VZ
1528 fi
1529
a9b5e89f
VZ
1530 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1531 $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
352c26ff
VZ
1532 fi
1533
1534 # Now set the variables for building old libraries.
1535 build_libtool_libs=no
1536 oldlibs="$output"
1537 ;;
1538
1539 *.la)
1540 # Make sure we only generate libraries of the form `libNAME.la'.
1541 case "$outputname" in
a9b5e89f
VZ
1542 lib*)
1543 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
1544 eval libname=\"$libname_spec\"
1545 ;;
352c26ff 1546 *)
a9b5e89f
VZ
1547 if test "$module" = no; then
1548 $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
1549 $echo "$help" 1>&2
1550 exit 1
1551 fi
1552 if test "$need_lib_prefix" != no; then
1553 # Add the "lib" prefix for modules if required
1554 name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1555 eval libname=\"$libname_spec\"
1556 else
1557 libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
1558 fi
352c26ff
VZ
1559 ;;
1560 esac
1561
352c26ff
VZ
1562 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1563 if test "X$output_objdir" = "X$output"; then
a9b5e89f 1564 output_objdir="$objdir"
352c26ff 1565 else
a9b5e89f 1566 output_objdir="$output_objdir/$objdir"
352c26ff
VZ
1567 fi
1568
352c26ff 1569 if test -n "$objs"; then
a9b5e89f
VZ
1570 $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
1571 exit 1
352c26ff
VZ
1572 fi
1573
1574 # How the heck are we supposed to write a wrapper for a shared library?
1575 if test -n "$link_against_libtool_libs"; then
a9b5e89f
VZ
1576 $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
1577 exit 1
352c26ff
VZ
1578 fi
1579
a9b5e89f
VZ
1580 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
1581 $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
352c26ff
VZ
1582 fi
1583
1584 set dummy $rpath
1585 if test $# -gt 2; then
1586 $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
1587 fi
1588 install_libdir="$2"
1589
1590 oldlibs=
1591 if test -z "$rpath"; then
a9b5e89f
VZ
1592 if test "$build_libtool_libs" = yes; then
1593 # Building a libtool convenience library.
1594 libext=al
1595 oldlibs="$output_objdir/$libname.$libext $oldlibs"
1596 build_libtool_libs=convenience
1597 build_old_libs=yes
1598 fi
352c26ff
VZ
1599 dependency_libs="$deplibs"
1600
1601 if test -n "$vinfo"; then
1602 $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
1603 fi
1604
1605 if test -n "$release"; then
1606 $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
1607 fi
1608 else
1609
1610 # Parse the version information argument.
1611 IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
1612 set dummy $vinfo 0 0 0
1613 IFS="$save_ifs"
1614
1615 if test -n "$8"; then
1616 $echo "$modename: too many parameters to \`-version-info'" 1>&2
1617 $echo "$help" 1>&2
1618 exit 1
1619 fi
1620
1621 current="$2"
1622 revision="$3"
1623 age="$4"
1624
1625 # Check that each of the things are valid numbers.
1626 case "$current" in
1627 0 | [1-9] | [1-9][0-9]*) ;;
1628 *)
1629 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
1630 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1631 exit 1
1632 ;;
1633 esac
1634
1635 case "$revision" in
1636 0 | [1-9] | [1-9][0-9]*) ;;
1637 *)
1638 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
1639 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1640 exit 1
1641 ;;
1642 esac
1643
1644 case "$age" in
1645 0 | [1-9] | [1-9][0-9]*) ;;
1646 *)
1647 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
1648 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1649 exit 1
1650 ;;
1651 esac
1652
1653 if test $age -gt $current; then
1654 $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
1655 $echo "$modename: \`$vinfo' is not valid version information" 1>&2
1656 exit 1
1657 fi
1658
1659 # Calculate the version variables.
1660 major=
1661 versuffix=
1662 verstring=
1663 case "$version_type" in
1664 none) ;;
1665
a9b5e89f
VZ
1666 irix)
1667 major=`expr $current - $age + 1`
1668 versuffix="$major.$revision"
1669 verstring="sgi$major.$revision"
1670
1671 # Add in all the interfaces that we are compatible with.
1672 loop=$revision
1673 while test $loop != 0; do
1674 iface=`expr $revision - $loop`
1675 loop=`expr $loop - 1`
1676 verstring="sgi$major.$iface:$verstring"
1677 done
1678 ;;
1679
352c26ff
VZ
1680 linux)
1681 major=.`expr $current - $age`
1682 versuffix="$major.$age.$revision"
1683 ;;
1684
1685 osf)
1686 major=`expr $current - $age`
1687 versuffix=".$current.$age.$revision"
1688 verstring="$current.$age.$revision"
1689
1690 # Add in all the interfaces that we are compatible with.
1691 loop=$age
1692 while test $loop != 0; do
1693 iface=`expr $current - $loop`
1694 loop=`expr $loop - 1`
1695 verstring="$verstring:${iface}.0"
1696 done
1697
1698 # Make executables depend on our current version.
1699 verstring="$verstring:${current}.0"
1700 ;;
1701
1702 sunos)
1703 major=".$current"
1704 versuffix=".$current.$revision"
1705 ;;
1706
1707 freebsd-aout)
1708 major=".$current"
1709 versuffix=".$current.$revision";
1710 ;;
1711
1712 freebsd-elf)
1713 major=".$current"
1714 versuffix=".$current";
1715 ;;
1716
1717 windows)
1718 # Like Linux, but with '-' rather than '.', since we only
1719 # want one extension on Windows 95.
1720 major=`expr $current - $age`
1721 versuffix="-$major-$age-$revision"
1722 ;;
1723
1724 *)
1725 $echo "$modename: unknown library version type \`$version_type'" 1>&2
1726 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
1727 exit 1
1728 ;;
1729 esac
1730
1731 # Clear the version info if we defaulted, and they specified a release.
1732 if test -z "$vinfo" && test -n "$release"; then
1733 major=
352c26ff 1734 verstring="0.0"
a9b5e89f
VZ
1735 if test "$need_version" = no; then
1736 versuffix=
1737 else
352c26ff 1738 versuffix=".0.0"
a9b5e89f 1739 fi
352c26ff
VZ
1740 fi
1741
a9b5e89f
VZ
1742 # Remove version info from name if versioning should be avoided
1743 if test "$avoid_version" = yes && test "$need_version" = no; then
1744 major=
1745 versuffix=
1746 verstring=""
1747 fi
1748
352c26ff
VZ
1749 # Check to see if the archive will have undefined symbols.
1750 if test "$allow_undefined" = yes; then
1751 if test "$allow_undefined_flag" = unsupported; then
1752 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
1753 build_libtool_libs=no
1754 build_old_libs=yes
1755 fi
1756 else
1757 # Don't allow undefined symbols.
1758 allow_undefined_flag="$no_undefined_flag"
1759 fi
1760
352c26ff 1761 dependency_libs="$deplibs"
a9b5e89f
VZ
1762 case "$host" in
1763 *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
1764 # these systems don't actually have a c library (as such)!
1765 ;;
1766 *)
1767 # Add libc to deplibs on all other systems.
1768 deplibs="$deplibs -lc"
1769 ;;
1770 esac
352c26ff
VZ
1771 fi
1772
1773 # Create the output directory, or remove our outputs if we need to.
1774 if test -d $output_objdir; then
a9b5e89f 1775 $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
352c26ff
VZ
1776 $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
1777 else
a9b5e89f
VZ
1778 $show "$mkdir $output_objdir"
1779 $run $mkdir $output_objdir
1780 status=$?
1781 if test $status -ne 0 && test ! -d $output_objdir; then
1782 exit $status
1783 fi
352c26ff
VZ
1784 fi
1785
1786 # Now set the variables for building old libraries.
1787 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
1788 oldlibs="$oldlibs $output_objdir/$libname.$libext"
1789
1790 # Transform .lo files to .o files.
a9b5e89f 1791 oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
352c26ff
VZ
1792 fi
1793
1794 if test "$build_libtool_libs" = yes; then
a9b5e89f
VZ
1795 # Transform deplibs into only deplibs that can be linked in shared.
1796 name_save=$name
1797 libname_save=$libname
1798 release_save=$release
1799 versuffix_save=$versuffix
1800 major_save=$major
1801 # I'm not sure if I'm treating the release correctly. I think
1802 # release should show up in the -l (ie -lgmp5) so we don't want to
1803 # add it in twice. Is that correct?
1804 release=""
1805 versuffix=""
1806 major=""
1807 newdeplibs=
1808 droppeddeps=no
1809 case "$deplibs_check_method" in
1810 pass_all)
1811 # Don't check for shared/static. Everything works.
1812 # This might be a little naive. We might want to check
1813 # whether the library exists or not. But this is on
1814 # osf3 & osf4 and I'm not really sure... Just
1815 # implementing what was already the behaviour.
1816 newdeplibs=$deplibs
1817 ;;
1818 test_compile)
1819 # This code stresses the "libraries are programs" paradigm to its
1820 # limits. Maybe even breaks it. We compile a program, linking it
1821 # against the deplibs as a proxy for the library. Then we can check
1822 # whether they linked in statically or dynamically with ldd.
1823 $rm conftest.c
1824 cat > conftest.c <<EOF
1825 int main() { return 0; }
352c26ff 1826EOF
a9b5e89f
VZ
1827 $rm conftest
1828 $C_compiler -o conftest conftest.c $deplibs
1829 if test $? -eq 0 ; then
1830 ldd_output=`ldd conftest`
1831 for i in $deplibs; do
1832 name="`expr $i : '-l\(.*\)'`"
1833 # If $name is empty we are operating on a -L argument.
1834 if test "$name" != "" ; then
1835 libname=`eval \\$echo \"$libname_spec\"`
1836 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1837 set dummy $deplib_matches
1838 deplib_match=$2
1839 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1840 newdeplibs="$newdeplibs $i"
1841 else
1842 droppeddeps=yes
1843 echo
1844 echo "*** Warning: This library needs some functionality provided by $i."
1845 echo "*** I have the capability to make that library automatically link in when"
1846 echo "*** you link to this library. But I can only do this if you have a"
1847 echo "*** shared version of the library, which you do not appear to have."
1848 fi
1849 else
1850 newdeplibs="$newdeplibs $i"
1851 fi
1852 done
1853 else
1854 # Error occured in the first compile. Let's try to salvage the situation:
1855 # Compile a seperate program for each library.
1856 for i in $deplibs; do
1857 name="`expr $i : '-l\(.*\)'`"
1858 # If $name is empty we are operating on a -L argument.
1859 if test "$name" != "" ; then
1860 $rm conftest
1861 $C_compiler -o conftest conftest.c $i
1862 # Did it work?
1863 if test $? -eq 0 ; then
1864 ldd_output=`ldd conftest`
1865 libname=`eval \\$echo \"$libname_spec\"`
1866 deplib_matches=`eval \\$echo \"$library_names_spec\"`
1867 set dummy $deplib_matches
1868 deplib_match=$2
1869 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
1870 newdeplibs="$newdeplibs $i"
1871 else
1872 droppeddeps=yes
1873 echo
1874 echo "*** Warning: This library needs some functionality provided by $i."
1875 echo "*** I have the capability to make that library automatically link in when"
1876 echo "*** you link to this library. But I can only do this if you have a"
1877 echo "*** shared version of the library, which you do not appear to have."
1878 fi
1879 else
1880 droppeddeps=yes
1881 echo
1882 echo "*** Warning! Library $i is needed by this library but I was not able to"
1883 echo "*** make it link in! You will probably need to install it or some"
1884 echo "*** library that it depends on before this library will be fully"
1885 echo "*** functional. Installing it before continuing would be even better."
1886 fi
1887 else
1888 newdeplibs="$newdeplibs $i"
1889 fi
1890 done
1891 fi
1892 ;;
1893 file_magic*)
1894 set dummy $deplibs_check_method
1895 file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
1896 for a_deplib in $deplibs; do
1897 name="`expr $a_deplib : '-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 for i in $lib_search_path; do
1902 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
1903 for potent_lib in $potential_libs; do
1904 # Follow soft links.
1905 if ls -lLd "$potlib" 2>/dev/null \
1906 | grep " -> " >/dev/null; then
1907 continue
1908 fi
1909 # The statement above tries to avoid entering an
1910 # endless loop below, in case of cyclic links.
1911 # We might still enter an endless loop, since a link
1912 # loop can be closed while we follow links,
1913 # but so what?
1914 potlib="$potent_lib"
1915 while test -h "$potlib" 2>/dev/null; do
1916 potliblink=`ls -ld $potlib | sed 's/.* -> //'`
1917 case "$potliblink" in
1918 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
1919 *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
1920 esac
1921 done
1922 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
1923 | sed 10q \
1924 | egrep "$file_magic_regex" > /dev/null; then
1925 newdeplibs="$newdeplibs $a_deplib"
1926 a_deplib=""
1927 break 2
1928 fi
1929 done
1930 done
1931 if test -n "$a_deplib" ; then
1932 droppeddeps=yes
1933 echo
1934 echo "*** Warning: This library needs some functionality provided by $a_deplib."
1935 echo "*** I have the capability to make that library automatically link in when"
1936 echo "*** you link to this library. But I can only do this if you have a"
1937 echo "*** shared version of the library, which you do not appear to have."
1938 fi
1939 else
1940 # Add a -L argument.
1941 newdeplibs="$newdeplibs $a_deplib"
1942 fi
1943 done # Gone through all deplibs.
1944 ;;
1945 none | unknown | *)
1946 newdeplibs=""
1947 if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
1948 -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
1949 grep . >/dev/null; then
1950 echo
1951 if test "X$deplibs_check_method" = "Xnone"; then
1952 echo "*** Warning: inter-library dependencies are not supported in this platform."
1953 else
1954 echo "*** Warning: inter-library dependencies are not known to be supported."
1955 fi
1956 echo "*** All declared inter-library dependencies are being dropped."
1957 droppeddeps=yes
1958 fi
1959 ;;
1960 esac
1961 versuffix=$versuffix_save
1962 major=$major_save
1963 release=$release_save
1964 libname=$libname_save
1965 name=$name_save
1966
1967 if test "$droppeddeps" = yes; then
1968 if test "$module" = yes; then
1969 echo
1970 echo "*** Warning: libtool could not satisfy all declared inter-library"
1971 echo "*** dependencies of module $libname. Therefore, libtool will create"
1972 echo "*** a static module, that should work as long as the dlopening"
1973 echo "*** application is linked with the -dlopen flag."
1974 if test -z "$global_symbol_pipe"; then
1975 echo
1976 echo "*** However, this would only work if libtool was able to extract symbol"
1977 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
1978 echo "*** not find such a program. So, this module is probably useless."
1979 echo "*** \`nm' from GNU binutils and a full rebuild may help."
1980 fi
1981 if test "$build_old_libs" = no; then
1982 oldlibs="$output_objdir/$libname.$libext"
1983 build_libtool_libs=module
1984 build_old_libs=yes
1985 else
1986 build_libtool_libs=no
1987 fi
1988 else
1989 echo "*** The inter-library dependencies that have been dropped here will be"
1990 echo "*** automatically added whenever a program is linked with this library"
1991 echo "*** or is declared to -dlopen it."
1992 fi
1993 fi
1994 # Done checking deplibs!
1995 deplibs=$newdeplibs
1996 fi
1997
1998 # All the library-specific variables (install_libdir is set above).
1999 library_names=
2000 old_library=
2001 dlname=
2002
2003 # Test again, we may have decided not to build it any more
2004 if test "$build_libtool_libs" = yes; then
352c26ff
VZ
2005 # Get the real and link names of the library.
2006 eval library_names=\"$library_names_spec\"
2007 set dummy $library_names
2008 realname="$2"
2009 shift; shift
2010
2011 if test -n "$soname_spec"; then
2012 eval soname=\"$soname_spec\"
2013 else
2014 soname="$realname"
2015 fi
2016
2017 lib="$output_objdir/$realname"
2018 for link
2019 do
2020 linknames="$linknames $link"
2021 done
2022
a9b5e89f
VZ
2023 # Ensure that we have .o objects for linkers which dislike .lo
2024 # (e.g. aix) incase we are running --disable-static
2025 for obj in $libobjs; do
2026 oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
2027 if test ! -f $oldobj; then
2028 $show "${LN_S} $obj $oldobj"
2029 $run ${LN_S} $obj $oldobj || exit $?
2030 fi
2031 done
2032
2033 # Use standard objects if they are pic
2034 test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
352c26ff
VZ
2035
2036 if test -n "$whole_archive_flag_spec"; then
2037 if test -n "$convenience"; then
2038 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
2039 fi
2040 else
a9b5e89f
VZ
2041 gentop="$output_objdir/${outputname}x"
2042 $show "${rm}r $gentop"
2043 $run ${rm}r "$gentop"
2044 $show "mkdir $gentop"
2045 $run mkdir "$gentop"
2046 status=$?
2047 if test $status -ne 0 && test ! -d "$gentop"; then
2048 exit $status
2049 fi
2050 generated="$generated $gentop"
2051
352c26ff
VZ
2052 for xlib in $convenience; do
2053 # Extract the objects.
a9b5e89f
VZ
2054 case "$xlib" in
2055 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2056 *) xabs=`pwd`"/$xlib" ;;
2057 esac
2058 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2059 xdir="$gentop/$xlib"
352c26ff
VZ
2060
2061 $show "${rm}r $xdir"
2062 $run ${rm}r "$xdir"
2063 $show "mkdir $xdir"
2064 $run mkdir "$xdir"
2065 status=$?
2066 if test $status -ne 0 && test ! -d "$xdir"; then
2067 exit $status
2068 fi
a9b5e89f
VZ
2069 $show "(cd $xdir && $AR x $xabs)"
2070 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
352c26ff 2071
a9b5e89f 2072 libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
352c26ff
VZ
2073 done
2074 fi
2075
a9b5e89f
VZ
2076 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
2077 eval flag=\"$thread_safe_flag_spec\"
2078 linkopts="$linkopts $flag"
2079 fi
2080
2081 # Prepare the list of exported symbols
2082 if test -z "$export_symbols"; then
2083 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
2084 $show "generating symbol list for \`$libname.la'"
2085 export_symbols="$output_objdir/$libname.exp"
2086 $run $rm $export_symbols
2087 eval cmds=\"$export_symbols_cmds\"
2088 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2089 for cmd in $cmds; do
2090 IFS="$save_ifs"
2091 $show "$cmd"
2092 $run eval "$cmd" || exit $?
2093 done
2094 IFS="$save_ifs"
2095 if test -n "$export_symbols_regex"; then
2096 $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
2097 $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
2098 $show "$mv \"${export_symbols}T\" \"$export_symbols\""
2099 $run eval '$mv "${export_symbols}T" "$export_symbols"'
2100 fi
2101 fi
2102 fi
2103
2104 if test -n "$export_symbols" && test -n "$include_expsyms"; then
2105 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
2106 fi
2107
352c26ff 2108 # Do each of the archive commands.
a9b5e89f
VZ
2109 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
2110 eval cmds=\"$archive_expsym_cmds\"
352c26ff
VZ
2111 else
2112 eval cmds=\"$archive_cmds\"
2113 fi
2114 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2115 for cmd in $cmds; do
2116 IFS="$save_ifs"
2117 $show "$cmd"
2118 $run eval "$cmd" || exit $?
2119 done
2120 IFS="$save_ifs"
2121
2122 # Create links to the real library.
2123 for linkname in $linknames; do
2124 if test "$realname" != "$linkname"; then
a9b5e89f
VZ
2125 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
2126 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
352c26ff
VZ
2127 fi
2128 done
2129
2130 # If -module or -export-dynamic was specified, set the dlname.
2131 if test "$module" = yes || test "$export_dynamic" = yes; then
2132 # On all known operating systems, these are identical.
2133 dlname="$soname"
2134 fi
2135 fi
2136 ;;
2137
2138 *.lo | *.o | *.obj)
2139 if test -n "$link_against_libtool_libs"; then
a9b5e89f
VZ
2140 $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
2141 exit 1
352c26ff
VZ
2142 fi
2143
2144 if test -n "$deplibs"; then
a9b5e89f 2145 $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
352c26ff
VZ
2146 fi
2147
a9b5e89f
VZ
2148 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
2149 $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
352c26ff
VZ
2150 fi
2151
2152 if test -n "$rpath"; then
a9b5e89f
VZ
2153 $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
2154 fi
2155
2156 if test -n "$xrpath"; then
2157 $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
352c26ff
VZ
2158 fi
2159
2160 if test -n "$vinfo"; then
a9b5e89f 2161 $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
352c26ff
VZ
2162 fi
2163
2164 if test -n "$release"; then
a9b5e89f 2165 $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
352c26ff
VZ
2166 fi
2167
2168 case "$output" in
2169 *.lo)
a9b5e89f
VZ
2170 if test -n "$objs"; then
2171 $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
2172 exit 1
2173 fi
2174 libobj="$output"
2175 obj=`$echo "X$output" | $Xsed -e "$lo2o"`
2176 ;;
352c26ff 2177 *)
a9b5e89f
VZ
2178 libobj=
2179 obj="$output"
2180 ;;
352c26ff
VZ
2181 esac
2182
2183 # Delete the old objects.
2184 $run $rm $obj $libobj
2185
2186 # Create the old-style object.
a9b5e89f 2187 reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
352c26ff
VZ
2188
2189 output="$obj"
2190 eval cmds=\"$reload_cmds\"
2191 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2192 for cmd in $cmds; do
a9b5e89f
VZ
2193 IFS="$save_ifs"
2194 $show "$cmd"
2195 $run eval "$cmd" || exit $?
352c26ff
VZ
2196 done
2197 IFS="$save_ifs"
2198
2199 # Exit if we aren't doing a library object file.
2200 test -z "$libobj" && exit 0
2201
2202 if test "$build_libtool_libs" != yes; then
a9b5e89f
VZ
2203 # Create an invalid libtool object if no PIC, so that we don't
2204 # accidentally link it into a program.
2205 $show "echo timestamp > $libobj"
2206 $run eval "echo timestamp > $libobj" || exit $?
2207 exit 0
352c26ff
VZ
2208 fi
2209
2210 if test -n "$pic_flag"; then
a9b5e89f
VZ
2211 # Only do commands if we really have different PIC objects.
2212 reload_objs="$libobjs"
2213 output="$libobj"
2214 eval cmds=\"$reload_cmds\"
2215 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2216 for cmd in $cmds; do
2217 IFS="$save_ifs"
2218 $show "$cmd"
2219 $run eval "$cmd" || exit $?
2220 done
2221 IFS="$save_ifs"
352c26ff 2222 else
a9b5e89f
VZ
2223 # Just create a symlink.
2224 $show $rm $libobj
2225 $run $rm $libobj
2226 $show "$LN_S $obj $libobj"
2227 $run $LN_S $obj $libobj || exit $?
352c26ff
VZ
2228 fi
2229
2230 exit 0
2231 ;;
2232
2233 # Anything else should be a program.
2234 *)
2235 if test -n "$vinfo"; then
a9b5e89f 2236 $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
352c26ff
VZ
2237 fi
2238
2239 if test -n "$release"; then
a9b5e89f 2240 $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
352c26ff
VZ
2241 fi
2242
a9b5e89f
VZ
2243 if test "$preload" = yes; then
2244 if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
2245 test "$dlopen_self_static" = unknown; then
2246 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
2247 fi
2248 fi
2249
2250 if test -n "$rpath$xrpath"; then
352c26ff 2251 # If the user specified any rpath flags, then add them.
a9b5e89f
VZ
2252 for libdir in $rpath $xrpath; do
2253 # This is the magic to use -rpath.
2254 case "$compile_rpath " in
2255 *" $libdir "*) ;;
2256 *) compile_rpath="$compile_rpath $libdir" ;;
2257 esac
2258 case "$finalize_rpath " in
2259 *" $libdir "*) ;;
2260 *) finalize_rpath="$finalize_rpath $libdir" ;;
2261 esac
352c26ff
VZ
2262 done
2263 fi
2264
a9b5e89f
VZ
2265 # Now hardcode the library paths
2266 rpath=
2267 hardcode_libdirs=
2268 for libdir in $compile_rpath $finalize_rpath; do
2269 if test -n "$hardcode_libdir_flag_spec"; then
2270 if test -n "$hardcode_libdir_separator"; then
2271 if test -z "$hardcode_libdirs"; then
2272 hardcode_libdirs="$libdir"
2273 else
2274 # Just accumulate the unique libdirs.
2275 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2276 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2277 ;;
2278 *)
2279 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2280 ;;
2281 esac
2282 fi
2283 else
2284 eval flag=\"$hardcode_libdir_flag_spec\"
2285 rpath="$rpath $flag"
2286 fi
2287 elif test -n "$runpath_var"; then
2288 case "$perm_rpath " in
2289 *" $libdir "*) ;;
2290 *) perm_rpath="$perm_rpath $libdir" ;;
2291 esac
2292 fi
2293 done
2294 # Substitute the hardcoded libdirs into the rpath.
2295 if test -n "$hardcode_libdir_separator" &&
2296 test -n "$hardcode_libdirs"; then
2297 libdir="$hardcode_libdirs"
2298 eval rpath=\" $hardcode_libdir_flag_spec\"
2299 fi
2300 compile_rpath="$rpath"
2301
2302 rpath=
2303 hardcode_libdirs=
2304 for libdir in $finalize_rpath; do
2305 if test -n "$hardcode_libdir_flag_spec"; then
2306 if test -n "$hardcode_libdir_separator"; then
2307 if test -z "$hardcode_libdirs"; then
2308 hardcode_libdirs="$libdir"
2309 else
2310 # Just accumulate the unique libdirs.
2311 case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
2312 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
2313 ;;
2314 *)
2315 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
2316 ;;
2317 esac
2318 fi
2319 else
2320 eval flag=\"$hardcode_libdir_flag_spec\"
2321 rpath="$rpath $flag"
2322 fi
2323 elif test -n "$runpath_var"; then
2324 case "$finalize_perm_rpath " in
2325 *" $libdir "*) ;;
2326 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
2327 esac
2328 fi
2329 done
2330 # Substitute the hardcoded libdirs into the rpath.
2331 if test -n "$hardcode_libdir_separator" &&
2332 test -n "$hardcode_libdirs"; then
2333 libdir="$hardcode_libdirs"
2334 eval rpath=\" $hardcode_libdir_flag_spec\"
352c26ff 2335 fi
a9b5e89f 2336 finalize_rpath="$rpath"
352c26ff
VZ
2337
2338 output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2339 if test "X$output_objdir" = "X$output"; then
a9b5e89f 2340 output_objdir="$objdir"
352c26ff 2341 else
a9b5e89f
VZ
2342 output_objdir="$output_objdir/$objdir"
2343 fi
2344
2345 # Create the binary in the object directory, then wrap it.
2346 if test ! -d $output_objdir; then
2347 $show "$mkdir $output_objdir"
2348 $run $mkdir $output_objdir
2349 status=$?
2350 if test $status -ne 0 && test ! -d $output_objdir; then
2351 exit $status
2352 fi
352c26ff
VZ
2353 fi
2354
2355 if test -n "$libobjs" && test "$build_old_libs" = yes; then
a9b5e89f
VZ
2356 # Transform all the library objects into standard objects.
2357 compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2358 finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
352c26ff
VZ
2359 fi
2360
a9b5e89f
VZ
2361 dlsyms=
2362 if test -n "$dlfiles$dlprefiles" || test "$dlself" = yes; then
2363 if test -n "$NM" && test -n "$global_symbol_pipe"; then
2364 dlsyms="${outputname}S.c"
2365 else
2366 $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
2367 fi
352c26ff
VZ
2368 fi
2369
2370 if test -n "$dlsyms"; then
a9b5e89f
VZ
2371 case "$dlsyms" in
2372 "") ;;
2373 *.c)
2374 # Discover the nlist of each of the dlfiles.
2375 nlist="$output_objdir/${outputname}.nm"
2376
2377 $show "$rm $nlist ${nlist}S ${nlist}T"
2378 $run $rm "$nlist" "${nlist}S" "${nlist}T"
352c26ff 2379
a9b5e89f
VZ
2380 # Parse the name list into a source file.
2381 $show "creating $output_objdir/$dlsyms"
352c26ff 2382
a9b5e89f 2383 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
352c26ff 2384/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
a9b5e89f 2385/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
352c26ff
VZ
2386
2387#ifdef __cplusplus
2388extern \"C\" {
2389#endif
2390
2391/* Prevent the only kind of declaration conflicts we can make. */
a9b5e89f 2392#define lt_preloaded_symbols some_other_symbol
352c26ff
VZ
2393
2394/* External symbol declarations for the compiler. */\
2395"
2396
a9b5e89f
VZ
2397 if test "$dlself" = yes; then
2398 $show "generating symbol list for \`$output'"
352c26ff 2399
a9b5e89f
VZ
2400 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
2401
2402 # Add our own program objects to the symbol list.
2403 progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2404 for arg in $progfiles; do
2405 $show "extracting global C symbols from \`$arg'"
2406 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
2407 done
2408
2409 if test -n "$exclude_expsyms"; then
2410 $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
2411 $run eval '$mv "$nlist"T "$nlist"'
2412 fi
2413
2414 if test -n "$export_symbols_regex"; then
2415 $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
2416 $run eval '$mv "$nlist"T "$nlist"'
2417 fi
2418
2419 # Prepare the list of exported symbols
2420 if test -z "$export_symbols"; then
2421 export_symbols="$output_objdir/$output.exp"
2422 $run $rm $export_symbols
2423 $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
2424 else
2425 $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
2426 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
2427 $run eval 'mv "$nlist"T "$nlist"'
2428 fi
2429 fi
2430
2431 for arg in $dlprefiles; do
352c26ff 2432 $show "extracting global C symbols from \`$arg'"
a9b5e89f
VZ
2433 name=`echo "$arg" | sed -e 's%^.*/%%'`
2434 $run eval 'echo ": $name " >> "$nlist"'
352c26ff 2435 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
a9b5e89f 2436 done
352c26ff 2437
a9b5e89f
VZ
2438 if test -z "$run"; then
2439 # Make sure we have at least an empty file.
352c26ff
VZ
2440 test -f "$nlist" || : > "$nlist"
2441
a9b5e89f
VZ
2442 if test -n "$exclude_expsyms"; then
2443 egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
2444 $mv "$nlist"T "$nlist"
2445 fi
2446
352c26ff 2447 # Try sorting and uniquifying the output.
a9b5e89f
VZ
2448 if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
2449 :
352c26ff 2450 else
a9b5e89f 2451 grep -v "^: " < "$nlist" > "$nlist"S
352c26ff
VZ
2452 fi
2453
a9b5e89f
VZ
2454 if test -f "$nlist"S; then
2455 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
2456 else
352c26ff 2457 echo '/* NONE */' >> "$output_objdir/$dlsyms"
a9b5e89f 2458 fi
352c26ff
VZ
2459
2460 $echo >> "$output_objdir/$dlsyms" "\
2461
a9b5e89f 2462#undef lt_preloaded_symbols
352c26ff
VZ
2463
2464#if defined (__STDC__) && __STDC__
a9b5e89f 2465# define lt_ptr_t void *
352c26ff 2466#else
a9b5e89f
VZ
2467# define lt_ptr_t char *
2468# define const
352c26ff
VZ
2469#endif
2470
2471/* The mapping between symbol names and symbols. */
a9b5e89f
VZ
2472const struct {
2473 const char *name;
2474 lt_ptr_t address;
352c26ff 2475}
a9b5e89f 2476lt_preloaded_symbols[] =
352c26ff
VZ
2477{\
2478"
2479
a9b5e89f
VZ
2480 sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
2481 -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
2482 < "$nlist" >> "$output_objdir/$dlsyms"
352c26ff
VZ
2483
2484 $echo >> "$output_objdir/$dlsyms" "\
a9b5e89f 2485 {0, (lt_ptr_t) 0}
352c26ff
VZ
2486};
2487
a9b5e89f
VZ
2488/* This works around a problem in FreeBSD linker */
2489#ifdef FREEBSD_WORKAROUND
2490static const void *lt_preloaded_setup() {
2491 return lt_preloaded_symbols;
2492}
2493#endif
2494
352c26ff
VZ
2495#ifdef __cplusplus
2496}
2497#endif\
2498"
a9b5e89f
VZ
2499 fi
2500
2501 pic_flag_for_symtable=
2502 case "$host" in
2503 # compiling the symbol table file with pic_flag works around
2504 # a FreeBSD bug that causes programs to crash when -lm is
2505 # linked before any other PIC object. But we must not use
2506 # pic_flag when linking with -static. The problem exists in
2507 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2508 *-*-freebsd2*|*-*-freebsd3.0*)
2509 case "$compile_command " in
2510 *" -static "*) ;;
2511 *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
2512 esac
2513 esac
2514
2515 # Now compile the dynamic symbol file.
2516 $show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
2517 $run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
352c26ff 2518
a9b5e89f
VZ
2519 # Clean up the generated files.
2520 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
2521 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
352c26ff 2522
a9b5e89f
VZ
2523 # Transform the symbol file into the correct name.
2524 compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2525 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
2526 ;;
2527 *)
2528 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
2529 exit 1
352c26ff 2530 ;;
a9b5e89f 2531 esac
352c26ff 2532 else
a9b5e89f
VZ
2533 # We keep going just in case the user didn't refer to
2534 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
2535 # really was required.
352c26ff 2536
a9b5e89f
VZ
2537 # Nullify the symbol file.
2538 compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2539 finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
352c26ff
VZ
2540 fi
2541
2542 if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
a9b5e89f
VZ
2543 # Replace the output file specification.
2544 compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
2545 link_command="$compile_command$compile_rpath"
352c26ff 2546
a9b5e89f
VZ
2547 # We have no uninstalled library dependencies, so finalize right now.
2548 $show "$link_command"
2549 $run eval "$link_command"
352c26ff 2550 status=$?
a9b5e89f
VZ
2551
2552 # Delete the generated files.
2553 if test -n "$dlsyms"; then
2554 $show "$rm $output_objdir/${outputname}S.${objext}"
2555 $run $rm "$output_objdir/${outputname}S.${objext}"
352c26ff 2556 fi
a9b5e89f
VZ
2557
2558 exit $status
352c26ff
VZ
2559 fi
2560
2561 if test -n "$shlibpath_var"; then
a9b5e89f
VZ
2562 # We should set the shlibpath_var
2563 rpath=
2564 for dir in $temp_rpath; do
2565 case "$dir" in
2566 [\\/]* | [A-Za-z]:[\\/]*)
2567 # Absolute path.
2568 rpath="$rpath$dir:"
2569 ;;
2570 *)
2571 # Relative path: add a thisdir entry.
2572 rpath="$rpath\$thisdir/$dir:"
2573 ;;
2574 esac
2575 done
2576 temp_rpath="$rpath"
2577 fi
2578
2579 if test -n "$compile_shlibpath$finalize_shlibpath"; then
2580 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
352c26ff
VZ
2581 fi
2582 if test -n "$finalize_shlibpath"; then
a9b5e89f 2583 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
352c26ff
VZ
2584 fi
2585
a9b5e89f
VZ
2586 compile_var=
2587 finalize_var=
2588 if test -n "$runpath_var"; then
2589 if test -n "$perm_rpath"; then
2590 # We should set the runpath_var.
2591 rpath=
2592 for dir in $perm_rpath; do
2593 rpath="$rpath$dir:"
2594 done
2595 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
2596 fi
2597 if test -n "$finalize_perm_rpath"; then
2598 # We should set the runpath_var.
2599 rpath=
2600 for dir in $finalize_perm_rpath; do
2601 rpath="$rpath$dir:"
2602 done
2603 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
2604 fi
352c26ff
VZ
2605 fi
2606
2607 if test "$hardcode_action" = relink; then
a9b5e89f
VZ
2608 # Fast installation is not supported
2609 link_command="$compile_var$compile_command$compile_rpath"
2610 relink_command="$finalize_var$finalize_command$finalize_rpath"
2611
2612 $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
2613 $echo "$modename: \`$output' will be relinked during installation" 1>&2
2614 else
2615 if test "$fast_install" != no; then
2616 link_command="$finalize_var$compile_command$finalize_rpath"
2617 if test "$fast_install" = yes; then
2618 relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
2619 else
2620 # fast_install is set to needless
2621 relink_command=
2622 fi
2623 else
2624 link_command="$compile_var$compile_command$compile_rpath"
2625 relink_command="$finalize_var$finalize_command$finalize_rpath"
2626 fi
352c26ff
VZ
2627 fi
2628
a9b5e89f
VZ
2629 # Replace the output file specification.
2630 link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
2631
2632 # Delete the old output files.
2633 $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
2634
2635 $show "$link_command"
2636 $run eval "$link_command" || exit $?
352c26ff
VZ
2637
2638 # Now create the wrapper script.
2639 $show "creating $output"
2640
a9b5e89f
VZ
2641 # Quote the relink command for shipping.
2642 if test -n "$relink_command"; then
2643 relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
2644 fi
352c26ff
VZ
2645
2646 # Quote $echo for shipping.
2647 if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
2648 case "$0" in
a9b5e89f 2649 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
352c26ff
VZ
2650 *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
2651 esac
2652 qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
2653 else
a9b5e89f 2654 qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
352c26ff
VZ
2655 fi
2656
2657 # Only actually do things if our run command is non-null.
2658 if test -z "$run"; then
a9b5e89f
VZ
2659 # win32 will think the script is a binary if it has
2660 # a .exe suffix, so we strip it off here.
2661 case $output in
2662 *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
2663 esac
2664 $rm $output
2665 trap "$rm $output; exit 1" 1 2 15
352c26ff 2666
a9b5e89f 2667 $echo > $output "\
352c26ff
VZ
2668#! $SHELL
2669
2670# $output - temporary wrapper script for $objdir/$outputname
a9b5e89f 2671# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
352c26ff
VZ
2672#
2673# The $output program cannot be directly executed until all the libtool
2674# libraries that it depends on are installed.
2675#
2676# This wrapper script should never be moved out of the build directory.
2677# If it is, it will not operate correctly.
2678
2679# Sed substitution that helps us do robust quoting. It backslashifies
2680# metacharacters that are still active within double-quoted strings.
a9b5e89f 2681Xsed='sed -e 1s/^X//'
352c26ff
VZ
2682sed_quote_subst='$sed_quote_subst'
2683
2684# The HP-UX ksh and POSIX shell print the target directory to stdout
2685# if CDPATH is set.
2686if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
2687
a9b5e89f
VZ
2688relink_command=\"$relink_command\"
2689
352c26ff
VZ
2690# This environment variable determines our operation mode.
2691if test \"\$libtool_install_magic\" = \"$magic\"; then
a9b5e89f 2692 # install mode needs the following variable:
352c26ff 2693 link_against_libtool_libs='$link_against_libtool_libs'
352c26ff
VZ
2694else
2695 # When we are sourced in execute mode, \$file and \$echo are already set.
2696 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2697 echo=\"$qecho\"
2698 file=\"\$0\"
2699 # Make sure echo works.
2700 if test \"X\$1\" = X--no-reexec; then
2701 # Discard the --no-reexec flag, and continue.
2702 shift
2703 elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
2704 # Yippee, \$echo works!
2705 :
2706 else
2707 # Restart under the correct shell, and then maybe \$echo will work.
2708 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2709 fi
2710 fi\
2711"
a9b5e89f 2712 $echo >> $output "\
352c26ff
VZ
2713
2714 # Find the directory that this script lives in.
2715 thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2716 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2717
2718 # Follow symbolic links until we get to the real thisdir.
2719 file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
2720 while test -n \"\$file\"; do
2721 destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2722
2723 # If there was a directory component, then change thisdir.
2724 if test \"x\$destdir\" != \"x\$file\"; then
2725 case \"\$destdir\" in
a9b5e89f 2726 [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
352c26ff
VZ
2727 *) thisdir=\"\$thisdir/\$destdir\" ;;
2728 esac
2729 fi
2730
2731 file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2732 file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
2733 done
2734
2735 # Try to get the absolute directory name.
2736 absdir=\`cd \"\$thisdir\" && pwd\`
2737 test -n \"\$absdir\" && thisdir=\"\$absdir\"
a9b5e89f 2738"
352c26ff 2739
a9b5e89f
VZ
2740 if test "$fast_install" = yes; then
2741 echo >> $output "\
2742 program=lt-'$outputname'
352c26ff 2743 progdir=\"\$thisdir/$objdir\"
a9b5e89f
VZ
2744
2745 if test ! -f \"\$progdir/\$program\" || \\
2746 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
2747 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2748
2749 file=\"\$\$-\$program\"
2750
2751 if test ! -d \"\$progdir\"; then
2752 $mkdir \"\$progdir\"
2753 else
2754 $rm \"\$progdir/\$file\"
2755 fi"
2756
2757 echo >> $output "\
2758
2759 # relink executable if necessary
2760 if test -n \"\$relink_command\"; then
2761 if (cd \"\$thisdir\" && eval \$relink_command); then :
2762 else
2763 $rm \"\$progdir/\$file\"
2764 exit 1
2765 fi
2766 fi
2767
2768 $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2769 { $rm \"\$progdir/\$program\";
2770 $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2771 $rm \"\$progdir/\$file\"
2772 fi"
2773 else
2774 echo >> $output "\
352c26ff 2775 program='$outputname'
a9b5e89f
VZ
2776 progdir=\"\$thisdir/$objdir\"
2777"
2778 fi
2779
2780 echo >> $output "\
352c26ff
VZ
2781
2782 if test -f \"\$progdir/\$program\"; then"
2783
a9b5e89f
VZ
2784 # Export our shlibpath_var if we have one.
2785 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2786 $echo >> $output "\
352c26ff
VZ
2787 # Add our own library path to $shlibpath_var
2788 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2789
2790 # Some systems cannot cope with colon-terminated $shlibpath_var
a9b5e89f
VZ
2791 # The second colon is a workaround for a bug in BeOS R4 sed
2792 $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
352c26ff
VZ
2793
2794 export $shlibpath_var
2795"
a9b5e89f
VZ
2796 fi
2797
2798 # fixup the dll searchpath if we need to.
2799 if test -n "$dllsearchpath"; then
2800 $echo >> $output "\
2801 # Add the dll search path components to the executable PATH
2802 PATH=$dllsearchpath:\$PATH
2803"
2804 fi
352c26ff 2805
a9b5e89f 2806 $echo >> $output "\
352c26ff
VZ
2807 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2808 # Run the actual program with our arguments.
a9b5e89f
VZ
2809"
2810 case $host in
2811 *-*-cygwin* | *-*-mingw | *-*-os2*)
2812 # win32 systems need to use the prog path for dll
2813 # lookup to work
2814 $echo >> $output "\
2815 exec \$progdir\\\\\$program \${1+\"\$@\"}
2816"
2817 ;;
2818 *)
2819 $echo >> $output "\
352c26ff
VZ
2820 # Export the path to the program.
2821 PATH=\"\$progdir:\$PATH\"
2822 export PATH
2823
2824 exec \$program \${1+\"\$@\"}
a9b5e89f
VZ
2825"
2826 ;;
2827 esac
2828 $echo >> $output "\
352c26ff
VZ
2829 \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
2830 exit 1
2831 fi
2832 else
2833 # The program doesn't exist.
2834 \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
2835 \$echo \"This script is just a wrapper for \$program.\" 1>&2
2836 echo \"See the $PACKAGE documentation for more information.\" 1>&2
2837 exit 1
2838 fi
2839fi\
2840"
a9b5e89f 2841 chmod +x $output
352c26ff
VZ
2842 fi
2843 exit 0
2844 ;;
2845 esac
2846
2847 # See if we need to build an old-fashioned archive.
2848 for oldlib in $oldlibs; do
2849
2850 if test "$build_libtool_libs" = convenience; then
a9b5e89f 2851 oldobjs="$libobjs_save"
352c26ff
VZ
2852 addlibs="$convenience"
2853 build_libtool_libs=no
2854 else
a9b5e89f
VZ
2855 if test "$build_libtool_libs" = module; then
2856 oldobjs="$libobjs_save"
2857 build_libtool_libs=no
2858 else
2859 oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
2860 fi
352c26ff
VZ
2861 addlibs="$old_convenience"
2862 fi
2863
a9b5e89f
VZ
2864 if test -n "$addlibs"; then
2865 gentop="$output_objdir/${outputname}x"
2866 $show "${rm}r $gentop"
2867 $run ${rm}r "$gentop"
2868 $show "mkdir $gentop"
2869 $run mkdir "$gentop"
352c26ff 2870 status=$?
a9b5e89f 2871 if test $status -ne 0 && test ! -d "$gentop"; then
352c26ff
VZ
2872 exit $status
2873 fi
a9b5e89f
VZ
2874 generated="$generated $gentop"
2875
2876 # Add in members from convenience archives.
2877 for xlib in $addlibs; do
2878 # Extract the objects.
2879 case "$xlib" in
2880 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
2881 *) xabs=`pwd`"/$xlib" ;;
2882 esac
2883 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
2884 xdir="$gentop/$xlib"
2885
2886 $show "${rm}r $xdir"
2887 $run ${rm}r "$xdir"
2888 $show "mkdir $xdir"
2889 $run mkdir "$xdir"
2890 status=$?
2891 if test $status -ne 0 && test ! -d "$xdir"; then
2892 exit $status
2893 fi
2894 $show "(cd $xdir && $AR x $xabs)"
2895 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
352c26ff 2896
a9b5e89f
VZ
2897 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
2898 done
2899 fi
352c26ff
VZ
2900
2901 # Do each command in the archive commands.
2902 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
2903 eval cmds=\"$old_archive_from_new_cmds\"
2904 else
a9b5e89f
VZ
2905 # Ensure that we have .o objects in place incase we decided
2906 # not to build a shared library, and have fallen back to building
2907 # static libs even though --disable-static was passed!
2908 for oldobj in $oldobjs; do
2909 if test ! -f $oldobj; then
2910 obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
2911 $show "${LN_S} $obj $oldobj"
2912 $run ${LN_S} $obj $oldobj || exit $?
2913 fi
2914 done
2915
352c26ff
VZ
2916 eval cmds=\"$old_archive_cmds\"
2917 fi
2918 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
2919 for cmd in $cmds; do
a9b5e89f
VZ
2920 IFS="$save_ifs"
2921 $show "$cmd"
2922 $run eval "$cmd" || exit $?
352c26ff
VZ
2923 done
2924 IFS="$save_ifs"
2925 done
2926
2927 if test -n "$generated"; then
2928 $show "${rm}r$generated"
2929 $run ${rm}r$generated
2930 fi
2931
2932 # Now create the libtool archive.
2933 case "$output" in
2934 *.la)
2935 old_library=
2936 test "$build_old_libs" = yes && old_library="$libname.$libext"
2937 $show "creating $output"
2938
a9b5e89f
VZ
2939 if test -n "$xrpath"; then
2940 temp_xrpath=
2941 for libdir in $xrpath; do
2942 temp_xrpath="$temp_xrpath -R$libdir"
2943 done
2944 dependency_libs="$temp_xrpath $dependency_libs"
2945 fi
2946
352c26ff
VZ
2947 # Only create the output if not a dry run.
2948 if test -z "$run"; then
a9b5e89f
VZ
2949 for installed in no yes; do
2950 if test "$installed" = yes; then
2951 if test -z "$install_libdir"; then
2952 break
2953 fi
2954 output="$output_objdir/$outputname"i
2955 fi
2956 $rm $output
2957 $echo > $output "\
2958# $outputname - a libtool library file
2959# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
2960#
2961# Please DO NOT delete this file!
2962# It is necessary for linking the library.
352c26ff
VZ
2963
2964# The name that we can dlopen(3).
2965dlname='$dlname'
2966
2967# Names of this library.
2968library_names='$library_names'
2969
2970# The name of the static archive.
2971old_library='$old_library'
2972
2973# Libraries that this one depends upon.
2974dependency_libs='$dependency_libs'
2975
2976# Version information for $libname.
2977current=$current
2978age=$age
2979revision=$revision
2980
2981# Is this an already installed library?
a9b5e89f 2982installed=$installed
352c26ff
VZ
2983
2984# Directory that this library needs to be installed in:
2985libdir='$install_libdir'\
2986"
a9b5e89f 2987 done
352c26ff
VZ
2988 fi
2989
2990 # Do a symbolic link so that the libtool archive can be found in
2991 # LD_LIBRARY_PATH before the program is installed.
a9b5e89f
VZ
2992 $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
2993 $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
352c26ff
VZ
2994 ;;
2995 esac
2996 exit 0
2997 ;;
2998
2999 # libtool install mode
3000 install)
3001 modename="$modename: install"
3002
3003 # There may be an optional sh(1) argument at the beginning of
3004 # install_prog (especially on Windows NT).
3005 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
3006 # Aesthetically quote it.
3007 arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
3008 case "$arg" in
3009 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3010 arg="\"$arg\""
3011 ;;
3012 esac
3013 install_prog="$arg "
3014 arg="$1"
3015 shift
3016 else
3017 install_prog=
3018 arg="$nonopt"
3019 fi
3020
3021 # The real first argument should be the name of the installation program.
3022 # Aesthetically quote it.
3023 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3024 case "$arg" in
3025 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3026 arg="\"$arg\""
3027 ;;
3028 esac
3029 install_prog="$install_prog$arg"
3030
3031 # We need to accept at least all the BSD install flags.
3032 dest=
3033 files=
3034 opts=
3035 prev=
3036 install_type=
3037 isdir=no
3038 stripme=
3039 for arg
3040 do
3041 if test -n "$dest"; then
a9b5e89f
VZ
3042 files="$files $dest"
3043 dest="$arg"
3044 continue
352c26ff
VZ
3045 fi
3046
3047 case "$arg" in
3048 -d) isdir=yes ;;
3049 -f) prev="-f" ;;
3050 -g) prev="-g" ;;
3051 -m) prev="-m" ;;
3052 -o) prev="-o" ;;
3053 -s)
a9b5e89f
VZ
3054 stripme=" -s"
3055 continue
3056 ;;
352c26ff
VZ
3057 -*) ;;
3058
3059 *)
a9b5e89f
VZ
3060 # If the previous option needed an argument, then skip it.
3061 if test -n "$prev"; then
3062 prev=
3063 else
3064 dest="$arg"
3065 continue
3066 fi
3067 ;;
352c26ff
VZ
3068 esac
3069
3070 # Aesthetically quote the argument.
3071 arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
3072 case "$arg" in
3073 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
3074 arg="\"$arg\""
3075 ;;
3076 esac
3077 install_prog="$install_prog $arg"
3078 done
3079
3080 if test -z "$install_prog"; then
3081 $echo "$modename: you must specify an install program" 1>&2
3082 $echo "$help" 1>&2
3083 exit 1
3084 fi
3085
3086 if test -n "$prev"; then
3087 $echo "$modename: the \`$prev' option requires an argument" 1>&2
3088 $echo "$help" 1>&2
3089 exit 1
3090 fi
3091
3092 if test -z "$files"; then
3093 if test -z "$dest"; then
a9b5e89f 3094 $echo "$modename: no file or destination specified" 1>&2
352c26ff 3095 else
a9b5e89f 3096 $echo "$modename: you must specify a destination" 1>&2
352c26ff
VZ
3097 fi
3098 $echo "$help" 1>&2
3099 exit 1
3100 fi
3101
3102 # Strip any trailing slash from the destination.
3103 dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
3104
3105 # Check to see that the destination is a directory.
3106 test -d "$dest" && isdir=yes
3107 if test "$isdir" = yes; then
3108 destdir="$dest"
3109 destname=
3110 else
3111 destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
3112 test "X$destdir" = "X$dest" && destdir=.
3113 destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
3114
3115 # Not a directory, so check to see that there is only one file specified.
3116 set dummy $files
3117 if test $# -gt 2; then
a9b5e89f
VZ
3118 $echo "$modename: \`$dest' is not a directory" 1>&2
3119 $echo "$help" 1>&2
3120 exit 1
352c26ff
VZ
3121 fi
3122 fi
3123 case "$destdir" in
a9b5e89f 3124 [\\/]* | [A-Za-z]:[\\/]*) ;;
352c26ff
VZ
3125 *)
3126 for file in $files; do
a9b5e89f
VZ
3127 case "$file" in
3128 *.lo) ;;
3129 *)
3130 $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
3131 $echo "$help" 1>&2
3132 exit 1
3133 ;;
3134 esac
352c26ff
VZ
3135 done
3136 ;;
3137 esac
3138
3139 # This variable tells wrapper scripts just to set variables rather
3140 # than running their programs.
3141 libtool_install_magic="$magic"
3142
3143 staticlibs=
3144 future_libdirs=
3145 current_libdirs=
3146 for file in $files; do
3147
3148 # Do each installation.
3149 case "$file" in
3150 *.a | *.lib)
a9b5e89f
VZ
3151 # Do the static libraries later.
3152 staticlibs="$staticlibs $file"
3153 ;;
352c26ff
VZ
3154
3155 *.la)
a9b5e89f
VZ
3156 # Check to see that this really is a libtool archive.
3157 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3158 else
3159 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
3160 $echo "$help" 1>&2
3161 exit 1
3162 fi
3163
3164 library_names=
3165 old_library=
3166 # If there is no directory component, then add one.
3167 case "$file" in
3168 */* | *\\*) . $file ;;
3169 *) . ./$file ;;
3170 esac
3171
3172 # Add the libdir to current_libdirs if it is the destination.
3173 if test "X$destdir" = "X$libdir"; then
3174 case "$current_libdirs " in
3175 *" $libdir "*) ;;
3176 *) current_libdirs="$current_libdirs $libdir" ;;
3177 esac
3178 else
3179 # Note the libdir as a future libdir.
3180 case "$future_libdirs " in
3181 *" $libdir "*) ;;
3182 *) future_libdirs="$future_libdirs $libdir" ;;
3183 esac
3184 fi
3185
3186 dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
3187 test "X$dir" = "X$file/" && dir=
3188 dir="$dir$objdir"
3189
3190 # See the names of the shared library.
3191 set dummy $library_names
3192 if test -n "$2"; then
3193 realname="$2"
3194 shift
3195 shift
3196
3197 # Install the shared library and build the symlinks.
3198 $show "$install_prog $dir/$realname $destdir/$realname"
3199 $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
3200 test "X$dlname" = "X$realname" && dlname=
3201
3202 if test $# -gt 0; then
3203 # Delete the old symlinks, and create new ones.
3204 for linkname
3205 do
3206 test "X$dlname" = "X$linkname" && dlname=
352c26ff
VZ
3207 if test "$linkname" != "$realname"; then
3208 $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3209 $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
3210 fi
a9b5e89f
VZ
3211 done
3212 fi
3213
3214 if test -n "$dlname"; then
3215 # Install the dynamically-loadable library.
3216 $show "$install_prog $dir/$dlname $destdir/$dlname"
3217 $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
3218 fi
3219
3220 # Do each command in the postinstall commands.
3221 lib="$destdir/$realname"
3222 eval cmds=\"$postinstall_cmds\"
3223 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3224 for cmd in $cmds; do
3225 IFS="$save_ifs"
3226 $show "$cmd"
3227 $run eval "$cmd" || exit $?
3228 done
3229 IFS="$save_ifs"
3230 fi
3231
3232 # Install the pseudo-library for information purposes.
3233 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
352c26ff 3234 instname="$dir/$name"i
a9b5e89f
VZ
3235 $show "$install_prog $instname $destdir/$name"
3236 $run eval "$install_prog $instname $destdir/$name" || exit $?
3237
3238 # Maybe install the static library, too.
3239 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3240 ;;
352c26ff
VZ
3241
3242 *.lo)
a9b5e89f
VZ
3243 # Install (i.e. copy) a libtool object.
3244
3245 # Figure out destination file name, if it wasn't already specified.
3246 if test -n "$destname"; then
3247 destfile="$destdir/$destname"
3248 else
3249 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3250 destfile="$destdir/$destfile"
3251 fi
3252
3253 # Deduce the name of the destination old-style object file.
3254 case "$destfile" in
3255 *.lo)
3256 staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
3257 ;;
3258 *.o | *.obj)
3259 staticdest="$destfile"
3260 destfile=
3261 ;;
3262 *)
3263 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
3264 $echo "$help" 1>&2
3265 exit 1
3266 ;;
3267 esac
3268
3269 # Install the libtool object if requested.
3270 if test -n "$destfile"; then
3271 $show "$install_prog $file $destfile"
3272 $run eval "$install_prog $file $destfile" || exit $?
3273 fi
3274
3275 # Install the old object if enabled.
3276 if test "$build_old_libs" = yes; then
3277 # Deduce the name of the old-style object file.
3278 staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
3279
3280 $show "$install_prog $staticobj $staticdest"
3281 $run eval "$install_prog \$staticobj \$staticdest" || exit $?
3282 fi
3283 exit 0
3284 ;;
352c26ff
VZ
3285
3286 *)
a9b5e89f
VZ
3287 # Figure out destination file name, if it wasn't already specified.
3288 if test -n "$destname"; then
3289 destfile="$destdir/$destname"
3290 else
3291 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3292 destfile="$destdir/$destfile"
3293 fi
3294
3295 # Do a test to see if this is really a libtool program.
3296 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3297 link_against_libtool_libs=
3298 relink_command=
3299
3300 # If there is no directory component, then add one.
3301 case "$file" in
3302 */* | *\\*) . $file ;;
3303 *) . ./$file ;;
3304 esac
3305
3306 # Check the variables that should have been set.
3307 if test -z "$link_against_libtool_libs"; then
3308 $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
3309 exit 1
3310 fi
3311
3312 finalize=yes
3313 for lib in $link_against_libtool_libs; do
3314 # Check to see that each library is installed.
3315 libdir=
3316 if test -f "$lib"; then
3317 # If there is no directory component, then add one.
3318 case "$lib" in
3319 */* | *\\*) . $lib ;;
3320 *) . ./$lib ;;
3321 esac
3322 fi
3323 libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
3324 if test -n "$libdir" && test ! -f "$libfile"; then
3325 $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
3326 finalize=no
3327 fi
3328 done
3329
3330 outputname=
3331 if test "$fast_install" = no && test -n "$relink_command"; then
3332 if test "$finalize" = yes && test -z "$run"; then
3333 tmpdir="/tmp"
3334 test -n "$TMPDIR" && tmpdir="$TMPDIR"
3335 tmpdir="$tmpdir/libtool-$$"
3336 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
3337 else
3338 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
3339 continue
3340 fi
3341 outputname="$tmpdir/$file"
3342 # Replace the output file specification.
3343 relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3344
3345 $show "$relink_command"
3346 if $run eval "$relink_command"; then :
3347 else
3348 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
3349 ${rm}r "$tmpdir"
3350 continue
3351 fi
3352 file="$outputname"
3353 else
3354 $echo "$modename: warning: cannot relink \`$file'" 1>&2
3355 fi
3356 else
3357 # Install the binary that we compiled earlier.
352c26ff 3358 file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
a9b5e89f
VZ
3359 fi
3360 fi
352c26ff 3361
a9b5e89f
VZ
3362 $show "$install_prog$stripme $file $destfile"
3363 $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
3364 test -n "$outputname" && ${rm}r "$tmpdir"
3365 ;;
352c26ff
VZ
3366 esac
3367 done
3368
3369 for file in $staticlibs; do
3370 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3371
3372 # Set up the ranlib parameters.
3373 oldlib="$destdir/$name"
3374
3375 $show "$install_prog $file $oldlib"
3376 $run eval "$install_prog \$file \$oldlib" || exit $?
3377
3378 # Do each command in the postinstall commands.
3379 eval cmds=\"$old_postinstall_cmds\"
3380 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3381 for cmd in $cmds; do
a9b5e89f
VZ
3382 IFS="$save_ifs"
3383 $show "$cmd"
3384 $run eval "$cmd" || exit $?
352c26ff
VZ
3385 done
3386 IFS="$save_ifs"
3387 done
3388
3389 if test -n "$future_libdirs"; then
3390 $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
3391 fi
3392
3393 if test -n "$current_libdirs"; then
3394 # Maybe just do a dry run.
3395 test -n "$run" && current_libdirs=" -n$current_libdirs"
3396 exec $SHELL $0 --finish$current_libdirs
3397 exit 1
3398 fi
3399
3400 exit 0
3401 ;;
3402
3403 # libtool finish mode
3404 finish)
3405 modename="$modename: finish"
3406 libdirs="$nonopt"
3407 admincmds=
3408
3409 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
3410 for dir
3411 do
a9b5e89f 3412 libdirs="$libdirs $dir"
352c26ff
VZ
3413 done
3414
3415 for libdir in $libdirs; do
3416 if test -n "$finish_cmds"; then
3417 # Do each command in the finish commands.
3418 eval cmds=\"$finish_cmds\"
a9b5e89f
VZ
3419 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3420 for cmd in $cmds; do
3421 IFS="$save_ifs"
3422 $show "$cmd"
3423 $run eval "$cmd" || admincmds="$admincmds
352c26ff 3424 $cmd"
a9b5e89f
VZ
3425 done
3426 IFS="$save_ifs"
352c26ff
VZ
3427 fi
3428 if test -n "$finish_eval"; then
3429 # Do the single finish_eval.
3430 eval cmds=\"$finish_eval\"
3431 $run eval "$cmds" || admincmds="$admincmds
3432 $cmds"
3433 fi
3434 done
3435 fi
3436
3437 # Exit here if they wanted silent mode.
3438 test "$show" = : && exit 0
3439
3440 echo "----------------------------------------------------------------------"
3441 echo "Libraries have been installed in:"
3442 for libdir in $libdirs; do
3443 echo " $libdir"
3444 done
3445 echo
a9b5e89f
VZ
3446 echo "If you ever happen to want to link against installed libraries"
3447 echo "in a given directory, LIBDIR, you must either use libtool, and"
3448 echo "specify the full pathname of the library, or use \`-LLIBDIR'"
3449 echo "flag during linking and do at least one of the following:"
352c26ff
VZ
3450 if test -n "$shlibpath_var"; then
3451 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
3452 echo " during execution"
3453 fi
3454 if test -n "$runpath_var"; then
3455 echo " - add LIBDIR to the \`$runpath_var' environment variable"
3456 echo " during linking"
3457 fi
3458 if test -n "$hardcode_libdir_flag_spec"; then
3459 libdir=LIBDIR
3460 eval flag=\"$hardcode_libdir_flag_spec\"
3461
3462 echo " - use the \`$flag' linker flag"
3463 fi
3464 if test -n "$admincmds"; then
3465 echo " - have your system administrator run these commands:$admincmds"
3466 fi
3467 if test -f /etc/ld.so.conf; then
3468 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
3469 fi
3470 echo
3471 echo "See any operating system documentation about shared libraries for"
3472 echo "more information, such as the ld(1) and ld.so(8) manual pages."
3473 echo "----------------------------------------------------------------------"
3474 exit 0
3475 ;;
3476
3477 # libtool execute mode
3478 execute)
3479 modename="$modename: execute"
3480
3481 # The first argument is the command name.
3482 cmd="$nonopt"
3483 if test -z "$cmd"; then
3484 $echo "$modename: you must specify a COMMAND" 1>&2
3485 $echo "$help"
3486 exit 1
3487 fi
3488
3489 # Handle -dlopen flags immediately.
3490 for file in $execute_dlfiles; do
3491 if test ! -f "$file"; then
3492 $echo "$modename: \`$file' is not a file" 1>&2
3493 $echo "$help" 1>&2
3494 exit 1
3495 fi
3496
3497 dir=
3498 case "$file" in
3499 *.la)
a9b5e89f
VZ
3500 # Check to see that this really is a libtool archive.
3501 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
3502 else
3503 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
3504 $echo "$help" 1>&2
3505 exit 1
3506 fi
352c26ff
VZ
3507
3508 # Read the libtool library.
3509 dlname=
3510 library_names=
3511
a9b5e89f 3512 # If there is no directory component, then add one.
352c26ff
VZ
3513 case "$file" in
3514 */* | *\\*) . $file ;;
a9b5e89f 3515 *) . ./$file ;;
352c26ff
VZ
3516 esac
3517
3518 # Skip this library if it cannot be dlopened.
3519 if test -z "$dlname"; then
3520 # Warn if it was a shared library.
3521 test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
3522 continue
3523 fi
3524
3525 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3526 test "X$dir" = "X$file" && dir=.
3527
3528 if test -f "$dir/$objdir/$dlname"; then
3529 dir="$dir/$objdir"
3530 else
3531 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
3532 exit 1
3533 fi
3534 ;;
3535
3536 *.lo)
3537 # Just add the directory containing the .lo file.
3538 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3539 test "X$dir" = "X$file" && dir=.
3540 ;;
3541
3542 *)
3543 $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
a9b5e89f 3544 continue
352c26ff
VZ
3545 ;;
3546 esac
3547
3548 # Get the absolute pathname.
3549 absdir=`cd "$dir" && pwd`
3550 test -n "$absdir" && dir="$absdir"
3551
3552 # Now add the directory to shlibpath_var.
3553 if eval "test -z \"\$$shlibpath_var\""; then
3554 eval "$shlibpath_var=\"\$dir\""
3555 else
3556 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
3557 fi
3558 done
3559
3560 # This variable tells wrapper scripts just to set shlibpath_var
3561 # rather than running their programs.
3562 libtool_execute_magic="$magic"
3563
3564 # Check if any of the arguments is a wrapper script.
3565 args=
3566 for file
3567 do
3568 case "$file" in
3569 -*) ;;
3570 *)
a9b5e89f
VZ
3571 # Do a test to see if this is really a libtool program.
3572 if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
352c26ff
VZ
3573 # If there is no directory component, then add one.
3574 case "$file" in
3575 */* | *\\*) . $file ;;
3576 *) . ./$file ;;
3577 esac
3578
3579 # Transform arg to wrapped name.
3580 file="$progdir/$program"
3581 fi
a9b5e89f 3582 ;;
352c26ff
VZ
3583 esac
3584 # Quote arguments (to preserve shell metacharacters).
3585 file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
3586 args="$args \"$file\""
3587 done
3588
3589 if test -z "$run"; then
3590 # Export the shlibpath_var.
3591 eval "export $shlibpath_var"
3592
3593 # Restore saved enviroment variables
3594 if test "${save_LC_ALL+set}" = set; then
a9b5e89f 3595 LC_ALL="$save_LC_ALL"; export LC_ALL
352c26ff
VZ
3596 fi
3597 if test "${save_LANG+set}" = set; then
a9b5e89f 3598 LANG="$save_LANG"; export LANG
352c26ff
VZ
3599 fi
3600
3601 # Now actually exec the command.
3602 eval "exec \$cmd$args"
3603
3604 $echo "$modename: cannot exec \$cmd$args"
3605 exit 1
3606 else
3607 # Display what would be done.
3608 eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
3609 $echo "export $shlibpath_var"
3610 $echo "$cmd$args"
3611 exit 0
3612 fi
3613 ;;
3614
3615 # libtool uninstall mode
3616 uninstall)
3617 modename="$modename: uninstall"
3618 rm="$nonopt"
3619 files=
3620
3621 for arg
3622 do
3623 case "$arg" in
3624 -*) rm="$rm $arg" ;;
3625 *) files="$files $arg" ;;
3626 esac
3627 done
3628
3629 if test -z "$rm"; then
3630 $echo "$modename: you must specify an RM program" 1>&2
3631 $echo "$help" 1>&2
3632 exit 1
3633 fi
3634
3635 for file in $files; do
3636 dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
3637 test "X$dir" = "X$file" && dir=.
3638 name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
3639
3640 rmfiles="$file"
3641
3642 case "$name" in
3643 *.la)
a9b5e89f
VZ
3644 # Possibly a libtool archive, so verify it.
3645 if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
3646 . $dir/$name
3647
3648 # Delete the libtool libraries and symlinks.
3649 for n in $library_names; do
3650 rmfiles="$rmfiles $dir/$n"
3651 test "X$n" = "X$dlname" && dlname=
3652 done
3653 test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
3654 test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
352c26ff
VZ
3655
3656 $show "$rm $rmfiles"
3657 $run $rm $rmfiles
3658
3659 if test -n "$library_names"; then
3660 # Do each command in the postuninstall commands.
3661 eval cmds=\"$postuninstall_cmds\"
3662 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3663 for cmd in $cmds; do
3664 IFS="$save_ifs"
3665 $show "$cmd"
3666 $run eval "$cmd"
3667 done
3668 IFS="$save_ifs"
3669 fi
3670
a9b5e89f 3671 if test -n "$old_library"; then
352c26ff
VZ
3672 # Do each command in the old_postuninstall commands.
3673 eval cmds=\"$old_postuninstall_cmds\"
3674 IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
3675 for cmd in $cmds; do
3676 IFS="$save_ifs"
3677 $show "$cmd"
3678 $run eval "$cmd"
3679 done
3680 IFS="$save_ifs"
3681 fi
3682
a9b5e89f
VZ
3683 # FIXME: should reinstall the best remaining shared library.
3684 fi
3685 ;;
352c26ff
VZ
3686
3687 *.lo)
a9b5e89f
VZ
3688 if test "$build_old_libs" = yes; then
3689 oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
3690 rmfiles="$rmfiles $dir/$oldobj"
3691 fi
352c26ff
VZ
3692 $show "$rm $rmfiles"
3693 $run $rm $rmfiles
a9b5e89f 3694 ;;
352c26ff
VZ
3695
3696 *)
a9b5e89f 3697 $show "$rm $rmfiles"
352c26ff
VZ
3698 $run $rm $rmfiles
3699 ;;
3700 esac
3701 done
3702 exit 0
3703 ;;
3704
3705 "")
3706 $echo "$modename: you must specify a MODE" 1>&2
3707 $echo "$generic_help" 1>&2
3708 exit 1
3709 ;;
3710 esac
3711
3712 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3713 $echo "$generic_help" 1>&2
3714 exit 1
3715fi # test -z "$show_help"
3716
3717# We need to display help for each of the modes.
3718case "$mode" in
3719"") $echo \
3720"Usage: $modename [OPTION]... [MODE-ARG]...
3721
3722Provide generalized library-building support services.
3723
3724 --config show all configuration variables
3725 --debug enable verbose shell tracing
3726-n, --dry-run display commands without modifying any files
3727 --features display basic configuration information and exit
3728 --finish same as \`--mode=finish'
3729 --help display this help message and exit
3730 --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
3731 --quiet same as \`--silent'
3732 --silent don't print informational messages
3733 --version print version information
3734
3735MODE must be one of the following:
3736
3737 compile compile a source file into a libtool object
3738 execute automatically set library path, then run a program
3739 finish complete the installation of libtool libraries
3740 install install libraries or executables
3741 link create a library or an executable
3742 uninstall remove libraries from an installed directory
3743
3744MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
3745a more detailed description of MODE."
3746 exit 0
3747 ;;
3748
3749compile)
3750 $echo \
3751"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
3752
3753Compile a source file into a libtool library object.
3754
3755This mode accepts the following additional options:
3756
a9b5e89f 3757 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
352c26ff
VZ
3758 -static always build a \`.o' file suitable for static linking
3759
3760COMPILE-COMMAND is a command to be used in creating a \`standard' object file
3761from the given SOURCEFILE.
3762
3763The output file name is determined by removing the directory component from
3764SOURCEFILE, then substituting the C source code suffix \`.c' with the
3765library object suffix, \`.lo'."
3766 ;;
3767
3768execute)
3769 $echo \
3770"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
3771
3772Automatically set library path, then run a program.
3773
3774This mode accepts the following additional options:
3775
3776 -dlopen FILE add the directory containing FILE to the library path
3777
3778This mode sets the library path environment variable according to \`-dlopen'
3779flags.
3780
3781If any of the ARGS are libtool executable wrappers, then they are translated
3782into their corresponding uninstalled binary, and any of their required library
3783directories are added to the library path.
3784
3785Then, COMMAND is executed, with ARGS as arguments."
3786 ;;
3787
3788finish)
3789 $echo \
3790"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
3791
3792Complete the installation of libtool libraries.
3793
3794Each LIBDIR is a directory that contains libtool libraries.
3795
3796The commands that this mode executes may require superuser privileges. Use
3797the \`--dry-run' option if you just want to see what would be executed."
3798 ;;
3799
3800install)
3801 $echo \
3802"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
3803
3804Install executables or libraries.
3805
3806INSTALL-COMMAND is the installation command. The first component should be
3807either the \`install' or \`cp' program.
3808
3809The rest of the components are interpreted as arguments to that command (only
3810BSD-compatible install options are recognized)."
3811 ;;
3812
3813link)
3814 $echo \
3815"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
3816
3817Link object files or libraries together to form another library, or to
3818create an executable program.
3819
3820LINK-COMMAND is a command using the C compiler that you would use to create
3821a program from several object files.
3822
3823The following components of LINK-COMMAND are treated specially:
3824
3825 -all-static do not do any dynamic linking at all
a9b5e89f 3826 -avoid-version do not add a version suffix if possible
352c26ff 3827 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
a9b5e89f 3828 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
352c26ff 3829 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
a9b5e89f
VZ
3830 -export-symbols SYMFILE
3831 try to export only the symbols listed in SYMFILE
3832 -export-symbols-regex REGEX
3833 try to export only the symbols matching REGEX
352c26ff
VZ
3834 -LLIBDIR search LIBDIR for required installed libraries
3835 -lNAME OUTPUT-FILE requires the installed library libNAME
a9b5e89f 3836 -module build a library that can dlopened
352c26ff
VZ
3837 -no-undefined declare that a library does not refer to external symbols
3838 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
3839 -release RELEASE specify package release information
3840 -rpath LIBDIR the created library will eventually be installed in LIBDIR
a9b5e89f 3841 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
352c26ff
VZ
3842 -static do not do any dynamic linking of libtool libraries
3843 -version-info CURRENT[:REVISION[:AGE]]
a9b5e89f 3844 specify library version info [each variable defaults to 0]
352c26ff
VZ
3845
3846All other options (arguments beginning with \`-') are ignored.
3847
3848Every other argument is treated as a filename. Files ending in \`.la' are
3849treated as uninstalled libtool libraries, other files are standard or library
3850object files.
3851
a9b5e89f
VZ
3852If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
3853only library objects (\`.lo' files) may be specified, and \`-rpath' is
3854required, except when creating a convenience library.
352c26ff
VZ
3855
3856If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
3857using \`ar' and \`ranlib', or on Windows using \`lib'.
3858
3859If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
3860is created, otherwise an executable program is created."
3861 ;;
3862
3863uninstall)
a9b5e89f 3864 $echo \
352c26ff
VZ
3865"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
3866
3867Remove libraries from an installation directory.
3868
3869RM is the name of the program to use to delete files associated with each FILE
3870(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
3871to RM.
3872
3873If FILE is a libtool library, all the files associated with it are deleted.
3874Otherwise, only FILE itself is deleted using RM."
3875 ;;
3876
3877*)
3878 $echo "$modename: invalid operation mode \`$mode'" 1>&2
3879 $echo "$help" 1>&2
3880 exit 1
3881 ;;
3882esac
3883
3884echo
3885$echo "Try \`$modename --help' for more information about other modes."
3886
3887exit 0
3888
3889# Local Variables:
3890# mode:shell-script
3891# sh-indentation:2
3892# End: