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