1#! /bin/sh 2 3# ltconfig - Create a system-specific libtool. 4# Copyright (C) 1996-2000 Free Software Foundation, Inc. 5# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 6# 7# This file is free software; you can redistribute it and/or modify it 8# 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# A lot of this script is taken from autoconf-2.10. 27 28# Check that we are running under the correct shell. 29SHELL=${CONFIG_SHELL-/bin/sh} 30echo=echo 31if test "X$1" = X--no-reexec; then 32 # Discard the --no-reexec flag, and continue. 33 shift 34elif test "X$1" = X--fallback-echo; then 35 # Avoid inline document here, it may be left over 36 : 37elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 38 # Yippee, $echo works! 39 : 40else 41 # Restart under the correct shell. 42 exec "$SHELL" "$0" --no-reexec ${1+"$@"} 43fi 44 45if test "X$1" = X--fallback-echo; then 46 # used as fallback echo 47 shift 48 cat <<EOF 49$* 50EOF 51 exit 0 52fi 53 54# Find the correct PATH separator. Usually this is `:', but 55# DJGPP uses `;' like DOS. 56if test "X${PATH_SEPARATOR+set}" != Xset; then 57 UNAME=${UNAME-`uname 2>/dev/null`} 58 case X$UNAME in 59 *-DOS) PATH_SEPARATOR=';' ;; 60 *) PATH_SEPARATOR=':' ;; 61 esac 62fi 63 64# The HP-UX ksh and POSIX shell print the target directory to stdout 65# if CDPATH is set. 66if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi 67 68if test "X${echo_test_string+set}" != Xset; then 69 # find a string as large as possible, as long as the shell can cope with it 70 for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do 71 # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... 72 if (echo_test_string="`eval $cmd`") 2>/dev/null && 73 echo_test_string="`eval $cmd`" && 74 (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then 75 break 76 fi 77 done 78fi 79 80if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && 81 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && 82 test "X$echo_testing_string" = "X$echo_test_string"; then 83 : 84else 85 # The Solaris, AIX, and Digital Unix default echo programs unquote 86 # backslashes. This makes it impossible to quote backslashes using 87 # echo "$something" | sed 's/\\/\\\\/g' 88 # 89 # So, first we look for a working echo in the user's PATH. 90 91 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" 92 for dir in $PATH /usr/ucb; do 93 if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && 94 test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && 95 echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && 96 test "X$echo_testing_string" = "X$echo_test_string"; then 97 echo="$dir/echo" 98 break 99 fi 100 done 101 IFS="$save_ifs" 102 103 if test "X$echo" = Xecho; then 104 # We didn't find a better echo, so look for alternatives. 105 if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && 106 echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && 107 test "X$echo_testing_string" = "X$echo_test_string"; then 108 # This shell has a builtin print -r that does the trick. 109 echo='print -r' 110 elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && 111 test "X$CONFIG_SHELL" != X/bin/ksh; then 112 # If we have ksh, try running ltconfig again with it. 113 ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" 114 export ORIGINAL_CONFIG_SHELL 115 CONFIG_SHELL=/bin/ksh 116 export CONFIG_SHELL 117 exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} 118 else 119 # Try using printf. 120 echo='printf "%s\n"' 121 if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && 122 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && 123 test "X$echo_testing_string" = "X$echo_test_string"; then 124 # Cool, printf works 125 : 126 elif echo_testing_string=`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null` && 127 test "X$echo_testing_string" = 'X\t' && 128 echo_testing_string=`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && 129 test "X$echo_testing_string" = "X$echo_test_string"; then 130 CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" 131 export CONFIG_SHELL 132 SHELL="$CONFIG_SHELL" 133 export SHELL 134 echo="$CONFIG_SHELL $0 --fallback-echo" 135 elif echo_testing_string=`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null` && 136 test "X$echo_testing_string" = 'X\t' && 137 echo_testing_string=`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && 138 test "X$echo_testing_string" = "X$echo_test_string"; then 139 echo="$CONFIG_SHELL $0 --fallback-echo" 140 else 141 # maybe with a smaller string... 142 prev=: 143 144 for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do 145 if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then 146 break 147 fi 148 prev="$cmd" 149 done 150 151 if test "$prev" != 'sed 50q "$0"'; then 152 echo_test_string=`eval $prev` 153 export echo_test_string 154 exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} 155 else 156 # Oops. We lost completely, so just stick with echo. 157 echo=echo 158 fi 159 fi 160 fi 161 fi 162fi 163 164# Sed substitution that helps us do robust quoting. It backslashifies 165# metacharacters that are still active within double-quoted strings. 166Xsed='sed -e s/^X//' 167sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' 168 169# Same as above, but do not quote variable references. 170double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' 171 172# Sed substitution to delay expansion of an escaped shell variable in a 173# double_quote_subst'ed string. 174delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' 175 176# The name of this program. 177progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` 178 179# Constants: 180PROGRAM=ltconfig 181PACKAGE=libtool 182VERSION=1.3c 183TIMESTAMP=" (1.695 2000/02/24 02:15:35)" 184ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' 185ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' 186rm="rm -f" 187 188help="Try \`$progname --help' for more information." 189 190# Global variables: 191default_ofile=libtool 192can_build_shared=yes 193enable_shared=yes 194# All known linkers require a `.a' archive for static linking (except M$VC, 195# which needs '.lib'). 196enable_static=yes 197enable_fast_install=yes 198enable_dlopen=unknown 199enable_win32_dll=no 200pic_mode=default 201ltmain= 202silent= 203srcdir= 204ac_config_guess= 205ac_config_sub= 206host= 207build=NONE 208nonopt=NONE 209ofile="$default_ofile" 210verify_host=yes 211with_gcc=no 212with_gnu_ld=no 213need_locks=yes 214ac_ext=c 215libext=a 216cache_file= 217 218old_AR="$AR" 219old_CC="$CC" 220old_CFLAGS="$CFLAGS" 221old_CPPFLAGS="$CPPFLAGS" 222old_LDFLAGS="$LDFLAGS" 223old_LIBS="$LIBS" 224old_MAGIC="$MAGIC" 225old_LD="$LD" 226old_LN_S="$LN_S" 227old_NM="$NM" 228old_RANLIB="$RANLIB" 229old_STRIP="$STRIP" 230old_AS="$AS" 231old_DLLTOOL="$DLLTOOL" 232old_OBJDUMP="$OBJDUMP" 233old_OBJEXT="$OBJEXT" 234old_EXEEXT="$EXEEXT" 235old_reload_Flag="$reload_flag" 236old_deplibs_check_method="$deplibs_check_method" 237old_file_magic_cmd="$file_magic_cmd" 238 239# Parse the command line options. 240args= 241prev= 242for option 243do 244 case "$option" in 245 -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; 246 *) optarg= ;; 247 esac 248 249 # If the previous option needs an argument, assign it. 250 if test -n "$prev"; then 251 eval "$prev=\$option" 252 prev= 253 continue 254 fi 255 256 case "$option" in 257 --help) cat <<EOM 258Usage: $progname [OPTION]... LTMAIN [HOST] 259 260Generate a system-specific libtool script. 261 262 --build configure for building on BUILD [BUILD=HOST] 263 --debug enable verbose shell tracing 264 --disable-shared do not build shared libraries 265 --disable-static do not build static libraries 266 --disable-fast-install do not optimize for fast installation 267 --enable-dlopen enable dlopen support 268 --enable-win32-dll enable building dlls on win32 hosts 269 --help display this help and exit 270 --no-verify do not verify that HOST is a valid host type 271-o, --output=FILE specify the output file [default=$default_ofile] 272 --quiet same as \`--silent' 273 --silent do not print informational messages 274 --srcdir=DIR find \`config.guess' in DIR 275 --version output version information and exit 276 --with-gcc assume that the GNU C compiler will be used 277 --with-gnu-ld assume that the C compiler uses the GNU linker 278 --prefer-pic try to use only PIC objects 279 --prefer-non-pic try to use only non-PIC objects 280 --disable-lock disable file locking 281 --cache-file=FILE configure cache file 282 283LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program 284that provides basic libtool functionality. 285 286HOST is the canonical host system name [default=guessed]. 287EOM 288 exit 0 289 ;; 290 291 --build) prev=build ;; 292 --build=*) build="$optarg" ;; 293 294 --debug) 295 echo "$progname: enabling shell trace mode" 296 set -x 297 ;; 298 299 --disable-shared) enable_shared=no ;; 300 301 --disable-static) enable_static=no ;; 302 303 --disable-fast-install) enable_fast_install=no ;; 304 305 --enable-dlopen) enable_dlopen=yes ;; 306 307 --enable-win32-dll) enable_win32_dll=yes ;; 308 309 --quiet | --silent) silent=yes ;; 310 311 --srcdir) prev=srcdir ;; 312 --srcdir=*) srcdir="$optarg" ;; 313 314 --no-verify) verify_host=no ;; 315 316 --output | -o) prev=ofile ;; 317 --output=*) ofile="$optarg" ;; 318 319 --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;; 320 321 --with-gcc) with_gcc=yes ;; 322 --with-gnu-ld) with_gnu_ld=yes ;; 323 324 --prefer-pic) pic_mode=yes ;; 325 --prefer-non-pic) pic_mode=no ;; 326 327 --disable-lock) need_locks=no ;; 328 329 --cache-file=*) cache_file="$optarg" ;; 330 331 -*) 332 echo "$progname: unrecognized option \`$option'" 1>&2 333 echo "$help" 1>&2 334 exit 1 335 ;; 336 337 *) 338 if test -z "$ltmain"; then 339 ltmain="$option" 340 elif test -z "$host"; then 341# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 342# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then 343# echo "$progname: warning \`$option' is not a valid host type" 1>&2 344# fi 345 host="$option" 346 else 347 echo "$progname: too many arguments" 1>&2 348 echo "$help" 1>&2 349 exit 1 350 fi ;; 351 esac 352done 353 354if test -z "$ltmain"; then 355 echo "$progname: you must specify a LTMAIN file" 1>&2 356 echo "$help" 1>&2 357 exit 1 358fi 359 360if test ! -f "$ltmain"; then 361 echo "$progname: \`$ltmain' does not exist" 1>&2 362 echo "$help" 1>&2 363 exit 1 364fi 365 366# Quote any args containing shell metacharacters. 367ltconfig_args= 368for arg 369do 370 case "$arg" in 371 *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) 372 ltconfig_args="$ltconfig_args '$arg'" ;; 373 *) ltconfig_args="$ltconfig_args $arg" ;; 374 esac 375done 376 377# A relevant subset of AC_INIT. 378 379# File descriptor usage: 380# 0 standard input 381# 1 file creation 382# 2 errors and warnings 383# 3 some systems may open it to /dev/tty 384# 4 used on the Kubota Titan 385# 5 compiler messages saved in config.log 386# 6 checking for... messages and results 387if test "$silent" = yes; then 388 exec 6>/dev/null 389else 390 exec 6>&1 391fi 392exec 5>>./config.log 393 394# NLS nuisances. 395# Only set LANG and LC_ALL to C if already set. 396# These must not be set unconditionally because not all systems understand 397# e.g. LANG=C (notably SCO). 398if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi 399if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi 400 401if test -n "$cache_file" && test -r "$cache_file"; then 402 echo "loading cache $cache_file within ltconfig" 403 . $cache_file 404fi 405 406if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then 407 # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. 408 if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then 409 ac_n= ac_c=' 410' ac_t=' ' 411 else 412 ac_n=-n ac_c= ac_t= 413 fi 414else 415 ac_n= ac_c='\c' ac_t= 416fi 417 418if test -z "$srcdir"; then 419 # Assume the source directory is the same one as the path to LTMAIN. 420 srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` 421 test "$srcdir" = "$ltmain" && srcdir=. 422fi 423 424trap "$rm conftest*; exit 1" 1 2 15 425if test "$verify_host" = yes; then 426 # Check for config.guess and config.sub. 427 ac_aux_dir= 428 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do 429 if test -f $ac_dir/config.guess; then 430 ac_aux_dir=$ac_dir 431 break 432 fi 433 done 434 if test -z "$ac_aux_dir"; then 435 echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 436 echo "$help" 1>&2 437 exit 1 438 fi 439 ac_config_guess=$ac_aux_dir/config.guess 440 ac_config_sub=$ac_aux_dir/config.sub 441 442 # Make sure we can run config.sub. 443 if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : 444 else 445 echo "$progname: cannot run $ac_config_sub" 1>&2 446 echo "$help" 1>&2 447 exit 1 448 fi 449 450 echo $ac_n "checking host system type""... $ac_c" 1>&6 451 452 host_alias=$host 453 case "$host_alias" in 454 "") 455 if host_alias=`$SHELL $ac_config_guess`; then : 456 else 457 echo "$progname: cannot guess host type; you must specify one" 1>&2 458 echo "$help" 1>&2 459 exit 1 460 fi ;; 461 esac 462 host=`$SHELL $ac_config_sub $host_alias` 463 echo "$ac_t$host" 1>&6 464 465 # Make sure the host verified. 466 test -z "$host" && exit 1 467 468 # Check for the build system type 469 echo $ac_n "checking build system type... $ac_c" 1>&6 470 471 build_alias=$build 472 case "$build_alias" in 473 NONE) 474 case $nonopt in 475 NONE) build_alias=$host_alias ;; 476 *) build_alias=$nonopt ;; 477 esac ;; 478 esac 479 480 build=`$SHELL $ac_config_sub $build_alias` 481 build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 482 build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` 483 build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 484 echo "$ac_t""$build" 1>&6 485 486elif test -z "$host"; then 487 echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 488 echo "$help" 1>&2 489 exit 1 490else 491 host_alias=$host 492 build_alias=$host_alias 493 build=$host 494fi 495 496if test x"$host" != x"$build"; then 497 ac_tool_prefix=${host_alias}- 498else 499 ac_tool_prefix= 500fi 501 502host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 503host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` 504host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 505 506# Transform linux* to *-*-linux-gnu*, to support old configure scripts. 507case "$host_os" in 508linux-gnu*) ;; 509linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` 510esac 511 512case "$host_os" in 513aix3*) 514 # AIX sometimes has problems with the GCC collect2 program. For some 515 # reason, if we set the COLLECT_NAMES environment variable, the problems 516 # vanish in a puff of smoke. 517 if test "X${COLLECT_NAMES+set}" != Xset; then 518 COLLECT_NAMES= 519 export COLLECT_NAMES 520 fi 521 ;; 522esac 523 524# Determine commands to create old-style static archives. 525old_archive_cmds='$AR cru $oldlib$oldobjs$old_deplibs' 526old_postinstall_cmds='chmod 644 $oldlib' 527old_postuninstall_cmds= 528 529# Set sane defaults for various variables 530test -z "$AR" && AR=ar 531test -z "$AS" && AS=as 532test -z "$CC" && CC=cc 533test -z "$DLLTOOL" && DLLTOOL=dlltool 534test -z "$MAGIC" && MAGIC=file 535test -z "$LD" && LD=ld 536test -z "$LN_S" && LN_S="ln -s" 537test -z "$NM" && NM=nm 538test -z "$OBJDUMP" && OBJDUMP=objdump 539test -z "$RANLIB" && RANLIB=: 540test -z "$STRIP" && STRIP=: 541test -z "$objext" && objext=o 542 543echo $ac_n "checking for objdir... $ac_c" 1>&6 544rm -f .libs 2>/dev/null 545mkdir .libs 2>/dev/null 546if test -d .libs; then 547 objdir=.libs 548else 549 # MS-DOS does not allow filenames that begin with a dot. 550 objdir=_libs 551fi 552rmdir .libs 2>/dev/null 553echo "$ac_t$objdir" 1>&6 554 555# Allow CC to be a program name with arguments. 556set dummy $CC 557compiler="$2" 558 559# We assume here that the value for ac_cv_prog_cc_pic will not be cached 560# in isolation, and that seeing it set (from the cache) indicates that 561# the associated values are set (in the cache) correctly too. 562echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 563echo "$progname:563:checking for $compiler option to produce PIC" 1>&5 564if test "X${ac_cv_prog_cc_pic+set}" = Xset; then 565 echo $ac_n "(cached) $ac_c" 1>&6 566else 567 ac_cv_prog_cc_pic= 568 ac_cv_prog_cc_shlib= 569 ac_cv_prog_cc_wl= 570 ac_cv_prog_cc_static= 571 ac_cv_prog_cc_no_builtin= 572 ac_cv_prog_cc_can_build_shared=$can_build_shared 573 574 if test "$with_gcc" = yes; then 575 ac_cv_prog_cc_wl='-Wl,' 576 ac_cv_prog_cc_static='-static' 577 578 case "$host_os" in 579 beos* | irix5* | irix6* | osf3* | osf4* | osf5*) 580 # PIC is the default for these OSes. 581 ;; 582 aix*) 583 # Below there is a dirty hack to force normal static linking with -ldl 584 # The problem is because libdl dynamically linked with both libc and 585 # libC (AIX C++ library), which obviously doesn't included in libraries 586 # list by gcc. This cause undefined symbols with -static flags. 587 # This hack allows C programs to be linked with "-static -ldl", but 588 # we not sure about C++ programs. 589 ac_cv_prog_cc_static="$ac_cv_prog_cc_static ${ac_cv_prog_cc_wl}-lC" 590 ;; 591 cygwin* | mingw* | os2*) 592 # This hack is so that the source file can tell whether it is being 593 # built for inclusion in a dll (and should export symbols for example). 594 ac_cv_prog_cc_pic='-DDLL_EXPORT' 595 ;; 596 amigaos*) 597 # FIXME: we need at least 68020 code to build shared libraries, but 598 # adding the `-m68020' flag to GCC prevents building anything better, 599 # like `-m68040'. 600 ac_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' 601 ;; 602 sysv4*MP*) 603 if test -d /usr/nec; then 604 ac_cv_prog_cc_pic=-Kconform_pic 605 fi 606 ;; 607 *) 608 ac_cv_prog_cc_pic='-fPIC' 609 ;; 610 esac 611 else 612 # PORTME Check for PIC flags for the system compiler. 613 case "$host_os" in 614 aix3* | aix4*) 615 # All AIX code is PIC. 616 ac_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' 617 ;; 618 619 hpux9* | hpux10* | hpux11*) 620 # Is there a better ac_cv_prog_cc_static that works with the bundled CC? 621 ac_cv_prog_cc_wl='-Wl,' 622 ac_cv_prog_cc_static="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" 623 ac_cv_prog_cc_pic='+Z' 624 ;; 625 626 irix5* | irix6*) 627 ac_cv_prog_cc_wl='-Wl,' 628 ac_cv_prog_cc_static='-non_shared' 629 # PIC (with -KPIC) is the default. 630 ;; 631 632 cygwin* | mingw* | os2*) 633 # This hack is so that the source file can tell whether it is being 634 # built for inclusion in a dll (and should export symbols for example). 635 ac_cv_prog_cc_pic='-DDLL_EXPORT' 636 ;; 637 638 osf3* | osf4* | osf5*) 639 # All OSF/1 code is PIC. 640 ac_cv_prog_cc_wl='-Wl,' 641 ac_cv_prog_cc_static='-non_shared' 642 ;; 643 644 sco3.2v5*) 645 ac_cv_prog_cc_pic='-Kpic' 646 ac_cv_prog_cc_static='-dn' 647 ac_cv_prog_cc_shlib='-belf' 648 ;; 649 650 solaris*) 651 ac_cv_prog_cc_pic='-KPIC' 652 ac_cv_prog_cc_static='-Bstatic' 653 ac_cv_prog_cc_wl='-Wl,' 654 ;; 655 656 sunos4*) 657 ac_cv_prog_cc_pic='-PIC' 658 ac_cv_prog_cc_static='-Bstatic' 659 ac_cv_prog_cc_wl='-Qoption ld ' 660 ;; 661 662 sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) 663 ac_cv_prog_cc_pic='-KPIC' 664 ac_cv_prog_cc_static='-Bstatic' 665 ac_cv_prog_cc_wl='-Wl,' 666 ;; 667 668 uts4*) 669 ac_cv_prog_cc_pic='-pic' 670 ac_cv_prog_cc_static='-Bstatic' 671 ;; 672 673 sysv4*MP*) 674 if test -d /usr/nec ;then 675 ac_cv_prog_cc_pic='-Kconform_pic' 676 ac_cv_prog_cc_static='-Bstatic' 677 fi 678 ;; 679 680 *) 681 ac_cv_prog_cc_can_build_shared=no 682 ;; 683 esac 684 fi 685fi 686if test -z "$ac_cv_prog_cc_pic"; then 687 echo "$ac_t"none 1>&6 688else 689 echo "$ac_t""$ac_cv_prog_cc_pic" 1>&6 690 691 # Check to make sure the pic_flag actually works. 692 echo $ac_n "checking if $compiler PIC flag $ac_cv_prog_cc_pic works... $ac_c" 1>&6 693 echo "$progname:693:checking that $compiler PIC flag $ac_cv_prog_cc_pic works." 1>&5 694 if test "X${ac_cv_prog_cc_pic_works+set}" = Xset; then 695 echo $ac_n "(cached) $ac_c" 1>&6 696 else 697 ac_cv_prog_cc_pic_works=yes 698 $rm conftest* 699 echo "int some_variable = 0;" > conftest.c 700 save_CFLAGS="$CFLAGS" 701 CFLAGS="$CFLAGS $ac_cv_prog_cc_pic -DPIC" 702 if { (eval echo $progname:702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then 703 # Append any warnings to the config.log. 704 cat conftest.err 1>&5 705 706 case "$host_os" in 707 hpux9* | hpux10* | hpux11*) 708 # On HP-UX, both CC and GCC only warn that PIC is supported... then 709 # they create non-PIC objects. So, if there were any warnings, we 710 # assume that PIC is not supported. 711 if test -s conftest.err; then 712 ac_cv_prog_cc_pic_works=no 713 ac_cv_prog_cc_can_build_shared=no 714 ac_cv_prog_cc_pic= 715 else 716 ac_cv_prog_cc_pic_works=yes 717 ac_cv_prog_cc_pic=" $ac_cv_prog_cc_pic" 718 fi 719 ;; 720 *) 721 ac_cv_prog_cc_pic_works=yes 722 ac_cv_prog_cc_pic=" $ac_cv_prog_cc_pic" 723 ;; 724 esac 725 else 726 # Append any errors to the config.log. 727 cat conftest.err 1>&5 728 ac_cv_prog_cc_pic_works=no 729 ac_cv_prog_cc_can_build_shared=no 730 ac_cv_prog_cc_pic= 731 fi 732 CFLAGS="$save_CFLAGS" 733 $rm conftest* 734 fi 735 # Belt *and* braces to stop my trousers falling down: 736 if test "X$ac_cv_prog_cc_pic_works" = Xno; then 737 ac_cv_prog_cc_pic= 738 ac_cv_prog_cc_can_build_shared=no 739 fi 740 echo "$ac_t""$ac_cv_prog_cc_pic_works" 1>&6 741fi 742 743# Check for any special shared library compilation flags. 744if test -n "$ac_cv_prog_cc_shlib"; then 745 echo "$progname: warning: \`$CC' requires \`$ac_cv_prog_cc_shlib' to build shared libraries" 1>&2 746 if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$ac_cv_prog_cc_shlib[ ]" >/dev/null; then : 747 else 748 echo "$progname: add \`$ac_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2 749 ac_cv_prog_cc_can_build_shared=no 750 fi 751fi 752 753echo $ac_n "checking if $compiler static flag $ac_cv_prog_cc_static works... $ac_c" 1>&6 754echo "$progname:754: checking if $compiler static flag $ac_cv_prog_cc_static works" >&5 755if test "X${ac_cv_prog_cc_static_works+set}" = Xset; then 756 echo $ac_n "(cached) $ac_c" 1>&6 757else 758 $rm conftest* 759 echo 'main(){return(0);}' > conftest.c 760 save_LDFLAGS="$LDFLAGS" 761 LDFLAGS="$LDFLAGS $ac_cv_prog_cc_static" 762 if { (eval echo $progname:762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then 763 ac_cv_prog_cc_static_works=yes 764 else 765 ac_cv_prog_cc_static_works=no 766 ac_cv_prog_cc_static= 767 fi 768 LDFLAGS="$save_LDFLAGS" 769 $rm conftest* 770fi 771# Belt *and* braces to stop my trousers falling down: 772if test "X$ac_cv_prog_cc_static_works" = Xno; then 773 ac_cv_prog_cc_static= 774fi 775echo "$ac_t""$ac_cv_prog_cc_static_works" 1>&6 776pic_flag="$ac_cv_prog_cc_pic" 777special_shlib_compile_flags="$ac_cv_prog_cc_shlib" 778wl="$ac_cv_prog_cc_wl" 779link_static_flag="$ac_cv_prog_cc_static" 780no_builtin_flag="$ac_cv_prog_cc_no_builtin" 781can_build_shared="$ac_cv_prog_cc_can_build_shared" 782 783# Check to see if options -o and -c are simultaneously supported by compiler 784echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 785$rm -r conftest 2>/dev/null 786mkdir conftest 787cd conftest 788$rm conftest* 789echo "int some_variable = 0;" > conftest.c 790mkdir out 791# According to Tom Tromey, Ian Lance Taylor reported there are C compilers 792# that will create temporary files in the current directory regardless of 793# the output directory. Thus, making CWD read-only will cause this test 794# to fail, enabling locking or at least warning the user not to do parallel 795# builds. 796chmod -w . 797save_CFLAGS="$CFLAGS" 798CFLAGS="$CFLAGS -o out/conftest2.o" 799echo "$progname:799: checking if $compiler supports -c -o file.o" >&5 800if { (eval echo $progname:800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then 801 802 # The compiler can only warn and ignore the option if not recognized 803 # So say no if there are warnings 804 if test -s out/conftest.err; then 805 echo "$ac_t"no 1>&6 806 compiler_c_o=no 807 else 808 echo "$ac_t"yes 1>&6 809 compiler_c_o=yes 810 fi 811else 812 # Append any errors to the config.log. 813 cat out/conftest.err 1>&5 814 compiler_c_o=no 815 echo "$ac_t"no 1>&6 816fi 817CFLAGS="$save_CFLAGS" 818chmod u+w . 819$rm conftest* out/* 820rmdir out 821cd .. 822rmdir conftest 823$rm -r conftest 2>/dev/null 824 825if test x"$compiler_c_o" = x"yes"; then 826 # Check to see if we can write to a .lo 827 echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 828 $rm conftest* 829 echo "int some_variable = 0;" > conftest.c 830 save_CFLAGS="$CFLAGS" 831 CFLAGS="$CFLAGS -c -o conftest.lo" 832 echo "$progname:832: checking if $compiler supports -c -o file.lo" >&5 833if { (eval echo $progname:833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then 834 835 # The compiler can only warn and ignore the option if not recognized 836 # So say no if there are warnings 837 if test -s conftest.err; then 838 echo "$ac_t"no 1>&6 839 compiler_o_lo=no 840 else 841 echo "$ac_t"yes 1>&6 842 compiler_o_lo=yes 843 fi 844 else 845 # Append any errors to the config.log. 846 cat conftest.err 1>&5 847 compiler_o_lo=no 848 echo "$ac_t"no 1>&6 849 fi 850 CFLAGS="$save_CFLAGS" 851 $rm conftest* 852else 853 compiler_o_lo=no 854fi 855 856# Check to see if we can do hard links to lock some files if needed 857hard_links="nottested" 858if test "$compiler_c_o" = no && test "$need_locks" != no; then 859 # do not overwrite the value of need_locks provided by the user 860 echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 861 hard_links=yes 862 $rm conftest* 863 ln conftest.a conftest.b 2>/dev/null && hard_links=no 864 touch conftest.a 865 ln conftest.a conftest.b 2>&5 || hard_links=no 866 ln conftest.a conftest.b 2>/dev/null && hard_links=no 867 echo "$ac_t$hard_links" 1>&6 868 $rm conftest* 869 if test "$hard_links" = no; then 870 echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 871 need_locks=warn 872 fi 873else 874 need_locks=no 875fi 876 877if test "$with_gcc" = yes; then 878 # Check to see if options -fno-rtti -fno-exceptions are supported by compiler 879 echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 880 $rm conftest* 881 echo "int some_variable = 0;" > conftest.c 882 save_CFLAGS="$CFLAGS" 883 CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" 884 echo "$progname:884: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 885 if { (eval echo $progname:885: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then 886 887 # The compiler can only warn and ignore the option if not recognized 888 # So say no if there are warnings 889 if test -s conftest.err; then 890 echo "$ac_t"no 1>&6 891 compiler_rtti_exceptions=no 892 else 893 echo "$ac_t"yes 1>&6 894 compiler_rtti_exceptions=yes 895 fi 896 else 897 # Append any errors to the config.log. 898 cat conftest.err 1>&5 899 compiler_rtti_exceptions=no 900 echo "$ac_t"no 1>&6 901 fi 902 CFLAGS="$save_CFLAGS" 903 $rm conftest* 904 905 if test "$compiler_rtti_exceptions" = "yes"; then 906 no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' 907 else 908 no_builtin_flag=' -fno-builtin' 909 fi 910 911fi 912 913# See if the linker supports building shared libraries. 914echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 915 916allow_undefined_flag= 917no_undefined_flag= 918need_lib_prefix=unknown 919need_version=unknown 920# when you set need_version to no, make sure it does not cause -set_version 921# flags to be left without arguments 922archive_cmds= 923archive_expsym_cmds= 924old_archive_from_new_cmds= 925old_archive_from_expsyms_cmds= 926striplib= 927old_striplib= 928export_dynamic_flag_spec= 929whole_archive_flag_spec= 930thread_safe_flag_spec= 931hardcode_into_libs=no 932hardcode_libdir_flag_spec= 933hardcode_libdir_separator= 934hardcode_direct=no 935hardcode_minus_L=no 936hardcode_shlibpath_var=unsupported 937runpath_var= 938link_all_deplibs=unknown 939always_export_symbols=no 940export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' 941# include_expsyms should be a list of space-separated symbols to be *always* 942# included in the symbol list 943include_expsyms= 944# exclude_expsyms can be an egrep regular expression of symbols to exclude 945# it will be wrapped by ` (' and `)$', so one must not match beginning or 946# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', 947# as well as any symbol that contains `d'. 948exclude_expsyms="_GLOBAL_OFFSET_TABLE_" 949# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out 950# platforms (ab)use it in PIC code, but their linkers get confused if 951# the symbol is explicitly referenced. Since portable code cannot 952# rely on this symbol name, it's probably fine to never include it in 953# preloaded symbol tables. 954extract_expsyms_cmds= 955 956case "$host_os" in 957cygwin* | mingw*) 958 # FIXME: the MSVC++ port hasn't been tested in a loooong time 959 # When not using gcc, we currently assume that we are using 960 # Microsoft Visual C++. 961 if test "$with_gcc" != yes; then 962 with_gnu_ld=no 963 fi 964 ;; 965 966esac 967 968ld_shlibs=yes 969if test "$with_gnu_ld" = yes; then 970 # If archive_cmds runs LD, not CC, wlarc should be empty 971 wlarc='${wl}' 972 973 # See if GNU ld supports shared libraries. 974 case "$host_os" in 975 aix3* | aix4*) 976 # On AIX, the GNU linker is very broken 977 ld_shlibs=no 978 cat <<EOF 1>&2 979 980*** Warning: the GNU linker, at least up to release 2.9.1, is reported 981*** to be unable to reliably create shared libraries on AIX. 982*** Therefore, libtool is disabling shared libraries support. If you 983*** really care for shared libraries, you may want to modify your PATH 984*** so that a non-GNU linker is found, and then restart. 985 986EOF 987 ;; 988 989 amigaos*) 990 archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' 991 hardcode_libdir_flag_spec='-L$libdir' 992 hardcode_minus_L=yes 993 994 # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports 995 # that the semantics of dynamic libraries on AmigaOS, at least up 996 # to version 4, is to share data among multiple programs linked 997 # with the same dynamic library. Since this doesn't match the 998 # behavior of shared libraries on other platforms, we can use 999 # them. 1000 ld_shlibs=no 1001 ;; 1002 1003 beos*) 1004 if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then 1005 allow_undefined_flag=unsupported 1006 # Joseph Beckenbach <jrb3@best.com> says some releases of gcc 1007 # support --undefined. This deserves some investigation. FIXME 1008 archive_cmds='$CC -nostart $libobjs $deplibs $linker_flags ${wl}-soname $wl$soname -o $lib' 1009 else 1010 ld_shlibs=no 1011 fi 1012 ;; 1013 1014 cygwin* | mingw*) 1015 # hardcode_libdir_flag_spec is actually meaningless, as there is 1016 # no search path for DLLs. 1017 hardcode_libdir_flag_spec='-L$libdir' 1018 allow_undefined_flag=unsupported 1019 always_export_symbols=yes 1020 1021 extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ 1022 sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //; p; }" -e d < $0 > $output_objdir/impgen.c~ 1023 test -f $output_objdir/impgen.exe || (cd $output_objdir && \ 1024 if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ 1025 else $CC -o impgen impgen.c ; fi)~ 1026 $output_objdir/impgen $dir/$soname > $output_objdir/$soname-def' 1027 1028 old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' 1029 1030 # cygwin and mingw dlls have different entry points and sets of symbols 1031 # to exclude. 1032 # FIXME: what about values for MSVC? 1033 dll_entry=__cygwin_dll_entry@12 1034 dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ 1035 case "$host_os" in 1036 mingw*) 1037 # mingw values 1038 dll_entry=_DllMainCRTStartup@12 1039 dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ 1040 ;; 1041 esac 1042 1043 # mingw and cygwin differ, and it's simplest to just exclude the union 1044 # of the two symbol sets. 1045 dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 1046 1047 # recent cygwin and mingw systems supply a stub DllMain which the user 1048 # can override, but on older systems we have to supply one (in ltdll.c) 1049 if test "x$lt_cv_need_dllmain" = "xyes"; then 1050 ltdll_obj='$output_objdir/$soname-ltdll.'"$objext " 1051 ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $output_objdir/$soname-ltdll.c~ 1052 test -f $output_objdir/$soname-ltdll.$objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' 1053 else 1054 ltdll_obj= 1055 ltdll_cmds= 1056 fi 1057 1058 # Extract the symbol export list from an `--export-all' def file, 1059 # then regenerate the def file from the symbol export list, so that 1060 # the compiled dll only exports the symbol export list. 1061 # Be careful not to strip the DATA tag left be newer dlltools. 1062 export_symbols_cmds="$ltdll_cmds"' 1063 $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ 1064 sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' 1065 1066 # If DATA tags from a recent dlltool are present, honour them! 1067 archive_expsym_cmds='echo EXPORTS > $output_objdir/$soname-def~ 1068 _lt_hint=1; 1069 cat $export_symbols | while read symbol; do 1070 set dummy \$symbol; 1071 case \$# in 1072 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; 1073 *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; 1074 esac; 1075 _lt_hint=`expr 1 + \$_lt_hint`; 1076 done~ 1077 '"$ltdll_cmds"' 1078 $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $lib '$ltdll_obj'$libobjs $deplibs $compiler_flags~ 1079 $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ 1080 $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $lib '$ltdll_obj'$libobjs $deplibs $compiler_flags~ 1081 $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ 1082 $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $lib '$ltdll_obj'$libobjs $deplibs $compiler_flags' 1083 ;; 1084 1085 netbsd*) 1086 if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then 1087 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 1088 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 1089 else 1090 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' 1091 fi 1092 ;; 1093 1094 solaris* | sysv5*) 1095 if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then 1096 ld_shlibs=no 1097 cat <<EOF 1>&2 1098 1099*** Warning: The releases 2.8.* of the GNU linker cannot reliably 1100*** create shared libraries on Solaris systems. Therefore, libtool 1101*** is disabling shared libraries support. We urge you to upgrade GNU 1102*** binutils to release 2.9.1 or newer. Another option is to modify 1103*** your PATH or compiler configuration so that the native linker is 1104*** used, and then restart. 1105 1106EOF 1107 elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then 1108 archive_cmds='$CC -shared $libobjs $deplibs $linker_flags ${wl}-soname $wl$soname -o $lib' 1109 archive_expsym_cmds='$CC -shared $libobjs $deplibs $linker_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 1110 else 1111 ld_shlibs=no 1112 fi 1113 ;; 1114 1115 sunos4*) 1116 archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' 1117 wlarc= 1118 hardcode_direct=yes 1119 hardcode_shlibpath_var=no 1120 ;; 1121 1122 *) 1123 if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then 1124 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 1125 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 1126 else 1127 ld_shlibs=no 1128 fi 1129 ;; 1130 esac 1131 1132 if test "$ld_shlibs" = yes; then 1133 runpath_var=LD_RUN_PATH 1134 hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' 1135 export_dynamic_flag_spec='${wl}--export-dynamic' 1136 case $host_os in 1137 cygwin* | mingw*) 1138 # dlltool doesn't understand --whole-archive et. al. 1139 whole_archive_flag_spec= 1140 ;; 1141 *) 1142 # ancient GNU ld didn't support --whole-archive et. al. 1143 if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then 1144 whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 1145 else 1146 whole_archive_flag_spec= 1147 fi 1148 ;; 1149 esac 1150 fi 1151else 1152 # PORTME fill in a description of your system's linker (not GNU ld) 1153 case "$host_os" in 1154 aix3*) 1155 allow_undefined_flag=unsupported 1156 always_export_symbols=yes 1157 archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $output_objdir/$soname' 1158 # Note: this linker hardcodes the directories in LIBPATH if there 1159 # are no directories specified by -L. 1160 hardcode_minus_L=yes 1161 if test "$with_gcc" = yes && test -z "$link_static_flag"; then 1162 # Neither direct hardcoding nor static linking is supported with a 1163 # broken collect2. 1164 hardcode_direct=unsupported 1165 fi 1166 ;; 1167 1168 aix4*) 1169 hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' 1170 hardcode_libdir_separator=':' 1171 if test "$with_gcc" = yes; then 1172 collect2name=`${CC} -print-prog-name=collect2` 1173 if test -f "$collect2name" && \ 1174 strings "$collect2name" | grep resolve_lib_name >/dev/null 1175 then 1176 # We have reworked collect2 1177 hardcode_direct=yes 1178 else 1179 # We have old collect2 1180 hardcode_direct=unsupported 1181 # It fails to find uninstalled libraries when the uninstalled 1182 # path is not listed in the libpath. Setting hardcode_minus_L 1183 # to unsupported forces relinking 1184 hardcode_minus_L=yes 1185 hardcode_libdir_flag_spec='-L$libdir' 1186 hardcode_libdir_separator= 1187 fi 1188 shared_flag='-shared' 1189 else 1190 shared_flag='${wl}-bM:SRE' 1191 hardcode_direct=yes 1192 fi 1193 allow_undefined_flag=' ${wl}-berok' 1194 archive_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' 1195 archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' 1196 case "$host_os" in aix4.[01]|aix4.[01].*) 1197 # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on 1198 always_export_symbols=yes ;; 1199 esac 1200 ;; 1201 1202 amigaos*) 1203 archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' 1204 hardcode_libdir_flag_spec='-L$libdir' 1205 hardcode_minus_L=yes 1206 # see comment about different semantics on the GNU ld section 1207 ld_shlibs=no 1208 ;; 1209 1210 cygwin* | mingw*) 1211 # When not using gcc, we currently assume that we are using 1212 # Microsoft Visual C++. 1213 # hardcode_libdir_flag_spec is actually meaningless, as there is 1214 # no search path for DLLs. 1215 hardcode_libdir_flag_spec=' ' 1216 allow_undefined_flag=unsupported 1217 # Tell ltmain to make .lib files, not .a files. 1218 libext=lib 1219 # FIXME: Setting linknames here is a bad hack. 1220 archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' 1221 # The linker will automatically build a .lib file if we build a DLL. 1222 old_archive_from_new_cmds='true' 1223 # FIXME: Should let the user specify the lib program. 1224 old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' 1225 fix_srcfile_path='`cygpath -w $srcfile`' 1226 ;; 1227 1228 freebsd1*) 1229 ld_shlibs=no 1230 ;; 1231 1232 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor 1233 # support. Future versions do this automatically, but an explicit c++rt0.o 1234 # does not break anything, and helps significantly (at the cost of a little 1235 # extra space). 1236 freebsd2.2*) 1237 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' 1238 hardcode_libdir_flag_spec='-R$libdir' 1239 hardcode_direct=yes 1240 hardcode_shlibpath_var=no 1241 ;; 1242 1243 # Unfortunately, older versions of FreeBSD 2 do not have this feature. 1244 freebsd2*) 1245 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' 1246 hardcode_direct=yes 1247 hardcode_minus_L=yes 1248 hardcode_shlibpath_var=no 1249 ;; 1250 1251 # FreeBSD 3 and greater uses gcc -shared to do shared libraries. 1252 freebsd*) 1253 archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' 1254 hardcode_libdir_flag_spec='-R$libdir' 1255 hardcode_direct=yes 1256 hardcode_shlibpath_var=no 1257 ;; 1258 1259 hpux9* | hpux10* | hpux11*) 1260 case "$host_os" in 1261 hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; 1262 *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; 1263 esac 1264 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' 1265 hardcode_libdir_separator=: 1266 hardcode_direct=yes 1267 hardcode_minus_L=yes # Not in the search PATH, but as the default 1268 # location of the library. 1269 export_dynamic_flag_spec='${wl}-E' 1270 ;; 1271 1272 irix5* | irix6*) 1273 if test "$with_gcc" = yes; then 1274 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 1275 else 1276 archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 1277 fi 1278 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 1279 hardcode_libdir_separator=: 1280 link_all_deplibs=yes 1281 ;; 1282 1283 netbsd*) 1284 if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then 1285 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out 1286 else 1287 archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF 1288 fi 1289 hardcode_libdir_flag_spec='${wl}-R$libdir' 1290 hardcode_direct=yes 1291 hardcode_shlibpath_var=no 1292 ;; 1293 1294 openbsd*) 1295 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' 1296 hardcode_libdir_flag_spec='-R$libdir' 1297 hardcode_direct=yes 1298 hardcode_shlibpath_var=no 1299 ;; 1300 1301 os2*) 1302 hardcode_libdir_flag_spec='-L$libdir' 1303 hardcode_minus_L=yes 1304 allow_undefined_flag=unsupported 1305 archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' 1306 old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' 1307 ;; 1308 1309 osf3*) 1310 if test "$with_gcc" = yes; then 1311 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' 1312 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 1313 else 1314 allow_undefined_flag=' -expect_unresolved \*' 1315 archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 1316 fi 1317 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 1318 hardcode_libdir_separator=: 1319 ;; 1320 1321 osf4* | osf5*) # as osf3* with the addition of -msym flag 1322 if test "$with_gcc" = yes; then 1323 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' 1324 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 1325 else 1326 allow_undefined_flag=' -expect_unresolved \*' 1327 archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 1328 fi 1329 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 1330 hardcode_libdir_separator=: 1331 ;; 1332 1333 sco3.2v5*) 1334 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 1335 hardcode_shlibpath_var=no 1336 runpath_var=LD_RUN_PATH 1337 hardcode_runpath_var=yes 1338 ;; 1339 1340 solaris*) 1341 no_undefined_flag=' -z text' 1342 # $CC -shared without GNU ld will not create a library from C++ 1343 # object files and a static libstdc++, better avoid it by now 1344 archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' 1345 archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ 1346 $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' 1347 hardcode_libdir_flag_spec='-R$libdir' 1348 hardcode_shlibpath_var=no 1349 case "$host_os" in 1350 solaris2.[0-5] | solaris2.[0-5].*) ;; 1351 *) # Supported since Solaris 2.6 (maybe 2.5.1?) 1352 whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; 1353 esac 1354 link_all_deplibs=yes 1355 ;; 1356 1357 sunos4*) 1358 archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' 1359 hardcode_libdir_flag_spec='-L$libdir' 1360 hardcode_direct=yes 1361 hardcode_minus_L=yes 1362 hardcode_shlibpath_var=no 1363 ;; 1364 1365 sysv4) 1366 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 1367 runpath_var='LD_RUN_PATH' 1368 hardcode_shlibpath_var=no 1369 hardcode_direct=no #Motorola manual says yes, but my tests say they lie 1370 ;; 1371 1372 sysv4.3*) 1373 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 1374 hardcode_shlibpath_var=no 1375 export_dynamic_flag_spec='-Bexport' 1376 ;; 1377 1378 sysv5*) 1379 no_undefined_flag=' -z text' 1380 # $CC -shared without GNU ld will not create a library from C++ 1381 # object files and a static libstdc++, better avoid it by now 1382 archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' 1383 archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ 1384 $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' 1385 hardcode_libdir_flag_spec= 1386 hardcode_shlibpath_var=no 1387 runpath_var='LD_RUN_PATH' 1388 ;; 1389 1390 uts4*) 1391 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 1392 hardcode_libdir_flag_spec='-L$libdir' 1393 hardcode_shlibpath_var=no 1394 ;; 1395 1396 dgux*) 1397 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 1398 hardcode_libdir_flag_spec='-L$libdir' 1399 hardcode_shlibpath_var=no 1400 ;; 1401 1402 sysv4*MP*) 1403 if test -d /usr/nec; then 1404 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 1405 hardcode_shlibpath_var=no 1406 runpath_var=LD_RUN_PATH 1407 hardcode_runpath_var=yes 1408 ld_shlibs=yes 1409 fi 1410 ;; 1411 1412 sysv4.2uw2*) 1413 archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' 1414 hardcode_direct=yes 1415 hardcode_minus_L=no 1416 hardcode_shlibpath_var=no 1417 hardcode_runpath_var=yes 1418 runpath_var=LD_RUN_PATH 1419 ;; 1420 1421 unixware7*) 1422 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 1423 runpath_var='LD_RUN_PATH' 1424 hardcode_shlibpath_var=no 1425 ;; 1426 1427 *) 1428 ld_shlibs=no 1429 ;; 1430 esac 1431fi 1432echo "$ac_t$ld_shlibs" 1>&6 1433test "$ld_shlibs" = no && can_build_shared=no 1434 1435# Check hardcoding attributes. 1436echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 1437hardcode_action= 1438if test -n "$hardcode_libdir_flag_spec" || \ 1439 test -n "$runpath_var"; then 1440 1441 # We can hardcode non-existant directories. 1442 if test "$hardcode_direct" != no && 1443 # If the only mechanism to avoid hardcoding is shlibpath_var, we 1444 # have to relink, otherwise we might link with an installed library 1445 # when we should be linking with a yet-to-be-installed one 1446 ## test "$hardcode_shlibpath_var" != no && 1447 test "$hardcode_minus_L" != no; then 1448 # Linking always hardcodes the temporary library directory. 1449 hardcode_action=relink 1450 else 1451 # We can link without hardcoding, and we can hardcode nonexisting dirs. 1452 hardcode_action=immediate 1453 fi 1454else 1455 # We cannot hardcode anything, or else we can only hardcode existing 1456 # directories. 1457 hardcode_action=unsupported 1458fi 1459echo "$ac_t$hardcode_action" 1>&6 1460 1461echo $ac_n "checking whether stripping libraries is possible... $ac_c" 1>&6 1462if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then 1463 test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" 1464 test -z "$striplib" && striplib="$STRIP --strip-unneeded" 1465 echo "${ac_t}yes" 1>&6 1466else 1467 echo "${ac_t}no" 1>&6 1468fi 1469 1470reload_cmds='$LD$reload_flag -o $output$reload_objs' 1471test -z "$deplibs_check_method" && deplibs_check_method=unknown 1472 1473# PORTME Fill in your ld.so characteristics 1474library_names_spec= 1475libname_spec='lib$name' 1476soname_spec= 1477postinstall_cmds= 1478postuninstall_cmds= 1479finish_cmds= 1480finish_eval= 1481shlibpath_var= 1482shlibpath_overrides_runpath=unknown 1483version_type=none 1484dynamic_linker="$host_os ld.so" 1485sys_lib_dlsearch_path_spec="/lib /usr/lib" 1486sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" 1487 1488echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 1489case "$host_os" in 1490aix3*) 1491 version_type=linux 1492 library_names_spec='${libname}${release}.so$versuffix $libname.a' 1493 shlibpath_var=LIBPATH 1494 1495 # AIX has no versioning support, so we append a major version to the name. 1496 soname_spec='${libname}${release}.so$major' 1497 ;; 1498 1499aix4*) 1500 version_type=linux 1501 # AIX has no versioning support, so currently we can not hardcode correct 1502 # soname into executable. Probably we can add versioning support to 1503 # collect2, so additional links can be useful in future. 1504 # We preserve .a as extension for shared libraries though AIX4.2 1505 # and later linker supports .so 1506 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' 1507 shlibpath_var=LIBPATH 1508 ;; 1509 1510amigaos*) 1511 library_names_spec='$libname.ixlibrary $libname.a' 1512 # Create ${libname}_ixlibrary.a entries in /sys/libs. 1513 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' 1514 ;; 1515 1516beos*) 1517 library_names_spec='${libname}.so' 1518 dynamic_linker="$host_os ld.so" 1519 shlibpath_var=LIBRARY_PATH 1520 lt_cv_dlopen="load_add_on" 1521 lt_cv_dlopen_libs= 1522 lt_cv_dlopen_self=yes 1523 ;; 1524 1525bsdi4*) 1526 version_type=linux 1527 need_version=no 1528 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 1529 soname_spec='${libname}${release}.so$major' 1530 finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' 1531 shlibpath_var=LD_LIBRARY_PATH 1532 sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" 1533 sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" 1534 export_dynamic_flag_spec=-rdynamic 1535 # the default ld.so.conf also contains /usr/contrib/lib and 1536 # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow 1537 # libtool to hard-code these into programs 1538 ;; 1539 1540cygwin* | mingw*) 1541 version_type=windows 1542 need_version=no 1543 need_lib_prefix=no 1544 if test "$with_gcc" = yes; then 1545 library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' 1546 else 1547 library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' 1548 fi 1549 dynamic_linker='Win32 ld.exe' 1550 # FIXME: first we should search . and the directory the executable is in 1551 shlibpath_var=PATH 1552 lt_cv_dlopen="LoadLibrary" 1553 lt_cv_dlopen_libs= 1554 ;; 1555 1556freebsd1*) 1557 dynamic_linker=no 1558 ;; 1559 1560freebsd*) 1561 objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` 1562 version_type=freebsd-$objformat 1563 case "$version_type" in 1564 freebsd-elf*) 1565 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' 1566 need_version=no 1567 need_lib_prefix=no 1568 ;; 1569 freebsd-*) 1570 library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' 1571 need_version=yes 1572 ;; 1573 esac 1574 shlibpath_var=LD_LIBRARY_PATH 1575 case "$host_os" in 1576 freebsd2*) 1577 shlibpath_overrides_runpath=yes 1578 ;; 1579 freebsd3.[01]* | freebsdelf3.[01]*) 1580 shlibpath_overrides_runpath=yes 1581 hardcode_into_libs=yes 1582 ;; 1583 *) # from 3.2 on 1584 shlibpath_overrides_runpath=no 1585 hardcode_into_libs=yes 1586 ;; 1587 esac 1588 ;; 1589 1590gnu*) 1591 version_type=linux 1592 need_lib_prefix=no 1593 need_version=no 1594 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' 1595 soname_spec='${libname}${release}.so$major' 1596 shlibpath_var=LD_LIBRARY_PATH 1597 hardcode_into_libs=yes 1598 ;; 1599 1600hpux9* | hpux10* | hpux11*) 1601 # Give a soname corresponding to the major version so that dld.sl refuses to 1602 # link against other versions. 1603 dynamic_linker="$host_os dld.sl" 1604 version_type=sunos 1605 need_lib_prefix=no 1606 need_version=no 1607 shlibpath_var=SHLIB_PATH 1608 shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH 1609 library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' 1610 soname_spec='${libname}${release}.sl$major' 1611 # HP-UX runs *really* slowly unless shared libraries are mode 555. 1612 postinstall_cmds='chmod 555 $lib' 1613 ;; 1614 1615irix5* | irix6*) 1616 version_type=irix 1617 need_lib_prefix=no 1618 need_version=no 1619 soname_spec='${libname}${release}.so.$major' 1620 library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' 1621 case "$host_os" in 1622 irix5*) 1623 libsuff= shlibsuff= 1624 ;; 1625 *) 1626 case "$LD" in # libtool.m4 will add one of these switches to LD 1627 *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; 1628 *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; 1629 *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; 1630 *) libsuff= shlibsuff= libmagic=never-match;; 1631 esac 1632 ;; 1633 esac 1634 shlibpath_var=LD_LIBRARY${shlibsuff}_PATH 1635 shlibpath_overrides_runpath=no 1636 sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" 1637 sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" 1638 ;; 1639 1640# No shared lib support for Linux oldld, aout, or coff. 1641linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) 1642 dynamic_linker=no 1643 ;; 1644 1645# This must be Linux ELF. 1646linux-gnu*) 1647 version_type=linux 1648 need_lib_prefix=no 1649 need_version=no 1650 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 1651 soname_spec='${libname}${release}.so$major' 1652 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' 1653 shlibpath_var=LD_LIBRARY_PATH 1654 shlibpath_overrides_runpath=no 1655 # This implies no fast_install, which is unacceptable. 1656 # Some rework will be needed to allow for fast_install 1657 # before this can be enabled. 1658 hardcode_into_libs=yes 1659 1660 if test -f /lib/ld.so.1; then 1661 dynamic_linker='GNU ld.so' 1662 else 1663 # Only the GNU ld.so supports shared libraries on MkLinux. 1664 case "$host_cpu" in 1665 powerpc*) dynamic_linker=no ;; 1666 *) dynamic_linker='Linux ld.so' ;; 1667 esac 1668 fi 1669 ;; 1670 1671netbsd*) 1672 version_type=sunos 1673 if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then 1674 library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' 1675 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' 1676 dynamic_linker='NetBSD (a.out) ld.so' 1677 else 1678 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' 1679 soname_spec='${libname}${release}.so$major' 1680 dynamic_linker='NetBSD ld.elf_so' 1681 fi 1682 shlibpath_var=LD_LIBRARY_PATH 1683 ;; 1684 1685openbsd*) 1686 version_type=sunos 1687 if test "$with_gnu_ld" = yes; then 1688 need_lib_prefix=no 1689 need_version=no 1690 fi 1691 library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' 1692 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' 1693 shlibpath_var=LD_LIBRARY_PATH 1694 ;; 1695 1696os2*) 1697 libname_spec='$name' 1698 need_lib_prefix=no 1699 library_names_spec='$libname.dll $libname.a' 1700 dynamic_linker='OS/2 ld.exe' 1701 shlibpath_var=LIBPATH 1702 ;; 1703 1704osf3* | osf4* | osf5*) 1705 version_type=osf 1706 need_version=no 1707 soname_spec='${libname}${release}.so' 1708 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' 1709 shlibpath_var=LD_LIBRARY_PATH 1710 sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" 1711 sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" 1712 ;; 1713 1714sco3.2v5*) 1715 version_type=osf 1716 soname_spec='${libname}${release}.so$major' 1717 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 1718 shlibpath_var=LD_LIBRARY_PATH 1719 ;; 1720 1721solaris*) 1722 version_type=linux 1723 need_lib_prefix=no 1724 need_version=no 1725 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 1726 soname_spec='${libname}${release}.so$major' 1727 shlibpath_var=LD_LIBRARY_PATH 1728 shlibpath_overrides_runpath=yes 1729 hardcode_into_libs=yes 1730 # ldd complains unless libraries are executable 1731 postinstall_cmds='chmod +x $lib' 1732 ;; 1733 1734sunos4*) 1735 version_type=sunos 1736 library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' 1737 finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' 1738 shlibpath_var=LD_LIBRARY_PATH 1739 shlibpath_overrides_runpath=yes 1740 if test "$with_gnu_ld" = yes; then 1741 need_lib_prefix=no 1742 fi 1743 need_version=yes 1744 ;; 1745 1746sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) 1747 version_type=linux 1748 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 1749 soname_spec='${libname}${release}.so$major' 1750 shlibpath_var=LD_LIBRARY_PATH 1751 case "$host_vendor" in 1752 motorola) 1753 need_lib_prefix=no 1754 need_version=no 1755 shlibpath_overrides_runpath=no 1756 sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' 1757 ;; 1758 esac 1759 ;; 1760 1761uts4*) 1762 version_type=linux 1763 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 1764 soname_spec='${libname}${release}.so$major' 1765 shlibpath_var=LD_LIBRARY_PATH 1766 ;; 1767 1768dgux*) 1769 version_type=linux 1770 need_lib_prefix=no 1771 need_version=no 1772 library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' 1773 soname_spec='${libname}${release}.so$major' 1774 shlibpath_var=LD_LIBRARY_PATH 1775 ;; 1776 1777sysv4*MP*) 1778 if test -d /usr/nec ;then 1779 version_type=linux 1780 library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' 1781 soname_spec='$libname.so.$major' 1782 shlibpath_var=LD_LIBRARY_PATH 1783 fi 1784 ;; 1785 1786*) 1787 dynamic_linker=no 1788 ;; 1789esac 1790echo "$ac_t$dynamic_linker" 1>&6 1791test "$dynamic_linker" = no && can_build_shared=no 1792 1793# Check for command to grab the raw symbol name followed by C symbol from nm. 1794echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 1795 1796# These are sane defaults that work on at least a few old systems. 1797# [They come from Ultrix. What could be older than Ultrix?!! ;)] 1798 1799# Character class describing NM global symbol codes. 1800symcode='[BCDEGRST]' 1801 1802# Regexp to match symbols that can be accessed directly from C. 1803sympat='\([_A-Za-z][_A-Za-z0-9]*\)' 1804 1805# Transform the above into a raw symbol and a C symbol. 1806symxfrm='\1 \2\3 \3' 1807 1808# Transform an extracted symbol line into a proper C declaration 1809global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" 1810 1811# Define system-specific variables. 1812case "$host_os" in 1813aix*) 1814 symcode='[BCDT]' 1815 ;; 1816cygwin* | mingw*) 1817 symcode='[ABCDGISTW]' 1818 ;; 1819hpux*) # Its linker distinguishes data from code symbols 1820 global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" 1821 ;; 1822irix*) 1823 symcode='[BCDEGRST]' 1824 ;; 1825solaris* | sysv5*) 1826 symcode='[BDT]' 1827 ;; 1828sysv4) 1829 symcode='[DFNSTU]' 1830 ;; 1831esac 1832 1833# Handle CRLF in mingw too chain 1834opt_cr= 1835case "$host_os" in 1836mingw*) 1837 opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp 1838 ;; 1839esac 1840 1841# If we're using GNU nm, then use its standard symbol codes. 1842if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then 1843 symcode='[ABCDGISTW]' 1844fi 1845 1846# Try without a prefix undercore, then with it. 1847for ac_symprfx in "" "_"; do 1848 1849 # Write the raw and C identifiers. 1850global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" 1851 1852 # Check to see that the pipe works correctly. 1853 pipe_works=no 1854 $rm conftest* 1855 cat > conftest.c <<EOF 1856#ifdef __cplusplus 1857extern "C" { 1858#endif 1859char nm_test_var; 1860void nm_test_func(){} 1861#ifdef __cplusplus 1862} 1863#endif 1864main(){nm_test_var='a';nm_test_func();return(0);} 1865EOF 1866 1867 echo "$progname:1867: checking if global_symbol_pipe works" >&5 1868 if { (eval echo $progname:1868: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then 1869 # Now try to grab the symbols. 1870 nlist=conftest.nm 1871 if { echo "$progname:1871: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then 1872 1873 # Try sorting and uniquifying the output. 1874 if sort "$nlist" | uniq > "$nlist"T; then 1875 mv -f "$nlist"T "$nlist" 1876 else 1877 rm -f "$nlist"T 1878 fi 1879 1880 # Make sure that we snagged all the symbols we need. 1881 if egrep ' nm_test_var$' "$nlist" >/dev/null; then 1882 if egrep ' nm_test_func$' "$nlist" >/dev/null; then 1883 cat <<EOF > conftest.c 1884#ifdef __cplusplus 1885extern "C" { 1886#endif 1887 1888EOF 1889 # Now generate the symbol file. 1890 eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' 1891 1892 cat <<EOF >> conftest.c 1893#if defined (__STDC__) && __STDC__ 1894# define lt_ptr_t void * 1895#else 1896# define lt_ptr_t char * 1897# define const 1898#endif 1899 1900/* The mapping between symbol names and symbols. */ 1901const struct { 1902 const char *name; 1903 lt_ptr_t address; 1904} 1905lt_preloaded_symbols[] = 1906{ 1907EOF 1908 sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c 1909 cat <<\EOF >> conftest.c 1910 {0, (lt_ptr_t) 0} 1911}; 1912 1913#ifdef __cplusplus 1914} 1915#endif 1916EOF 1917 # Now try linking the two files. 1918 mv conftest.$objext conftstm.$objext 1919 save_LIBS="$LIBS" 1920 save_CFLAGS="$CFLAGS" 1921 LIBS="conftstm.$objext" 1922 CFLAGS="$CFLAGS$no_builtin_flag" 1923 if { (eval echo $progname:1923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then 1924 pipe_works=yes 1925 else 1926 echo "$progname: failed program was:" >&5 1927 cat conftest.c >&5 1928 fi 1929 LIBS="$save_LIBS" 1930 else 1931 echo "cannot find nm_test_func in $nlist" >&5 1932 fi 1933 else 1934 echo "cannot find nm_test_var in $nlist" >&5 1935 fi 1936 else 1937 echo "cannot run $global_symbol_pipe" >&5 1938 fi 1939 else 1940 echo "$progname: failed program was:" >&5 1941 cat conftest.c >&5 1942 fi 1943 $rm conftest* conftst* 1944 1945 # Do not use the global_symbol_pipe unless it works. 1946 if test "$pipe_works" = yes; then 1947 break 1948 else 1949 global_symbol_pipe= 1950 fi 1951done 1952if test "$pipe_works" = yes; then 1953 echo "${ac_t}ok" 1>&6 1954else 1955 echo "${ac_t}failed" 1>&6 1956fi 1957 1958if test -z "$global_symbol_pipe"; then 1959 global_symbol_to_cdecl= 1960fi 1961 1962# Report the final consequences. 1963echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 1964 1965# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in 1966# configure.in, otherwise build static only libraries. 1967case "$host_os" in 1968cygwin* | mingw* | os2*) 1969 if test x$can_build_shared = xyes; then 1970 test x$enable_win32_dll = xno && can_build_shared=no 1971 echo "checking if package supports dlls... $can_build_shared" 1>&6 1972 fi 1973;; 1974esac 1975 1976echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 1977test "$can_build_shared" = "no" && enable_shared=no 1978 1979# On AIX, shared libraries and static libraries use the same namespace, and 1980# are all built from PIC. 1981case "$host_os" in 1982aix3*) 1983 test "$enable_shared" = yes && enable_static=no 1984 if test -n "$RANLIB"; then 1985 archive_cmds="$archive_cmds~\$RANLIB \$lib" 1986 postinstall_cmds='$RANLIB $lib' 1987 fi 1988 ;; 1989 1990aix4*) 1991 test "$enable_shared" = yes && enable_static=no 1992 ;; 1993esac 1994 1995echo "$ac_t$enable_shared" 1>&6 1996 1997# Make sure either enable_shared or enable_static is yes. 1998test "$enable_shared" = yes || enable_static=yes 1999 2000echo "checking whether to build static libraries... $enable_static" 1>&6 2001 2002if test "$hardcode_action" = relink || test "$hardcode_into_libs" = all; then 2003 # Fast installation is not supported 2004 enable_fast_install=no 2005elif test "$shlibpath_overrides_runpath" = yes || 2006 test "$enable_shared" = no; then 2007 # Fast installation is not necessary 2008 enable_fast_install=needless 2009fi 2010 2011# Check whether we must set pic_mode to default 2012test -z "$pic_flag" && pic_mode=default 2013# On Cygwin there's no "real" PIC flag so we must build both object types 2014case "$host_os" in 2015cygwin* | mingw* | os2*) 2016 pic_mode=default 2017 ;; 2018esac 2019if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then 2020 # non-PIC code in shared libraries is not supported 2021 pic_mode=default 2022fi 2023 2024if test "x$enable_dlopen" != xyes; then 2025 enable_dlopen=unknown 2026 enable_dlopen_self=unknown 2027 enable_dlopen_self_static=unknown 2028else 2029if test "X${lt_cv_dlopen+set}" != Xset; then 2030 lt_cv_dlopen=no lt_cv_dlopen_libs= 2031echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 2032echo "$progname:2032: checking for dlopen in -ldl" >&5 2033if test "X${ac_cv_lib_dl_dlopen+set}" = Xset; then 2034 echo $ac_n "(cached) $ac_c" 1>&6 2035else 2036 ac_save_LIBS="$LIBS" 2037LIBS="-ldl $LIBS" 2038cat > conftest.$ac_ext <<EOF 2039#line 2039 "ltconfig" 2040/* Override any gcc2 internal prototype to avoid an error. */ 2041/* We use char because int might match the return type of a gcc2 2042 builtin and then its argument prototype would still apply. */ 2043#ifdef __cplusplus 2044extern "C" 2045#endif 2046char dlopen(); 2047 2048int main() { 2049dlopen() 2050; return 0; } 2051EOF 2052if { (eval echo $progname:2052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then 2053 rm -rf conftest* 2054 ac_cv_lib_dl_dlopen=yes 2055else 2056 echo "$progname: failed program was:" >&5 2057 cat conftest.$ac_ext >&5 2058 rm -rf conftest* 2059 ac_cv_lib_dl_dlopen=no 2060fi 2061rm -f conftest* 2062LIBS="$ac_save_LIBS" 2063 2064fi 2065if test "X$ac_cv_lib_dl_dlopen" = Xyes; then 2066 echo "$ac_t""yes" 1>&6 2067 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" 2068else 2069 echo "$ac_t""no" 1>&6 2070echo $ac_n "checking for dlopen""... $ac_c" 1>&6 2071echo "$progname:2071: checking for dlopen" >&5 2072if test "X${ac_cv_func_dlopen+set}" = Xset; then 2073 echo $ac_n "(cached) $ac_c" 1>&6 2074else 2075 cat > conftest.$ac_ext <<EOF 2076#line 2076 "ltconfig" 2077/* System header to define __stub macros and hopefully few prototypes, 2078 which can conflict with char dlopen(); below. */ 2079#include <assert.h> 2080/* Override any gcc2 internal prototype to avoid an error. */ 2081/* We use char because int might match the return type of a gcc2 2082 builtin and then its argument prototype would still apply. */ 2083#ifdef __cplusplus 2084extern "C" 2085#endif 2086char dlopen(); 2087 2088int main() { 2089 2090/* The GNU C library defines this for functions which it implements 2091 to always fail with ENOSYS. Some functions are actually named 2092 something starting with __ and the normal name is an alias. */ 2093#if defined (__stub_dlopen) || defined (__stub___dlopen) 2094choke me 2095#else 2096dlopen(); 2097#endif 2098 2099; return 0; } 2100EOF 2101if { (eval echo $progname:2101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then 2102 rm -rf conftest* 2103 ac_cv_func_dlopen=yes 2104else 2105 echo "$progname: failed program was:" >&5 2106 cat conftest.$ac_ext >&5 2107 rm -rf conftest* 2108 ac_cv_func_dlopen=no 2109fi 2110rm -f conftest* 2111fi 2112if test "X$ac_cv_func_dlopen" = Xyes; then 2113 echo "$ac_t""yes" 1>&6 2114 lt_cv_dlopen="dlopen" 2115else 2116 echo "$ac_t""no" 1>&6 2117echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 2118echo "$progname:2118: checking for dld_link in -ldld" >&5 2119if test "X${ac_cv_lib_dld_dld_link+set}" = Xset; then 2120 echo $ac_n "(cached) $ac_c" 1>&6 2121else 2122 ac_save_LIBS="$LIBS" 2123LIBS="-ldld $LIBS" 2124cat > conftest.$ac_ext <<EOF 2125#line 2125 "ltconfig" 2126/* Override any gcc2 internal prototype to avoid an error. */ 2127/* We use char because int might match the return type of a gcc2 2128 builtin and then its argument prototype would still apply. */ 2129#ifdef __cplusplus 2130extern "C" 2131#endif 2132char dld_link(); 2133 2134int main() { 2135dld_link() 2136; return 0; } 2137EOF 2138if { (eval echo $progname:2138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then 2139 rm -rf conftest* 2140 ac_cv_lib_dld_dld_link=yes 2141else 2142 echo "$progname: failed program was:" >&5 2143 cat conftest.$ac_ext >&5 2144 rm -rf conftest* 2145 ac_cv_lib_dld_dld_link=no 2146fi 2147rm -f conftest* 2148LIBS="$ac_save_LIBS" 2149 2150fi 2151if test "X$ac_cv_lib_dld_dld_link" = Xyes; then 2152 echo "$ac_t""yes" 1>&6 2153 lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" 2154else 2155 echo "$ac_t""no" 1>&6 2156echo $ac_n "checking for shl_load""... $ac_c" 1>&6 2157echo "$progname:2157: checking for shl_load" >&5 2158if test "X${ac_cv_func_shl_load+set}" = Xset; then 2159 echo $ac_n "(cached) $ac_c" 1>&6 2160else 2161 cat > conftest.$ac_ext <<EOF 2162#line 2162 "ltconfig" 2163/* System header to define __stub macros and hopefully few prototypes, 2164 which can conflict with char shl_load(); below. */ 2165#include <assert.h> 2166/* Override any gcc2 internal prototype to avoid an error. */ 2167/* We use char because int might match the return type of a gcc2 2168 builtin and then its argument prototype would still apply. */ 2169#ifdef __cplusplus 2170extern "C" 2171#endif 2172char shl_load(); 2173 2174int main() { 2175 2176/* The GNU C library defines this for functions which it implements 2177 to always fail with ENOSYS. Some functions are actually named 2178 something starting with __ and the normal name is an alias. */ 2179#if defined (__stub_shl_load) || defined (__stub___shl_load) 2180choke me 2181#else 2182shl_load(); 2183#endif 2184 2185; return 0; } 2186EOF 2187if { (eval echo $progname:2187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then 2188 rm -rf conftest* 2189 ac_cv_func_shl_load=yes 2190else 2191 echo "$progname: failed program was:" >&5 2192 cat conftest.$ac_ext >&5 2193 rm -rf conftest* 2194 ac_cv_func_shl_load=no 2195fi 2196rm -f conftest* 2197fi 2198 2199if test "X$ac_cv_func_shl_load" = Xyes; then 2200 echo "$ac_t""yes" 1>&6 2201 lt_cv_dlopen="shl_load" 2202else 2203 echo "$ac_t""no" 1>&6 2204echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 2205echo "$progname:2205: checking for shl_load in -ldld" >&5 2206if test "X${ac_cv_lib_dld_shl_load+set}" = Xset; then 2207 echo $ac_n "(cached) $ac_c" 1>&6 2208else 2209 ac_save_LIBS="$LIBS" 2210LIBS="-ldld $LIBS" 2211cat > conftest.$ac_ext <<EOF 2212#line 2212 "ltconfig" 2213#include "confdefs.h" 2214/* Override any gcc2 internal prototype to avoid an error. */ 2215/* We use char because int might match the return type of a gcc2 2216 builtin and then its argument prototype would still apply. */ 2217#ifdef __cplusplus 2218extern "C" 2219#endif 2220char shl_load(); 2221 2222int main() { 2223shl_load() 2224; return 0; } 2225EOF 2226if { (eval echo $progname:2226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then 2227 rm -rf conftest* 2228 ac_cv_lib_dld_shl_load=yes 2229else 2230 echo "$progname: failed program was:" >&5 2231 cat conftest.$ac_ext >&5 2232 rm -rf conftest* 2233 ac_cv_lib_dld_shl_load=no 2234fi 2235rm -f conftest* 2236LIBS="$ac_save_LIBS" 2237 2238fi 2239if test "X$ac_cv_lib_dld_shl_load" = Xyes; then 2240 echo "$ac_t""yes" 1>&6 2241 lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" 2242else 2243 echo "$ac_t""no" 1>&6 2244fi 2245 2246 2247fi 2248 2249 2250fi 2251 2252 2253fi 2254 2255 2256fi 2257 2258fi 2259 2260 if test "x$lt_cv_dlopen" != xno; then 2261 enable_dlopen=yes 2262 fi 2263 2264 case "$lt_cv_dlopen" in 2265 dlopen) 2266for ac_hdr in dlfcn.h; do 2267ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` 2268echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 2269echo "$progname:2269: checking for $ac_hdr" >&5 2270if eval "test \"`echo 'X$''{'ac_cv_header_$ac_safe'+set}'`\" = Xset"; then 2271 echo $ac_n "(cached) $ac_c" 1>&6 2272else 2273 cat > conftest.$ac_ext <<EOF 2274#line 2274 "ltconfig" 2275#include <$ac_hdr> 2276int fnord = 0; 2277EOF 2278ac_try="$ac_compile >/dev/null 2>conftest.out" 2279{ (eval echo $progname:2279: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } 2280ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` 2281if test -z "$ac_err"; then 2282 rm -rf conftest* 2283 eval "ac_cv_header_$ac_safe=yes" 2284else 2285 echo "$ac_err" >&5 2286 echo "$progname: failed program was:" >&5 2287 cat conftest.$ac_ext >&5 2288 rm -rf conftest* 2289 eval "ac_cv_header_$ac_safe=no" 2290fi 2291rm -f conftest* 2292fi 2293if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then 2294 echo "$ac_t""yes" 1>&6 2295else 2296 echo "$ac_t""no" 1>&6 2297fi 2298done 2299 2300 if test "x$ac_cv_header_dlfcn_h" = xyes; then 2301 CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" 2302 fi 2303 eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" 2304 LIBS="$lt_cv_dlopen_libs $LIBS" 2305 2306 echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 2307echo "$progname:2307: checking whether a program can dlopen itself" >&5 2308if test "X${lt_cv_dlopen_self+set}" = Xset; then 2309 echo $ac_n "(cached) $ac_c" 1>&6 2310else 2311 if test "$cross_compiling" = yes; then 2312 lt_cv_dlopen_self=cross 2313 else 2314 cat > conftest.c <<EOF 2315#line 2315 "ltconfig" 2316 2317#if HAVE_DLFCN_H 2318#include <dlfcn.h> 2319#endif 2320 2321#include <stdio.h> 2322 2323#ifdef RTLD_GLOBAL 2324# define LTDL_GLOBAL RTLD_GLOBAL 2325#else 2326# ifdef DL_GLOBAL 2327# define LTDL_GLOBAL DL_GLOBAL 2328# else 2329# define LTDL_GLOBAL 0 2330# endif 2331#endif 2332 2333/* We may have to define LTDL_LAZY_OR_NOW in the command line if we 2334 find out it does not work in some platform. */ 2335#ifndef LTDL_LAZY_OR_NOW 2336# ifdef RTLD_LAZY 2337# define LTDL_LAZY_OR_NOW RTLD_LAZY 2338# else 2339# ifdef DL_LAZY 2340# define LTDL_LAZY_OR_NOW DL_LAZY 2341# else 2342# ifdef RTLD_NOW 2343# define LTDL_LAZY_OR_NOW RTLD_NOW 2344# else 2345# ifdef DL_NOW 2346# define LTDL_LAZY_OR_NOW DL_NOW 2347# else 2348# define LTDL_LAZY_OR_NOW 0 2349# endif 2350# endif 2351# endif 2352# endif 2353#endif 2354 2355fnord() { int i=42;} 2356main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); 2357 if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); 2358 if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 2359 2360EOF 2361if { (eval echo $progname:2361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null 2362then 2363 lt_cv_dlopen_self=yes 2364else 2365 echo "$progname: failed program was:" >&5 2366 cat conftest.$ac_ext >&5 2367 rm -fr conftest* 2368 lt_cv_dlopen_self=no 2369fi 2370rm -fr conftest* 2371fi 2372 2373fi 2374 2375echo "$ac_t""$lt_cv_dlopen_self" 1>&6 2376 2377 if test "$lt_cv_dlopen_self" = yes; then 2378 LDFLAGS="$LDFLAGS $link_static_flag" 2379 echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 2380echo "$progname:2380: checking whether a statically linked program can dlopen itself" >&5 2381if test "X${lt_cv_dlopen_self_static+set}" = Xset; then 2382 echo $ac_n "(cached) $ac_c" 1>&6 2383else 2384 if test "$cross_compiling" = yes; then 2385 lt_cv_dlopen_self_static=cross 2386 else 2387 cat > conftest.c <<EOF 2388#line 2388 "ltconfig" 2389 2390#if HAVE_DLFCN_H 2391#include <dlfcn.h> 2392#endif 2393 2394#include <stdio.h> 2395 2396#ifdef RTLD_GLOBAL 2397# define LTDL_GLOBAL RTLD_GLOBAL 2398#else 2399# ifdef DL_GLOBAL 2400# define LTDL_GLOBAL DL_GLOBAL 2401# else 2402# define LTDL_GLOBAL 0 2403# endif 2404#endif 2405 2406/* We may have to define LTDL_LAZY_OR_NOW in the command line if we 2407 find out it does not work in some platform. */ 2408#ifndef LTDL_LAZY_OR_NOW 2409# ifdef RTLD_LAZY 2410# define LTDL_LAZY_OR_NOW RTLD_LAZY 2411# else 2412# ifdef DL_LAZY 2413# define LTDL_LAZY_OR_NOW DL_LAZY 2414# else 2415# ifdef RTLD_NOW 2416# define LTDL_LAZY_OR_NOW RTLD_NOW 2417# else 2418# ifdef DL_NOW 2419# define LTDL_LAZY_OR_NOW DL_NOW 2420# else 2421# define LTDL_LAZY_OR_NOW 0 2422# endif 2423# endif 2424# endif 2425# endif 2426#endif 2427 2428fnord() { int i=42;} 2429main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); 2430 if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); 2431 if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 2432 2433EOF 2434if { (eval echo $progname:2434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null 2435then 2436 lt_cv_dlopen_self_static=yes 2437else 2438 echo "$progname: failed program was:" >&5 2439 cat conftest.$ac_ext >&5 2440 rm -fr conftest* 2441 lt_cv_dlopen_self_static=no 2442fi 2443rm -fr conftest* 2444fi 2445 2446fi 2447 2448echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 2449fi 2450 ;; 2451 esac 2452 2453 case "$lt_cv_dlopen_self" in 2454 yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; 2455 *) enable_dlopen_self=unknown ;; 2456 esac 2457 2458 case "$lt_cv_dlopen_self_static" in 2459 yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; 2460 *) enable_dlopen_self_static=unknown ;; 2461 esac 2462fi 2463 2464# Copy echo and quote the copy, instead of the original, because it is 2465# used later. 2466ltecho="$echo" 2467if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then 2468 ltecho="$CONFIG_SHELL \$0 --fallback-echo" 2469fi 2470LTSHELL="$SHELL" 2471 2472LTCONFIG_VERSION="$VERSION" 2473 2474# Only quote variables if we're using ltmain.sh. 2475case "$ltmain" in 2476*.sh) 2477 # Now quote all the things that may contain metacharacters. 2478 for var in ltecho old_AR old_CC old_CFLAGS old_CPPFLAGS \ 2479 old_MAGIC old_LD old_LDFLAGS old_LIBS \ 2480 old_LN_S old_NM old_RANLIB old_STRIP \ 2481 old_AS old_DLLTOOL old_OBJDUMP \ 2482 old_OBJEXT old_EXEEXT old_reload_flag \ 2483 old_deplibs_check_method old_file_magic_cmd \ 2484 AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ 2485 reload_flag reload_cmds wl \ 2486 pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ 2487 thread_safe_flag_spec whole_archive_flag_spec libname_spec \ 2488 library_names_spec soname_spec \ 2489 RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ 2490 old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ 2491 postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ 2492 old_striplib striplib file_magic_cmd export_symbols_cmds \ 2493 deplibs_check_method allow_undefined_flag no_undefined_flag \ 2494 finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ 2495 hardcode_libdir_flag_spec hardcode_libdir_separator \ 2496 sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ 2497 compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do 2498 2499 case "$var" in 2500 reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ 2501 old_postinstall_cmds | old_postuninstall_cmds | \ 2502 export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ 2503 extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ 2504 postinstall_cmds | postuninstall_cmds | \ 2505 finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) 2506 # Double-quote double-evaled strings. 2507 eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ### testsuite: skip nested quoting test 2508 ;; 2509 *) 2510 eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ### testsuite: skip nested quoting test 2511 ;; 2512 esac 2513 done 2514 2515 case "$ltecho" in 2516 *'\$0 --fallback-echo"') 2517 ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` 2518 ;; 2519 esac 2520 2521 trap "$rm \"$ofile\"; exit 1" 1 2 15 2522 echo "creating $ofile" 2523 $rm "$ofile" 2524 cat <<EOF > "$ofile" 2525#! $SHELL 2526 2527# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. 2528# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) 2529# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. 2530# 2531# Copyright (C) 1996-2000 Free Software Foundation, Inc. 2532# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 2533# 2534# This program is free software; you can redistribute it and/or modify 2535# it under the terms of the GNU General Public License as published by 2536# the Free Software Foundation; either version 2 of the License, or 2537# (at your option) any later version. 2538# 2539# This program is distributed in the hope that it will be useful, but 2540# WITHOUT ANY WARRANTY; without even the implied warranty of 2541# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2542# General Public License for more details. 2543# 2544# You should have received a copy of the GNU General Public License 2545# along with this program; if not, write to the Free Software 2546# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 2547# 2548# As a special exception to the GNU General Public License, if you 2549# distribute this file as part of a program that contains a 2550# configuration script generated by Autoconf, you may include it under 2551# the same distribution terms that you use for the rest of that program. 2552 2553# Sed that helps us avoid accidentally triggering echo(1) options like -n. 2554Xsed="sed -e s/^X//" 2555 2556# The HP-UX ksh and POSIX shell print the target directory to stdout 2557# if CDPATH is set. 2558if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi 2559 2560### BEGIN LIBTOOL CONFIG 2561EOF 2562 cfgfile="$ofile" 2563 ;; 2564 2565*) 2566 # Double-quote the variables that need it (for aesthetics). 2567 for var in old_AR old_CC old_CFLAGS old_CPPFLAGS \ 2568 old_MAGIC old_LD old_LDFLAGS old_LIBS \ 2569 old_LN_S old_NM old_RANLIB old_STRIP \ 2570 old_AS old_DLLTOOL old_OBJDUMP \ 2571 old_OBJEXT old_EXEEXT old_reload_flag \ 2572 old_deplibs_check_method old_file_magic_cmd; do 2573 eval "$var=\\\"\$var\\\"" 2574 done 2575 2576 # Just create a config file. 2577 cfgfile="$ofile.cfg" 2578 trap "$rm \"$cfgfile\"; exit 1" 1 2 15 2579 echo "creating $cfgfile" 2580 $rm "$cfgfile" 2581 cat <<EOF > "$cfgfile" 2582# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. 2583# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) 2584EOF 2585 ;; 2586esac 2587 2588cat <<EOF >> "$cfgfile" 2589# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: 2590# 2591# AR=$old_AR CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ 2592# MAGIC=$old_MAGIC LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ 2593# LN_S=$old_LN_S NM=$old_NM RANLIB=$old_RANLIB STRIP=$old_STRIP \\ 2594# AS=$old_AS DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP \\ 2595# objext=$old_OBJEXT exeext=$old_EXEEXT reload_flag=$old_reload_flag \\ 2596# deplibs_check_method=$old_deplibs_check_method file_magic_cmd=$old_file_magic_cmd \\ 2597# $0$ltconfig_args 2598# 2599# Compiler and other test output produced by $progname, useful for 2600# debugging $progname, is in ./config.log if it exists. 2601# The version of $progname that generated this script. 2602LTCONFIG_VERSION=$LTCONFIG_VERSION 2603 2604# Shell to use when invoking shell scripts. 2605SHELL=$LTSHELL 2606 2607# Whether or not to build shared libraries. 2608build_libtool_libs=$enable_shared 2609 2610# Whether or not to build static libraries. 2611build_old_libs=$enable_static 2612 2613# Whether or not to optimize for fast installation. 2614fast_install=$enable_fast_install 2615 2616# The host system. 2617host_alias=$host_alias 2618host=$host 2619 2620# An echo program that does not interpret backslashes. 2621echo=$ltecho 2622 2623# The archiver. 2624AR=$AR 2625 2626# The default C compiler. 2627CC=$CC 2628 2629# The linker used to build libraries. 2630LD=$LD 2631 2632# Whether we need hard or soft links. 2633LN_S=$LN_S 2634 2635# A BSD-compatible nm program. 2636NM=$NM 2637 2638# A symbol stripping program 2639STRIP=$STRIP 2640 2641# Used to examine libraries when file_magic_cmd begins "file" 2642MAGIC=$MAGIC 2643 2644# Used on cygwin: DLL creation program. 2645DLLTOOL="$DLLTOOL" 2646 2647# Used on cygwin: object dumper. 2648OBJDUMP="$OBJDUMP" 2649 2650# Used on cygwin: assembler. 2651AS="$AS" 2652 2653# The name of the directory that contains temporary libtool files. 2654objdir=$objdir 2655 2656# How to create reloadable object files. 2657reload_flag=$reload_flag 2658reload_cmds=$reload_cmds 2659 2660# How to pass a linker flag through the compiler. 2661wl=$wl 2662 2663# Object file suffix (normally "o"). 2664objext="$objext" 2665 2666# Old archive suffix (normally "a"). 2667libext="$libext" 2668 2669# Executable file suffix (normally ""). 2670exeext="$exeext" 2671 2672# Additional compiler flags for building library objects. 2673pic_flag=$pic_flag 2674pic_mode=$pic_mode 2675 2676# Does compiler simultaneously support -c and -o options? 2677compiler_c_o=$compiler_c_o 2678 2679# Can we write directly to a .lo ? 2680compiler_o_lo=$compiler_o_lo 2681 2682# Must we lock files when doing compilation ? 2683need_locks=$need_locks 2684 2685# Do we need the lib prefix for modules? 2686need_lib_prefix=$need_lib_prefix 2687 2688# Do we need a version for libraries? 2689need_version=$need_version 2690 2691# Whether dlopen is supported. 2692dlopen_support=$enable_dlopen 2693 2694# Whether dlopen of programs is supported. 2695dlopen_self=$enable_dlopen_self 2696 2697# Whether dlopen of statically linked programs is supported. 2698dlopen_self_static=$enable_dlopen_self_static 2699 2700# Compiler flag to prevent dynamic linking. 2701link_static_flag=$link_static_flag 2702 2703# Compiler flag to turn off builtin functions. 2704no_builtin_flag=$no_builtin_flag 2705 2706# Compiler flag to allow reflexive dlopens. 2707export_dynamic_flag_spec=$export_dynamic_flag_spec 2708 2709# Compiler flag to generate shared objects directly from archives. 2710whole_archive_flag_spec=$whole_archive_flag_spec 2711 2712# Compiler flag to generate thread-safe objects. 2713thread_safe_flag_spec=$thread_safe_flag_spec 2714 2715# Library versioning type. 2716version_type=$version_type 2717 2718# Format of library name prefix. 2719libname_spec=$libname_spec 2720 2721# List of archive names. First name is the real one, the rest are links. 2722# The last name is the one that the linker finds with -lNAME. 2723library_names_spec=$library_names_spec 2724 2725# The coded name of the library, if different from the real name. 2726soname_spec=$soname_spec 2727 2728# Commands used to build and install an old-style archive. 2729RANLIB=$RANLIB 2730old_archive_cmds=$old_archive_cmds 2731old_postinstall_cmds=$old_postinstall_cmds 2732old_postuninstall_cmds=$old_postuninstall_cmds 2733 2734# Create an old-style archive from a shared archive. 2735old_archive_from_new_cmds=$old_archive_from_new_cmds 2736 2737# Create a temporary old-style archive to link instead of a shared archive. 2738old_archive_from_expsyms_cmds=$old_archive_from_expsyms_cmds 2739 2740# Commands used to build and install a shared archive. 2741archive_cmds=$archive_cmds 2742archive_expsym_cmds=$archive_expsym_cmds 2743postinstall_cmds=$postinstall_cmds 2744postuninstall_cmds=$postuninstall_cmds 2745 2746# Commands to strip libraries. 2747old_striplib=$old_striplib 2748striplib=$striplib 2749 2750# Method to check whether dependent libraries are shared objects. 2751deplibs_check_method=$deplibs_check_method 2752 2753# Command to use when deplibs_check_method == file_magic. 2754file_magic_cmd=$file_magic_cmd 2755 2756# Flag that allows shared libraries with undefined symbols to be built. 2757allow_undefined_flag=$allow_undefined_flag 2758 2759# Flag that forces no undefined symbols. 2760no_undefined_flag=$no_undefined_flag 2761 2762# Commands used to finish a libtool library installation in a directory. 2763finish_cmds=$finish_cmds 2764 2765# Same as above, but a single script fragment to be evaled but not shown. 2766finish_eval=$finish_eval 2767 2768# Take the output of nm and produce a listing of raw symbols and C names. 2769global_symbol_pipe=$global_symbol_pipe 2770 2771# Transform the output of nm in a proper C declaration 2772global_symbol_to_cdecl=$global_symbol_to_cdecl 2773 2774# This is the shared library runtime path variable. 2775runpath_var=$runpath_var 2776 2777# This is the shared library path variable. 2778shlibpath_var=$shlibpath_var 2779 2780# Is shlibpath searched before the hard-coded library search path? 2781shlibpath_overrides_runpath=$shlibpath_overrides_runpath 2782 2783# How to hardcode a shared library path into an executable. 2784hardcode_action=$hardcode_action 2785 2786# Whether we should hardcode library paths into libraries. 2787hardcode_into_libs=$hardcode_into_libs 2788 2789# Flag to hardcode \$libdir into a binary during linking. 2790# This must work even if \$libdir does not exist. 2791hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec 2792 2793# Whether we need a single -rpath flag with a separated argument. 2794hardcode_libdir_separator=$hardcode_libdir_separator 2795 2796# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the 2797# resulting binary. 2798hardcode_direct=$hardcode_direct 2799 2800# Set to yes if using the -LDIR flag during linking hardcodes DIR into the 2801# resulting binary. 2802hardcode_minus_L=$hardcode_minus_L 2803 2804# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into 2805# the resulting binary. 2806hardcode_shlibpath_var=$hardcode_shlibpath_var 2807 2808# Whether libtool must link a program against all its dependency libraries. 2809link_all_deplibs=$link_all_deplibs 2810 2811# Compile-time system search path for libraries 2812sys_lib_search_path_spec=$sys_lib_search_path_spec 2813 2814# Run-time system search path for libraries 2815sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec 2816 2817# Fix the shell variable \$srcfile for the compiler. 2818fix_srcfile_path="$fix_srcfile_path" 2819 2820# Set to yes if exported symbols are required. 2821always_export_symbols=$always_export_symbols 2822 2823# The commands to list exported symbols. 2824export_symbols_cmds=$export_symbols_cmds 2825 2826# The commands to extract the exported symbol list from a shared archive. 2827extract_expsyms_cmds=$extract_expsyms_cmds 2828 2829# Symbols that should not be listed in the preloaded symbols. 2830exclude_expsyms=$exclude_expsyms 2831 2832# Symbols that must always be exported. 2833include_expsyms=$include_expsyms 2834 2835EOF 2836 2837case "$ltmain" in 2838*.sh) 2839 echo '### END LIBTOOL CONFIG' >> "$ofile" 2840 echo >> "$ofile" 2841 case "$host_os" in 2842 aix3*) 2843 cat <<\EOF >> "$ofile" 2844 2845# AIX sometimes has problems with the GCC collect2 program. For some 2846# reason, if we set the COLLECT_NAMES environment variable, the problems 2847# vanish in a puff of smoke. 2848if test "X${COLLECT_NAMES+set}" != Xset; then 2849 COLLECT_NAMES= 2850 export COLLECT_NAMES 2851fi 2852EOF 2853 ;; 2854 esac 2855 case "$host" in 2856 *-*-cygwin* | *-*-mingw* | *-*-os2*) 2857 cat <<'EOF' >> "$ofile" 2858 # This is a source program that is used to create dlls on Windows 2859 # Don't remove nor modify the starting and closing comments 2860# /* ltdll.c starts here */ 2861# #define WIN32_LEAN_AND_MEAN 2862# #include <windows.h> 2863# #undef WIN32_LEAN_AND_MEAN 2864# #include <stdio.h> 2865# 2866# #ifndef __CYGWIN__ 2867# # ifdef __CYGWIN32__ 2868# # define __CYGWIN__ __CYGWIN32__ 2869# # endif 2870# #endif 2871# 2872# #ifdef __cplusplus 2873# extern "C" { 2874# #endif 2875# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); 2876# #ifdef __cplusplus 2877# } 2878# #endif 2879# 2880# #ifdef __CYGWIN__ 2881# #include <cygwin/cygwin_dll.h> 2882# DECLARE_CYGWIN_DLL( DllMain ); 2883# #endif 2884# HINSTANCE __hDllInstance_base; 2885# 2886# BOOL APIENTRY 2887# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) 2888# { 2889# __hDllInstance_base = hInst; 2890# return TRUE; 2891# } 2892# /* ltdll.c ends here */ 2893 # This is a source program that is used to create import libraries 2894 # on Windows for dlls which lack them. Don't remove nor modify the 2895 # starting and closing comments 2896# /* impgen.c starts here */ 2897# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. 2898# 2899# This file is part of GNU libtool. 2900# 2901# This program is free software; you can redistribute it and/or modify 2902# it under the terms of the GNU General Public License as published by 2903# the Free Software Foundation; either version 2 of the License, or 2904# (at your option) any later version. 2905# 2906# This program is distributed in the hope that it will be useful, 2907# but WITHOUT ANY WARRANTY; without even the implied warranty of 2908# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2909# GNU General Public License for more details. 2910# 2911# You should have received a copy of the GNU General Public License 2912# along with this program; if not, write to the Free Software 2913# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 2914# */ 2915# 2916# #include <stdio.h> /* for printf() */ 2917# #include <unistd.h> /* for open(), lseek(), read() */ 2918# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ 2919# #include <string.h> /* for strdup() */ 2920# 2921# /* O_BINARY isn't required (or even defined sometimes) under Unix */ 2922# #ifndef O_BINARY 2923# #define O_BINARY 0 2924# #endif 2925# 2926# static unsigned int 2927# pe_get16 (fd, offset) 2928# int fd; 2929# int offset; 2930# { 2931# unsigned char b[2]; 2932# lseek (fd, offset, SEEK_SET); 2933# read (fd, b, 2); 2934# return b[0] + (b[1]<<8); 2935# } 2936# 2937# static unsigned int 2938# pe_get32 (fd, offset) 2939# int fd; 2940# int offset; 2941# { 2942# unsigned char b[4]; 2943# lseek (fd, offset, SEEK_SET); 2944# read (fd, b, 4); 2945# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); 2946# } 2947# 2948# static unsigned int 2949# pe_as32 (ptr) 2950# void *ptr; 2951# { 2952# unsigned char *b = ptr; 2953# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); 2954# } 2955# 2956# int 2957# main (argc, argv) 2958# int argc; 2959# char *argv[]; 2960# { 2961# int dll; 2962# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; 2963# unsigned long export_rva, export_size, nsections, secptr, expptr; 2964# unsigned long name_rvas, nexp; 2965# unsigned char *expdata, *erva; 2966# char *filename, *dll_name; 2967# 2968# filename = argv[1]; 2969# 2970# dll = open(filename, O_RDONLY|O_BINARY); 2971# if (!dll) 2972# return 1; 2973# 2974# dll_name = filename; 2975# 2976# for (i=0; filename[i]; i++) 2977# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') 2978# dll_name = filename + i +1; 2979# 2980# pe_header_offset = pe_get32 (dll, 0x3c); 2981# opthdr_ofs = pe_header_offset + 4 + 20; 2982# num_entries = pe_get32 (dll, opthdr_ofs + 92); 2983# 2984# if (num_entries < 1) /* no exports */ 2985# return 1; 2986# 2987# export_rva = pe_get32 (dll, opthdr_ofs + 96); 2988# export_size = pe_get32 (dll, opthdr_ofs + 100); 2989# nsections = pe_get16 (dll, pe_header_offset + 4 +2); 2990# secptr = (pe_header_offset + 4 + 20 + 2991# pe_get16 (dll, pe_header_offset + 4 + 16)); 2992# 2993# expptr = 0; 2994# for (i = 0; i < nsections; i++) 2995# { 2996# char sname[8]; 2997# unsigned long secptr1 = secptr + 40 * i; 2998# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); 2999# unsigned long vsize = pe_get32 (dll, secptr1 + 16); 3000# unsigned long fptr = pe_get32 (dll, secptr1 + 20); 3001# lseek(dll, secptr1, SEEK_SET); 3002# read(dll, sname, 8); 3003# if (vaddr <= export_rva && vaddr+vsize > export_rva) 3004# { 3005# expptr = fptr + (export_rva - vaddr); 3006# if (export_rva + export_size > vaddr + vsize) 3007# export_size = vsize - (export_rva - vaddr); 3008# break; 3009# } 3010# } 3011# 3012# expdata = (unsigned char*)malloc(export_size); 3013# lseek (dll, expptr, SEEK_SET); 3014# read (dll, expdata, export_size); 3015# erva = expdata - export_rva; 3016# 3017# nexp = pe_as32 (expdata+24); 3018# name_rvas = pe_as32 (expdata+32); 3019# 3020# printf ("EXPORTS\n"); 3021# for (i = 0; i<nexp; i++) 3022# { 3023# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); 3024# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); 3025# } 3026# 3027# return 0; 3028# } 3029# /* impgen.c ends here */ 3030 3031EOF 3032 ;; 3033 esac 3034 3035 3036 # Append the ltmain.sh script. 3037 sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) 3038 # We use sed instead of cat because bash on DJGPP gets confused if 3039 # if finds mixed CR/LF and LF-only lines. Since sed operates in 3040 # text mode, it properly converts lines to CR/LF. This bash problem 3041 # is reportedly fixed, but why not run on old versions too? 3042 3043 chmod +x "$ofile" 3044 ;; 3045 3046*) 3047 # Compile the libtool program. 3048 echo "FIXME: would compile $ltmain" 3049 ;; 3050esac 3051 3052test -n "$cache_file" || exit 0 3053 3054# AC_CACHE_SAVE 3055trap '' 1 2 15 3056cat > confcache <<\EOF 3057# This file is a shell script that caches the results of configure 3058# tests run on this system so they can be shared between configure 3059# scripts and configure runs. It is not useful on other systems. 3060# If it contains results you don't want to keep, you may remove or edit it. 3061# 3062# By default, configure uses ./config.cache as the cache file, 3063# creating it if it does not exist already. You can give configure 3064# the --cache-file=FILE option to use a different cache file; that is 3065# what configure does when it calls configure scripts in 3066# subdirectories, so they share the cache. 3067# Giving --cache-file=/dev/null disables caching, for debugging configure. 3068# config.status only pays attention to the cache file if you give it the 3069# --recheck option to rerun configure. 3070# 3071EOF 3072# The following way of writing the cache mishandles newlines in values, 3073# but we know of no workaround that is simple, portable, and efficient. 3074# So, don't put newlines in cache variables' values. 3075# Ultrix sh set writes to stderr and can't be redirected directly, 3076# and sets the high bit in the cache file unless we assign to the vars. 3077(set) 2>&1 | 3078 case `(ac_space=' '; set | grep ac_space) 2>&1` in 3079 *ac_space=\ *) 3080 # `set' does not quote correctly, so add quotes (double-quote substitution 3081 # turns \\\\ into \\, and sed turns \\ into \). 3082 sed -n \ 3083 -e "s/'/'\\\\''/g" \ 3084 -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" 3085 ;; 3086 *) 3087 # `set' quotes correctly as required by POSIX, so do not add quotes. 3088 sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' 3089 ;; 3090 esac >> confcache 3091if cmp -s $cache_file confcache; then 3092 : 3093else 3094 if test -w $cache_file; then 3095 echo "updating cache $cache_file" 3096 cat confcache > $cache_file 3097 else 3098 echo "not updating unwritable cache $cache_file" 3099 fi 3100fi 3101rm -f confcache 3102 3103exit 0 3104 3105# Local Variables: 3106# mode:shell-script 3107# sh-indentation:2 3108# End: 3109