ltconfig 84.9 KB
Newer Older
Jason Merrill committed
1 2 3
#! /bin/sh

# ltconfig - Create a system-specific libtool.
4
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
Jason Merrill committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.

# A lot of this script is taken from autoconf-2.10.

#  
Jeff Law committed
28 29
# Check that we are running under the correct shell.
SHELL=${CONFIG_SHELL-/bin/sh}
30 31
echo=echo
if test "X$1" = X--no-reexec; then
#  
Jeff Law committed
32 33
  # Discard the --no-reexec flag, and continue.
  shift
34 35 36 37 38 39 40
elif test "X$1" = X--fallback-echo; then
  # used as fallback echo
  shift
  cat <<EOF
$*
EOF
  exit 0
41 42 43 44
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
  # Yippee, $echo works!
  :
else
#  
Jeff Law committed
45 46 47 48
  # Restart under the correct shell.
  exec "$SHELL" "$0" --no-reexec ${1+"$@"}
fi

49 50 51 52 53 54 55 56 57 58
# Find the correct PATH separator.  Usually this is `:', but
# DJGPP uses `;' like DOS.
if test "X${PATH_SEPARATOR+set}" != "Xset"; then
  UNAME=${UNAME-`uname 2>/dev/null`}
  case X$UNAME in
    *-DOS) PATH_SEPARATOR=';' ;;
    *)     PATH_SEPARATOR=':' ;;
  esac
fi

#  
Jeff Law committed
59 60 61 62
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi

63 64 65 66 67 68 69 70 71 72 73 74 75 76
if test "X${echo_test_string+set}" != "Xset"; then
  # find a string as large as possible, as long as the shell can cope with it
  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
       echo_test_string="`eval $cmd`" &&
       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
      break
    fi
  done
fi

if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
   test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
#  
Jeff Law committed
77 78 79 80 81
  # The Solaris, AIX, and Digital Unix default echo programs unquote
  # backslashes.  This makes it impossible to quote backslashes using
  #   echo "$something" | sed 's/\\/\\\\/g'
  #
  # So, first we look for a working echo in the user's PATH.
82 83

  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
#  
Jeff Law committed
84
  for dir in $PATH /usr/ucb; do
85 86 87
    if test -f $dir/echo &&
       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
       test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
#  
Jeff Law committed
88 89 90 91 92 93 94 95
      echo="$dir/echo"
      break
    fi
  done
  IFS="$save_ifs"

  if test "X$echo" = Xecho; then
    # We didn't find a better echo, so look for alternatives.
96 97
    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
       test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
#  
Jeff Law committed
98 99
      # This shell has a builtin print -r that does the trick.
      echo='print -r'
100 101
    elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
      # If we have ksh, try running ltconfig again with it.
102 103
      ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
      export ORIGINAL_CONFIG_SHELL
104 105 106
      CONFIG_SHELL=/bin/ksh
      export CONFIG_SHELL
      exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
#  
Jeff Law committed
107 108
    else
      # Try using printf.
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
      echo='printf "%s\n"'
      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
	 test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
	# Cool, printf works
	:
      elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
	   test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
	CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
	export CONFIG_SHELL
	SHELL="$CONFIG_SHELL"
	export SHELL
	echo="$CONFIG_SHELL $0 --fallback-echo"
      elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
	   test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
	echo="$CONFIG_SHELL $0 --fallback-echo"
      else
	# maybe with a smaller string...
	prev=:

	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
	    break
	  fi
	  prev="$cmd"
	done

	if test "$prev" != 'sed 50q "$0"'; then
	  echo_test_string=`eval $prev`
	  export echo_test_string
	  exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
	else
	  # Oops.  We lost completely, so just stick with echo.
	  echo=echo
	fi
#  
Jeff Law committed
143 144 145 146 147 148 149 150 151 152 153 154 155
      fi
    fi
  fi
fi

# Sed substitution that helps us do robust quoting.  It backslashifies
# metacharacters that are still active within double-quoted strings.
Xsed='sed -e s/^X//'
sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'

# Same as above, but do not quote variable references.
double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'

156 157 158 159
# Sed substitution to delay expansion of an escaped shell variable in a
# double_quote_subst'ed string.
delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'

Jason Merrill committed
160
# The name of this program.
#  
Jeff Law committed
161
progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
Jason Merrill committed
162 163 164 165

# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
166 167
VERSION=1.2f
TIMESTAMP=" (1.385 1999/03/15 17:24:54)"
Jason Merrill committed
168
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
#  
Jeff Law committed
169
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
Jason Merrill committed
170 171 172 173 174
rm="rm -f"

help="Try \`$progname --help' for more information."

# Global variables:
#  
Jeff Law committed
175
default_ofile=libtool
Jason Merrill committed
176 177 178 179
can_build_shared=yes
enable_shared=yes
# All known linkers require a `.a' archive for static linking.
enable_static=yes
180 181
enable_fast_install=yes
enable_dlopen=unknown
Jason Merrill committed
182 183 184 185 186 187 188
ltmain=
silent=
srcdir=
ac_config_guess=
ac_config_sub=
host=
nonopt=
#  
Jeff Law committed
189
ofile="$default_ofile"
Jason Merrill committed
190 191 192
verify_host=yes
with_gcc=no
with_gnu_ld=no
193 194
need_locks=yes
ac_ext=c
195 196
objext=o
libext=a
197
cache_file=
Jason Merrill committed
198 199 200 201 202 203 204

old_AR="$AR"
old_CC="$CC"
old_CFLAGS="$CFLAGS"
old_CPPFLAGS="$CPPFLAGS"
old_LD="$LD"
old_LN_S="$LN_S"
#  
Jeff Law committed
205
old_NM="$NM"
Jason Merrill committed
206
old_RANLIB="$RANLIB"
#  
Jeff Law committed
207 208
old_DLLTOOL="$DLLTOOL"
old_AS="$AS"
Jason Merrill committed
209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228

# Parse the command line options.
args=
prev=
for option
do
  case "$option" in
  -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
  *) optarg= ;;
  esac

  # If the previous option needs an argument, assign it.
  if test -n "$prev"; then
    eval "$prev=\$option"
    prev=
    continue
  fi

  case "$option" in
  --help) cat <<EOM
229
Usage: $progname [OPTION]... [HOST [LTMAIN]]
Jason Merrill committed
230 231 232

Generate a system-specific libtool script.

#  
Jeff Law committed
233
    --debug                enable verbose shell tracing
Jason Merrill committed
234 235
    --disable-shared       do not build shared libraries
    --disable-static       do not build static libraries
236 237 238
    --disable-fast-install do not optimize for fast installation
    --enable-dlopen        enable dlopen support
    --enable-dlopen-self   enable support for dlopening programs
Jason Merrill committed
239 240
    --help                 display this help and exit
    --no-verify            do not verify that HOST is a valid host type
#  
Jeff Law committed
241
-o, --output=FILE          specify the output file [default=$default_ofile]
Jason Merrill committed
242
    --quiet                same as \`--silent'
#  
Jeff Law committed
243
    --silent               do not print informational messages
Jason Merrill committed
244 245 246 247
    --srcdir=DIR           find \`config.guess' in DIR
    --version              output version information and exit
    --with-gcc             assume that the GNU C compiler will be used
    --with-gnu-ld          assume that the C compiler uses the GNU linker
248 249
    --disable-lock         disable file locking
    --cache-file=FILE      configure cache file
Jason Merrill committed
250

251 252
LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
that provides basic libtool functionality.
Jason Merrill committed
253 254 255 256 257 258

HOST is the canonical host system name [default=guessed].
EOM
  exit 0
  ;;

#  
Jeff Law committed
259 260 261 262 263
  --debug)
    echo "$progname: enabling shell trace mode"
    set -x
    ;;

Jason Merrill committed
264 265 266 267
  --disable-shared) enable_shared=no ;;

  --disable-static) enable_static=no ;;

268 269 270 271
  --disable-fast-install) enable_fast_install=no ;;

  --enable-dlopen) enable_dlopen=yes ;;

Jason Merrill committed
272 273 274 275 276 277 278
  --quiet | --silent) silent=yes ;;

  --srcdir) prev=srcdir ;;
  --srcdir=*) srcdir="$optarg" ;;

  --no-verify) verify_host=no ;;

#  
Jeff Law committed
279 280 281
  --output | -o) prev=ofile ;;
  --output=*) ofile="$optarg" ;;

282
  --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
Jason Merrill committed
283 284 285 286

  --with-gcc) with_gcc=yes ;;
  --with-gnu-ld) with_gnu_ld=yes ;;

287 288 289 290
  --disable-lock) need_locks=no ;;

  --cache-file=*) cache_file="$optarg" ;;

Jason Merrill committed
291 292 293 294 295 296 297 298 299 300
  -*)
    echo "$progname: unrecognized option \`$option'" 1>&2
    echo "$help" 1>&2
    exit 1
    ;;

  *)
    if test -z "$ltmain"; then
      ltmain="$option"
    elif test -z "$host"; then
#  
Jeff Law committed
301
# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
Jason Merrill committed
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319
#      if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
#        echo "$progname: warning \`$option' is not a valid host type" 1>&2
#      fi
      host="$option"
    else
      echo "$progname: too many arguments" 1>&2
      echo "$help" 1>&2
      exit 1
    fi ;;
  esac
done

if test -z "$ltmain"; then
  echo "$progname: you must specify a LTMAIN file" 1>&2
  echo "$help" 1>&2
  exit 1
fi

320
if test ! -f "$ltmain"; then
#  
Jeff Law committed
321 322 323
  echo "$progname: \`$ltmain' does not exist" 1>&2
  echo "$help" 1>&2
  exit 1
Jason Merrill committed
324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
fi

# Quote any args containing shell metacharacters.
ltconfig_args=
for arg
do
  case "$arg" in
  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
  ltconfig_args="$ltconfig_args '$arg'" ;;
  *) ltconfig_args="$ltconfig_args $arg" ;;
  esac
done

# A relevant subset of AC_INIT.

# File descriptor usage:
# 0 standard input
# 1 file creation
# 2 errors and warnings
# 3 some systems may open it to /dev/tty
# 4 used on the Kubota Titan
# 5 compiler messages saved in config.log
# 6 checking for... messages and results
if test "$silent" = yes; then
  exec 6>/dev/null
else
  exec 6>&1
fi
exec 5>>./config.log

# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi

361 362 363 364 365
if test -n "$cache_file" && test -r "$cache_file"; then
  echo "loading cache $cache_file within ltconfig"
  . $cache_file
fi

Jason Merrill committed
366 367 368 369 370 371 372 373 374 375 376 377 378
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
    ac_n= ac_c='
' ac_t='	'
  else
    ac_n=-n ac_c= ac_t=
  fi
else
  ac_n= ac_c='\c' ac_t=
fi

if test -z "$srcdir"; then
379 380
  # Assume the source directory is the same one as the path to LTMAIN.
  srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
Jason Merrill committed
381 382 383
  test "$srcdir" = "$ltmain" && srcdir=.
fi

#  
Jeff Law committed
384
trap "$rm conftest*; exit 1" 1 2 15
Jason Merrill committed
385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402
if test "$verify_host" = yes; then
  # Check for config.guess and config.sub.
  ac_aux_dir=
  for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
    if test -f $ac_dir/config.guess; then
      ac_aux_dir=$ac_dir
      break
    fi
  done
  if test -z "$ac_aux_dir"; then
    echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
    echo "$help" 1>&2
    exit 1
  fi
  ac_config_guess=$ac_aux_dir/config.guess
  ac_config_sub=$ac_aux_dir/config.sub

  # Make sure we can run config.sub.
403
  if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
Jason Merrill committed
404 405 406 407 408 409 410 411 412 413 414
  else
    echo "$progname: cannot run $ac_config_sub" 1>&2
    echo "$help" 1>&2
    exit 1
  fi

  echo $ac_n "checking host system type""... $ac_c" 1>&6

  host_alias=$host
  case "$host_alias" in
  "")
415
    if host_alias=`$SHELL $ac_config_guess`; then :
Jason Merrill committed
416 417 418 419 420 421
    else
      echo "$progname: cannot guess host type; you must specify one" 1>&2
      echo "$help" 1>&2
      exit 1
    fi ;;
  esac
422
  host=`$SHELL $ac_config_sub $host_alias`
#  
Jeff Law committed
423 424 425 426
  echo "$ac_t$host" 1>&6

  # Make sure the host verified.
  test -z "$host" && exit 1
Jason Merrill committed
427 428 429 430 431 432 433 434 435

elif test -z "$host"; then
  echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
  echo "$help" 1>&2
  exit 1
else
  host_alias=$host
fi

#  
Jeff Law committed
436 437 438 439
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
case "$host_os" in
linux-gnu*) ;;
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
Jason Merrill committed
440 441 442 443 444 445
esac

host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`

#  
Jeff Law committed
446 447 448 449 450 451 452 453 454 455 456 457
case "$host_os" in
aix3*)
  # AIX sometimes has problems with the GCC collect2 program.  For some
  # reason, if we set the COLLECT_NAMES environment variable, the problems
  # vanish in a puff of smoke.
  if test "${COLLECT_NAMES+set}" != set; then
    COLLECT_NAMES=
    export COLLECT_NAMES
  fi
  ;;
esac

Jason Merrill committed
458 459 460
# Determine commands to create old-style static archives.
old_archive_cmds='$AR cru $oldlib$oldobjs'
old_postinstall_cmds='chmod 644 $oldlib'
#  
Jeff Law committed
461 462 463 464
old_postuninstall_cmds=

# Set a sane default for `AR'.
test -z "$AR" && AR=ar
Jason Merrill committed
465 466 467 468 469 470

# If RANLIB is not set, then run the test.
if test "${RANLIB+set}" != "set"; then
  result=no

  echo $ac_n "checking for ranlib... $ac_c" 1>&6
471
  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
Jason Merrill committed
472 473 474 475 476 477 478 479 480 481
  for dir in $PATH; do
    test -z "$dir" && dir=.
    if test -f $dir/ranlib; then
      RANLIB="ranlib"
      result="ranlib"
      break
    fi
  done
  IFS="$save_ifs"

#  
Jeff Law committed
482
  echo "$ac_t$result" 1>&6
Jason Merrill committed
483 484 485
fi

if test -n "$RANLIB"; then
486 487
  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
Jason Merrill committed
488 489
fi

490
# Set sane defaults for `DLLTOOL' and `AS', used on cygwin.
#  
Jeff Law committed
491 492 493
test -z "$DLLTOOL" && DLLTOOL=dlltool
test -z "$AS" && AS=as

Jason Merrill committed
494 495 496 497 498
# Check to see if we are using GCC.
if test "$with_gcc" != yes || test -z "$CC"; then
  # If CC is not set, then try to find GCC or a usable CC.
  if test -z "$CC"; then
    echo $ac_n "checking for gcc... $ac_c" 1>&6
499
    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
Jason Merrill committed
500 501 502 503 504 505 506 507 508 509 510
    for dir in $PATH; do
      IFS="$save_ifs"
      test -z "$dir" && dir=.
      if test -f $dir/gcc; then
	CC="gcc"
	break
      fi
    done
    IFS="$save_ifs"

    if test -n "$CC"; then
#  
Jeff Law committed
511
      echo "$ac_t$CC" 1>&6
Jason Merrill committed
512
    else
#  
Jeff Law committed
513
      echo "$ac_t"no 1>&6
Jason Merrill committed
514 515 516 517 518 519
    fi
  fi

  # Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
  if test -z "$CC"; then
    echo $ac_n "checking for cc... $ac_c" 1>&6
520
    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
Jason Merrill committed
521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549
    cc_rejected=no
    for dir in $PATH; do
      test -z "$dir" && dir=.
      if test -f $dir/cc; then
	if test "$dir/cc" = "/usr/ucb/cc"; then
	  cc_rejected=yes
	  continue
	fi
	CC="cc"
	break
      fi
    done
    IFS="$save_ifs"
    if test $cc_rejected = yes; then
      # We found a bogon in the path, so make sure we never use it.
      set dummy $CC
      shift
      if test $# -gt 0; then
	# We chose a different compiler from the bogus one.
	# However, it has the same name, so the bogon will be chosen
	# first if we set CC to just the name; use the full file name.
	shift
	set dummy "$dir/cc" "$@"
	shift
	CC="$@"
      fi
    fi

    if test -n "$CC"; then
#  
Jeff Law committed
550
      echo "$ac_t$CC" 1>&6
Jason Merrill committed
551
    else
#  
Jeff Law committed
552
      echo "$ac_t"no 1>&6
Jason Merrill committed
553 554 555 556 557 558 559 560 561 562 563
    fi

    if test -z "$CC"; then
      echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
      exit 1
    fi
  fi

  # Now see if the compiler is really GCC.
  with_gcc=no
  echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
564
  echo "$progname:564: checking whether we are using GNU C" >&5
Jason Merrill committed
565 566 567 568 569 570 571

  $rm conftest.c
  cat > conftest.c <<EOF
#ifdef __GNUC__
  yes;
#endif
EOF
572
  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:572: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
Jason Merrill committed
573 574 575
    with_gcc=yes
  fi
  $rm conftest.c
#  
Jeff Law committed
576
  echo "$ac_t$with_gcc" 1>&6
Jason Merrill committed
577 578 579 580 581 582
fi

# Allow CC to be a program name with arguments.
set dummy $CC
compiler="$2"

583 584 585
echo $ac_n "checking for object suffix... $ac_c" 1>&6
$rm conftest*
echo 'int i = 1;' > conftest.c
586 587
echo "$progname:586: checking for object suffix" >& 5
if { (eval echo $progname:587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604
  # Append any warnings to the config.log.
  cat conftest.err 1>&5

  for ac_file in conftest.*; do
    case $ac_file in
    *.c) ;;
    *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
    esac
  done
else
  cat conftest.err 1>&5
  echo "$progname: failed program was:" >&5
  cat conftest.c >&5
fi
$rm conftest*
echo "$ac_t$objext" 1>&6

Jason Merrill committed
605 606 607 608 609
echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
pic_flag=
special_shlib_compile_flags=
wl=
link_static_flag=
#  
Jeff Law committed
610
no_builtin_flag=
Jason Merrill committed
611 612 613 614

if test "$with_gcc" = yes; then
  wl='-Wl,'
  link_static_flag='-static'
#  
Jeff Law committed
615 616

  case "$host_os" in
617
  beos* | irix5* | irix6* | osf3* | osf4*)
#  
Jeff Law committed
618 619
    # PIC is the default for these OSes.
    ;;
620 621 622 623 624 625 626 627 628 629
  aix*)
    # Below there is a dirty hack to force normal static linking with -ldl
    # The problem is because libdl dynamically linked with both libc and
    # libC (AIX C++ library), which obviously doesn't included in libraries
    # list by gcc. This cause undefined symbols with -static flags.
    # This hack allows C programs to be linked with "-static -ldl", but
    # we not sure about C++ programs.
    link_static_flag="$link_static_flag ${wl}-lC"
    ;;
  cygwin* | mingw* | os2*)
#  
Jeff Law committed
630 631 632 633 634 635 636 637 638 639 640 641
    # We can build DLLs from non-PIC.
    ;;
  amigaos*)
    # FIXME: we need at least 68020 code to build shared libraries, but
    # adding the `-m68020' flag to GCC prevents building anything better,
    # like `-m68040'.
    pic_flag='-m68020 -resident32 -malways-restore-a4'
    ;;
  *)
    pic_flag='-fPIC'
    ;;
  esac
Jason Merrill committed
642 643 644 645
else
  # PORTME Check for PIC flags for the system compiler.
  case "$host_os" in
  aix3* | aix4*)
#  
Jeff Law committed
646
    # All AIX code is PIC.
Jason Merrill committed
647 648 649
    link_static_flag='-bnso -bI:/lib/syscalls.exp'
    ;;

#  
Jeff Law committed
650 651
  hpux9* | hpux10* | hpux11*)
    # Is there a better link_static_flag that works with the bundled CC?
Jason Merrill committed
652
    wl='-Wl,'
#  
Jeff Law committed
653
    link_static_flag="${wl}-a ${wl}archive"
Jason Merrill committed
654 655 656 657 658 659 660
    pic_flag='+Z'
    ;;

  irix5* | irix6*)
    wl='-Wl,'
    link_static_flag='-non_shared'
    # PIC (with -KPIC) is the default.
#  
Jeff Law committed
661 662
    ;;

663
  cygwin* | mingw* | os2*)
#  
Jeff Law committed
664
    # We can build DLLs from non-PIC.
Jason Merrill committed
665 666 667
    ;;

  osf3* | osf4*)
#  
Jeff Law committed
668
    # All OSF/1 code is PIC.
Jason Merrill committed
669 670 671 672 673 674 675 676 677 678
    wl='-Wl,'
    link_static_flag='-non_shared'
    ;;

  sco3.2v5*)
    pic_flag='-Kpic'
    link_static_flag='-dn'
    special_shlib_compile_flags='-belf'
    ;;

679
  solaris*)
Jason Merrill committed
680 681 682 683 684 685 686 687 688 689 690
    pic_flag='-KPIC'
    link_static_flag='-Bstatic'
    wl='-Wl,'
    ;;

  sunos4*)
    pic_flag='-PIC'
    link_static_flag='-Bstatic'
    wl='-Qoption ld '
    ;;

691
  sysv4.2uw2* | sysv4.3* | sysv5*)
#  
Jeff Law committed
692 693 694 695 696 697 698 699 700 701
    pic_flag='-KPIC'
    link_static_flag='-Bstatic'
    wl='-Wl,'
    ;;

  uts4*)
    pic_flag='-pic'
    link_static_flag='-Bstatic'
    ;;

Jason Merrill committed
702 703 704 705 706 707 708
  *)
    can_build_shared=no
    ;;
  esac
fi

if test -n "$pic_flag"; then
#  
Jeff Law committed
709 710 711 712 713 714 715 716
  echo "$ac_t$pic_flag" 1>&6

  # Check to make sure the pic_flag actually works.
  echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
  $rm conftest*
  echo "int some_variable = 0;" > conftest.c
  save_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS $pic_flag -DPIC"
717 718
  echo "$progname:717: checking if $compiler PIC flag $pic_flag works" >&5
  if { (eval echo $progname:718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
#  
Jeff Law committed
719 720
    # Append any warnings to the config.log.
    cat conftest.err 1>&5
721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752
    
    case "$host_os" in
    hpux9* | hpux10* | hpux11*)
      # On HP-UX, both CC and GCC only warn that PIC is supported... then they
      # create non-PIC objects.  So, if there were any warnings, we assume that
      # PIC is not supported.
      if test -s conftest.err; then
	echo "$ac_t"no 1>&6
	can_build_shared=no
	pic_flag=
      else
	echo "$ac_t"yes 1>&6
	pic_flag=" $pic_flag"
      fi
      ;;
    *)
      echo "$ac_t"yes 1>&6
      pic_flag=" $pic_flag"
      ;;
    esac
  else
    # Append any errors to the config.log.
    cat conftest.err 1>&5
    can_build_shared=no
    pic_flag=
    echo "$ac_t"no 1>&6
  fi
  CFLAGS="$save_CFLAGS"
  $rm conftest*
else
  echo "$ac_t"none 1>&6
fi
#  
Jeff Law committed
753

754 755 756 757 758 759 760 761 762 763 764
# Check to see if options -o and -c are simultaneously supported by compiler
echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
$rm conftest*
echo "int some_variable = 0;" > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -c -o conftest2.o"
echo "$progname:760: checking if $compiler supports -c -o file.o" >&5
if { (eval echo $progname:761: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest2.o; then

  # The compiler can only warn and ignore the option if not recognized
  # So say no if there are warnings
#  
Jeff Law committed
765 766
    if test -s conftest.err; then
      echo "$ac_t"no 1>&6
767
      compiler_c_o=no
#  
Jeff Law committed
768 769
    else
      echo "$ac_t"yes 1>&6
770
      compiler_c_o=yes
#  
Jeff Law committed
771
    fi
772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799
else
  # Append any errors to the config.log.
  cat conftest.err 1>&5
  compiler_c_o=no
  echo "$ac_t"no 1>&6
fi
CFLAGS="$save_CFLAGS"
$rm conftest*

if test x"$compiler_c_o" = x"yes"; then
  # Check to see if we can write to a .lo
  echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
  $rm conftest*
  echo "int some_variable = 0;" > conftest.c
  save_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS -c -o conftest.lo"
  echo "$progname:788: checking if $compiler supports -c -o file.lo" >&5
if { (eval echo $progname:789: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then

    # The compiler can only warn and ignore the option if not recognized
    # So say no if there are warnings
      if test -s conftest.err; then
	echo "$ac_t"no 1>&6
	compiler_o_lo=no
      else
	echo "$ac_t"yes 1>&6
	compiler_o_lo=yes
      fi
#  
Jeff Law committed
800 801 802
  else
    # Append any errors to the config.log.
    cat conftest.err 1>&5
803
    compiler_o_lo=no
#  
Jeff Law committed
804 805 806 807
    echo "$ac_t"no 1>&6
  fi
  CFLAGS="$save_CFLAGS"
  $rm conftest*
Jason Merrill committed
808
else
809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866
  compiler_o_lo=no
fi

# Check to see if we can do hard links to lock some files if needed
hard_links="nottested"
if test "$compiler_c_o" = no && test "$need_locks" != no; then
  # do not overwrite the value of need_locks provided by the user
  echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
  hard_links=yes
  $rm conftest*
  ln conftest.a conftest.b 2>/dev/null && hard_links=no
  touch conftest.a
  ln conftest.a conftest.b 2>&5 || hard_links=no
  ln conftest.a conftest.b 2>/dev/null && hard_links=no
  echo "$ac_t$hard_links" 1>&6
  $rm conftest*
  if test "$hard_links" = no; then
    echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
    need_locks=warn
  fi
else
  need_locks=no
fi

if test "$with_gcc" = yes; then
  # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
  echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
  $rm conftest*
  echo "int some_variable = 0;" > conftest.c
  save_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
  echo "$progname:840: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
  if { (eval echo $progname:841: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then

    # The compiler can only warn and ignore the option if not recognized
    # So say no if there are warnings
      if test -s conftest.err; then
	echo "$ac_t"no 1>&6
	compiler_rtti_exceptions=no
      else
	echo "$ac_t"yes 1>&6
	compiler_rtti_exceptions=yes
      fi
  else
    # Append any errors to the config.log.
    cat conftest.err 1>&5
    compiler_rtti_exceptions=no
    echo "$ac_t"no 1>&6
  fi
  CFLAGS="$save_CFLAGS"
  $rm conftest*

  if test "$compiler_rtti_exceptions" = "yes"; then
    no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
  else
    no_builtin_flag=' -fno-builtin'
  fi
  
Jason Merrill committed
867 868 869 870 871 872 873 874 875 876 877 878
fi

# Check for any special shared library compilation flags.
if test -n "$special_shlib_compile_flags"; then
  echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
  if echo "$old_CC $old_CFLAGS " | egrep -e "[ 	]$special_shlib_compile_flags[ 	]" >/dev/null; then :
  else
    echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
    can_build_shared=no
  fi
fi

#  
Jeff Law committed
879 880 881 882 883
echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
$rm conftest*
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
884 885
echo "$progname:884: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
#  
Jeff Law committed
886
  echo "$ac_t$link_static_flag" 1>&6
Jason Merrill committed
887
else
#  
Jeff Law committed
888 889
  echo "$ac_t"none 1>&6
  link_static_flag=
Jason Merrill committed
890
fi
#  
Jeff Law committed
891 892
LDFLAGS="$save_LDFLAGS"
$rm conftest*
Jason Merrill committed
893 894 895 896

if test -z "$LN_S"; then
  # Check to see if we can use ln -s, or we need hard links.
  echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
#  
Jeff Law committed
897
  $rm conftestdata
Jason Merrill committed
898
  if ln -s X conftestdata 2>/dev/null; then
#  
Jeff Law committed
899
    $rm conftestdata
Jason Merrill committed
900 901 902 903 904 905 906 907 908 909 910
    LN_S="ln -s"
  else
    LN_S=ln
  fi
  if test "$LN_S" = "ln -s"; then
    echo "$ac_t"yes 1>&6
  else
    echo "$ac_t"no 1>&6
  fi
fi

#  
Jeff Law committed
911 912 913 914 915 916
# Make sure LD is an absolute path.
if test -z "$LD"; then
  ac_prog=ld
  if test "$with_gcc" = yes; then
    # Check if gcc -print-prog-name=ld gives a path.
    echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
917
    echo "$progname:917: checking for ld used by GCC" >&5
#  
Jeff Law committed
918 919 920
    ac_prog=`($CC -print-prog-name=ld) 2>&5`
    case "$ac_prog" in
    # Accept absolute paths.
921 922 923 924 925 926 927
    /* | [A-Za-z]:[\\/]*)
      re_direlt='/[^/][^/]*/\.\./'
      # Canonicalize the path of ld
      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
      done
#  
Jeff Law committed
928 929 930 931 932 933 934 935 936 937 938 939 940
      test -z "$LD" && LD="$ac_prog"
      ;;
    "")
      # If it fails, then pretend we are not using GCC.
      ac_prog=ld
      ;;
    *)
      # If it is relative, then search for the first ld in PATH.
      with_gnu_ld=unknown
      ;;
    esac
  elif test "$with_gnu_ld" = yes; then
    echo $ac_n "checking for GNU ld... $ac_c" 1>&6
941
    echo "$progname:941: checking for GNU ld" >&5
#  
Jeff Law committed
942 943
  else
    echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
944
    echo "$progname:944: checking for non-GNU ld" >&5
#  
Jeff Law committed
945
  fi
Jason Merrill committed
946

#  
Jeff Law committed
947
  if test -z "$LD"; then
948
    IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
Jason Merrill committed
949 950
    for ac_dir in $PATH; do
      test -z "$ac_dir" && ac_dir=.
#  
Jeff Law committed
951 952
      if test -f "$ac_dir/$ac_prog"; then
	LD="$ac_dir/$ac_prog"
Jason Merrill committed
953 954 955
	# Check to see if the program is GNU ld.  I'd rather use --version,
	# but apparently some GNU ld's only accept -v.
	# Break only if it was the GNU/non-GNU ld that we prefer.
#  
Jeff Law committed
956 957
	if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
	  test "$with_gnu_ld" != no && break
Jason Merrill committed
958 959 960 961 962 963
	else
	  test "$with_gnu_ld" != yes && break
	fi
      fi
    done
    IFS="$ac_save_ifs"
#  
Jeff Law committed
964
  fi
Jason Merrill committed
965

#  
Jeff Law committed
966 967 968 969
  if test -n "$LD"; then
    echo "$ac_t$LD" 1>&6
  else
    echo "$ac_t"no 1>&6
Jason Merrill committed
970 971
  fi

#  
Jeff Law committed
972 973 974
  if test -z "$LD"; then
    echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
    exit 1
Jason Merrill committed
975 976 977
  fi
fi

#  
Jeff Law committed
978 979 980 981 982 983 984 985 986 987
# Check to see if it really is or is not GNU ld.
echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
  with_gnu_ld=yes
else
  with_gnu_ld=no
fi
echo "$ac_t$with_gnu_ld" 1>&6

Jason Merrill committed
988 989 990 991
# See if the linker supports building shared libraries.
echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6

allow_undefined_flag=
#  
Jeff Law committed
992
no_undefined_flag=
993 994 995 996
need_lib_prefix=unknown
need_version=unknown
# when you set need_version to no, make sure it does not cause -set_version
# flags to be left without arguments
Jason Merrill committed
997
archive_cmds=
998
archive_expsym_cmds=
#  
Jeff Law committed
999 1000
old_archive_from_new_cmds=
export_dynamic_flag_spec=
1001
whole_archive_flag_spec=
1002
thread_safe_flag_spec=
Jason Merrill committed
1003 1004 1005 1006 1007 1008
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
hardcode_shlibpath_var=unsupported
runpath_var=
1009 1010 1011 1012 1013 1014 1015 1016 1017 1018
always_export_symbols=no
export_symbols_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
# include_expsyms should be a list of space-separated symbols to be *always*
# included in the symbol list
include_expsyms=
# exclude_expsyms can be an egrep regular expression of symbols to exclude
# it will be wrapped by ` (' and `)$', so one must not match beginning or
# end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
# as well as any symbol that contains `d'.
exclude_expsyms=
1019 1020

case "$host_os" in
1021 1022 1023 1024 1025 1026 1027
cygwin* | mingw*)
  # FIXME: the MSVC++ port hasn't been tested in a loooong time
  # When not using gcc, we currently assume that we are using
  # Microsoft Visual C++.
  if test "$with_gcc" != yes; then
    with_gnu_ld=no
  fi
1028
  ;;
1029 1030 1031 1032 1033

freebsd2* | sunos4*)
  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
  ;;

1034
esac
Jason Merrill committed
1035 1036 1037

ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
1038 1039
  # If archive_cmds runs LD, not CC, wlarc should be empty
  wlarc='${wl}'
Jason Merrill committed
1040

#  
Jeff Law committed
1041
  # See if GNU ld supports shared libraries.
Jason Merrill committed
1042
  case "$host_os" in
1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056
  aix3* | aix4*)
    # On AIX, the GNU linker is very broken
    ld_shlibs=no
    cat <<EOF 1>&2

*** Warning: the GNU linker, at least up to release 2.9.1, is reported
*** to be unable to reliably create shared libraries on AIX.
*** Therefore, libtool is disabling shared libraries support.  If you
*** really care for shared libraries, you may want to modify your PATH
*** so that a non-GNU linker is found, and then restart.

EOF
    ;;

#  
Jeff Law committed
1057
  amigaos*)
1058
    archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
#  
Jeff Law committed
1059 1060 1061 1062
    hardcode_libdir_flag_spec='-L$libdir'
    hardcode_minus_L=yes
    ;;

Jason Merrill committed
1063
  sunos4*)
1064 1065
    archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
    wlarc=
1066
    hardcode_direct=yes
1067
    hardcode_minus_L=yes
1068
    hardcode_shlibpath_var=no
#  
Jeff Law committed
1069 1070
    ;;

1071 1072 1073
  beos*)
    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
      archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
1074
    else
1075
      ld_shlibs=no
1076
    fi
Jason Merrill committed
1077 1078
    ;;

1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109
  cygwin* | mingw*)
    # hardcode_libdir_flag_spec is actually meaningless, as there is
    # no search path for DLLs.
    hardcode_libdir_flag_spec='-L$libdir'
    allow_undefined_flag=unsupported
    always_export_symbols=yes

    # Extract the symbol export list from an `--export-all' def file,
    # then regenerate the def file from the symbol export list, so that
    # the compiled dll only exports the symbol export list.
    export_symbols_cmds='rm -f $objdir/$soname-ltdll.c~
      sed -e "/^# \/\* ltdll.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
      (cd $objdir && $CC -c $soname-ltdll.c)~
      $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def  $objdir/$soname-ltdll.$objext $libobjs~
      sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols'

    archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
      _lt_hint=1;
      for symbol in `cat $export_symbols`; do
        echo "	\$symbol @ \$_lt_hint ; " >> $objdir/$soname-def;
	_lt_hint=`expr 1 + \$_lt_hint`;
      done~
      $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
      $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
      $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'

      old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
    ;;

Jason Merrill committed
1110 1111
  *)
    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
1112 1113
      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
Jason Merrill committed
1114 1115 1116 1117 1118 1119
    else
      ld_shlibs=no
    fi
    ;;
  esac

1120
  if test "$ld_shlibs" = yes; then
#  
Jeff Law committed
1121 1122 1123
    runpath_var=LD_RUN_PATH
    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
    export_dynamic_flag_spec='${wl}--export-dynamic'
1124
    whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
Jason Merrill committed
1125 1126 1127 1128 1129 1130
  fi
else
  # PORTME fill in a description of your system's linker (not GNU ld)
  case "$host_os" in
  aix3*)
    allow_undefined_flag=unsupported
1131 1132
    always_export_symbols=yes
    archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
Jason Merrill committed
1133 1134 1135
    # Note: this linker hardcodes the directories in LIBPATH if there
    # are no directories specified by -L.
    hardcode_minus_L=yes
#  
Jeff Law committed
1136 1137 1138 1139 1140
    if test "$with_gcc" = yes && test -z "$link_static_flag"; then
      # Neither direct hardcoding nor static linking is supported with a
      # broken collect2.
      hardcode_direct=unsupported
    fi
Jason Merrill committed
1141 1142 1143
    ;;

  aix4*)
1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160
    allow_undefined_flag=
    if test "$with_gcc" = yes; then
      if strings `${CC} -print-prog-name=collect2` | \
	 grep resolve_lib_name >/dev/null
      then
	# We have reworked collect2
	hardcode_direct=yes
      else
	# We have old collect2
	hardcode_direct=unsupported
      fi
      archive_cmds='$CC -shared ${wl}-bnoentry -o $objdir/$soname $libobjs $deplibs $linkopts'
    else
      always_export_symbols=yes
      archive_expsym_cmds='$CC -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bM:SRE ${wl}-bnoentry'
      hardcode_direct=yes
    fi
Jason Merrill committed
1161
    hardcode_minus_L=yes
1162 1163 1164 1165 1166 1167
    # Though LIBPATH variable hardcodes shlibpath into executable,
    # it doesn't affect searching for -l* libraries; this confuses
    # tests in mdemo.
    hardcode_shlibpath_var=unsupported
    hardcode_libdir_flag_spec='-L$libdir'
   ;;
Jason Merrill committed
1168

#  
Jeff Law committed
1169
  amigaos*)
1170
    archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
#  
Jeff Law committed
1171 1172 1173 1174
    hardcode_libdir_flag_spec='-L$libdir'
    hardcode_minus_L=yes
    ;;

1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195
  cygwin* | mingw*)
    # When not using gcc, we currently assume that we are using
    # Microsoft Visual C++.
    # hardcode_libdir_flag_spec is actually meaningless, as there is
    # no search path for DLLs.
    hardcode_libdir_flag_spec=' '
    allow_undefined_flag=unsupported
    # Tell ltmain to make .lib files, not .a files.
    libext=lib
    # FIXME: Setting linknames here is a bad hack.
    archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
    # The linker will automatically build a .lib file if we build a DLL.
    old_archive_from_new_cmds='true'
    # FIXME: Should let the user specify the lib program.
    old_archive_cmds='lib /OUT:$oldlib$oldobjs'
    fix_srcfile_path='`cygpath -w $srcfile`'
    ;;

  freebsd1*)
    ld_shlibs=no
    can_build_shared=no
#  
Jeff Law committed
1196 1197
    ;;

Jason Merrill committed
1198 1199
  # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
  # support.  Future versions do this automatically, but an explicit c++rt0.o
#  
Jeff Law committed
1200
  # does not break anything, and helps significantly (at the cost of a little
Jason Merrill committed
1201 1202
  # extra space).
  freebsd2.2*)
1203
    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
#  
Jeff Law committed
1204
    hardcode_libdir_flag_spec='-R$libdir'
Jason Merrill committed
1205
    hardcode_direct=yes
1206
    hardcode_minus_L=no # verified on 2.2.6
Jason Merrill committed
1207 1208 1209
    hardcode_shlibpath_var=no
    ;;

#  
Jeff Law committed
1210
  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
Jason Merrill committed
1211
  freebsd2*)
1212
    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
Jason Merrill committed
1213 1214 1215 1216 1217
    hardcode_direct=yes
    hardcode_minus_L=yes
    hardcode_shlibpath_var=no
    ;;

1218 1219 1220
  # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
  freebsd*)
    archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
#  
Jeff Law committed
1221
    hardcode_libdir_flag_spec='-R$libdir'
Jason Merrill committed
1222
    hardcode_direct=yes
1223
    hardcode_minus_L=no
Jason Merrill committed
1224 1225 1226 1227
    hardcode_shlibpath_var=no
    ;;

  hpux9*)
1228
    archive_cmds='$rm $objdir/$soname~$LD -b +s +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib'
Jason Merrill committed
1229 1230 1231
    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
    hardcode_direct=yes
    hardcode_minus_L=yes
#  
Jeff Law committed
1232
    export_dynamic_flag_spec='${wl}-E'
Jason Merrill committed
1233 1234
    ;;

#  
Jeff Law committed
1235
  hpux10* | hpux11*)
1236
    archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib $libobjs $deplibs $linkopts'
Jason Merrill committed
1237 1238 1239
    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
    hardcode_direct=yes
    hardcode_minus_L=yes
#  
Jeff Law committed
1240
    export_dynamic_flag_spec='${wl}-E'
Jason Merrill committed
1241 1242 1243
    ;;

  irix5* | irix6*)
#  
Jeff Law committed
1244
    if test "$with_gcc" = yes; then
1245
      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
#  
Jeff Law committed
1246
    else
1247
      archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -o $lib'
#  
Jeff Law committed
1248
    fi
Jason Merrill committed
1249
    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
1250
    hardcode_libdir_separator=:
Jason Merrill committed
1251 1252
    ;;

#  
Jeff Law committed
1253
  netbsd*)
1254 1255 1256 1257 1258 1259
    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'  # a.out
    else
      archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts'      # ELF
    fi
    hardcode_libdir_flag_spec='${wl}-R$libdir'
Jason Merrill committed
1260 1261 1262 1263
    hardcode_direct=yes
    hardcode_shlibpath_var=no
    ;;

#  
Jeff Law committed
1264
  openbsd*)
1265
    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
#  
Jeff Law committed
1266 1267 1268 1269 1270 1271 1272 1273 1274
    hardcode_libdir_flag_spec='-R$libdir'
    hardcode_direct=yes
    hardcode_shlibpath_var=no
    ;;

  os2*)
    hardcode_libdir_flag_spec='-L$libdir'
    hardcode_minus_L=yes
    allow_undefined_flag=unsupported
1275
    archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
#  
Jeff Law committed
1276 1277 1278
    old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
    ;;

Jason Merrill committed
1279
  osf3* | osf4*)
1280 1281 1282 1283 1284 1285 1286
    if test "$with_gcc" = yes; then
      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
    else
      allow_undefined_flag=' -expect_unresolved \*'
      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -o $lib'
    fi
Jason Merrill committed
1287 1288 1289 1290 1291
    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
    hardcode_libdir_separator=:
    ;;

  sco3.2v5*)
1292
    archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
Jason Merrill committed
1293 1294 1295
    hardcode_direct=yes
    ;;

1296
  solaris*)
#  
Jeff Law committed
1297
    no_undefined_flag=' -z text'
1298 1299 1300 1301 1302
    # $CC -shared without GNU ld will not create a library from C++
    # object files and a static libstdc++, better avoid it by now
    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
Jason Merrill committed
1303 1304 1305 1306 1307
    hardcode_libdir_flag_spec='-R$libdir'
    hardcode_shlibpath_var=no
    ;;

  sunos4*)
1308 1309 1310 1311 1312 1313 1314
    # Why do we need -Bstatic?  To avoid inter-library dependencies, maybe...
    if test "$with_gcc" = yes; then
      # Use -fPIC here because libgcc is multilibbed
      archive_cmds='$CC -shared ${wl}-Bstatic -fPIC -o $lib $libobjs $deplibs $linkopts'
    else
      archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
    fi
Jason Merrill committed
1315 1316 1317 1318 1319 1320
    hardcode_libdir_flag_spec='-L$libdir'
    hardcode_direct=yes
    hardcode_minus_L=yes
    hardcode_shlibpath_var=no
    ;;

1321 1322 1323 1324 1325 1326 1327 1328
  sysv4.3*)
    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
    hardcode_direct=no
    hardcode_minus_L=no
    hardcode_shlibpath_var=no
    export_dynamic_flag_spec='-Bexport'
    ;;

#  
Jeff Law committed
1329
  uts4*)
1330 1331 1332 1333 1334 1335 1336 1337 1338
    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
    hardcode_libdir_flag_spec='-L$libdir'
    hardcode_direct=no
    hardcode_minus_L=no
    hardcode_shlibpath_var=no
    ;;

  dgux*)
    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
#  
Jeff Law committed
1339 1340 1341 1342 1343 1344
    hardcode_libdir_flag_spec='-L$libdir'
    hardcode_direct=no
    hardcode_minus_L=no
    hardcode_shlibpath_var=no
    ;;

Jason Merrill committed
1345 1346 1347 1348 1349 1350
  *)
    ld_shlibs=no
    can_build_shared=no
    ;;
  esac
fi
#  
Jeff Law committed
1351 1352 1353 1354 1355
echo "$ac_t$ld_shlibs" 1>&6

if test -z "$NM"; then
  echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
  case "$NM" in
1356
  /* | [A-Za-z]:[/\\]*) ;; # Let the user override the test with a path.
#  
Jeff Law committed
1357
  *)
1358 1359
    IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
    for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
#  
Jeff Law committed
1360 1361
      test -z "$ac_dir" && ac_dir=.
      if test -f $ac_dir/nm; then
1362 1363 1364 1365 1366 1367 1368 1369 1370
	# Check to see if the nm accepts a BSD-compat flag.
	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
	#   nm: unknown option "B" ignored
	if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
	  NM="$ac_dir/nm -B"
	  break
	elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
	  NM="$ac_dir/nm -p"
	  break
#  
Jeff Law committed
1371
	else
1372 1373
	  NM=${NM="$ac_dir/nm"} # keep the first match, but
	  continue # so that we can try to find one that supports BSD flags
#  
Jeff Law committed
1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390
	fi
      fi
    done
    IFS="$ac_save_ifs"
    test -z "$NM" && NM=nm
    ;;
  esac
  echo "$ac_t$NM" 1>&6
fi

# Check for command to grab the raw symbol name followed by C symbol from nm.
echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6

# These are sane defaults that work on at least a few old systems.
# [They come from Ultrix.  What could be older than Ultrix?!! ;)]

# Character class describing NM global symbol codes.
1391
symcode='[BCDEGRST]'
#  
Jeff Law committed
1392 1393 1394 1395 1396

# Regexp to match symbols that can be accessed directly from C.
sympat='\([_A-Za-z][_A-Za-z0-9]*\)'

# Transform the above into a raw symbol and a C symbol.
1397 1398 1399 1400
symxfrm='\1 \2\3 \3'

# Transform an extracted symbol line into a proper C declaration
global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
#  
Jeff Law committed
1401 1402 1403 1404

# Define system-specific variables.
case "$host_os" in
aix*)
1405
  symcode='[BCDT]'
#  
Jeff Law committed
1406
  ;;
1407 1408 1409 1410 1411
cygwin* | mingw*)
  symcode='[ABCDGISTW]'
  ;;
hpux*) # Its linker distinguishes data from code symbols
  global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
#  
Jeff Law committed
1412 1413 1414 1415
  ;;
irix*)
  symcode='[BCDEGRST]'
  ;;
1416 1417
solaris*)
  symcode='[BDT]'
#  
Jeff Law committed
1418 1419 1420 1421 1422
  ;;
esac

# If we're using GNU nm, then use its standard symbol codes.
if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
1423
  symcode='[ABCDGISTW]'
#  
Jeff Law committed
1424 1425
fi

1426 1427
# Try without a prefix undercore, then with it.
for ac_symprfx in "" "_"; do
#  
Jeff Law committed
1428

1429 1430
  # Write the raw and C identifiers.
  global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode\)[ 	][ 	]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
#  
Jeff Law committed
1431

1432 1433 1434 1435
  # Check to see that the pipe works correctly.
  pipe_works=no
  $rm conftest*
  cat > conftest.c <<EOF
#  
Jeff Law committed
1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446
#ifdef __cplusplus
extern "C" {
#endif
char nm_test_var;
void nm_test_func(){}
#ifdef __cplusplus
}
#endif
main(){nm_test_var='a';nm_test_func();return(0);}
EOF

1447 1448 1449 1450 1451
  echo "$progname:1447: checking if global_symbol_pipe works" >&5
  if { (eval echo $progname:1448: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
    # Now try to grab the symbols.
    nlist=conftest.nm
    if { echo "$progname:1451: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
#  
Jeff Law committed
1452

1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463
      # Try sorting and uniquifying the output.
      if sort "$nlist" | uniq > "$nlist"T; then
	mv -f "$nlist"T "$nlist"
      else
	rm -f "$nlist"T
      fi

      # Make sure that we snagged all the symbols we need.
      if egrep ' nm_test_var$' "$nlist" >/dev/null; then
	if egrep ' nm_test_func$' "$nlist" >/dev/null; then
	  cat <<EOF > conftest.c
#  
Jeff Law committed
1464 1465 1466 1467 1468
#ifdef __cplusplus
extern "C" {
#endif

EOF
1469 1470
	  # Now generate the symbol file.
	  eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
#  
Jeff Law committed
1471

1472
	  cat <<EOF >> conftest.c
#  
Jeff Law committed
1473
#if defined (__STDC__) && __STDC__
1474
# define lt_ptr_t void *
#  
Jeff Law committed
1475
#else
1476 1477
# define lt_ptr_t char *
# define const
#  
Jeff Law committed
1478 1479 1480
#endif

/* The mapping between symbol names and symbols. */
1481 1482 1483
const struct {
  const char *name;
  lt_ptr_t address;
#  
Jeff Law committed
1484
}
1485
lt_preloaded_symbols[] =
#  
Jeff Law committed
1486 1487
{
EOF
1488 1489 1490
	  sed 's/^. \(.*\) \(.*\)$/  {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
	  cat <<\EOF >> conftest.c
  {0, (lt_ptr_t) 0}
#  
Jeff Law committed
1491 1492 1493 1494 1495 1496
};

#ifdef __cplusplus
}
#endif
EOF
1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512
	  # Now try linking the two files.
	  mv conftest.$objext conftestm.$objext
	  save_LIBS="$LIBS"
	  save_CFLAGS="$CFLAGS"
	  LIBS="conftestm.$objext"
	  CFLAGS="$CFLAGS$no_builtin_flag"
	  if { (eval echo $progname:1503: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
	    pipe_works=yes
	  else
	    echo "$progname: failed program was:" >&5
	    cat conftest.c >&5
	  fi
	  LIBS="$save_LIBS"
	else
	  echo "cannot find nm_test_func in $nlist" >&5
	fi
#  
Jeff Law committed
1513
      else
1514
	echo "cannot find nm_test_var in $nlist" >&5
#  
Jeff Law committed
1515 1516
      fi
    else
1517
      echo "cannot run $global_symbol_pipe" >&5
#  
Jeff Law committed
1518 1519
    fi
  else
1520 1521
    echo "$progname: failed program was:" >&5
    cat conftest.c >&5
#  
Jeff Law committed
1522
  fi
1523
  $rm conftest*
#  
Jeff Law committed
1524

1525 1526 1527 1528 1529 1530 1531
  # Do not use the global_symbol_pipe unless it works.
  if test "$pipe_works" = yes; then
    break
  else
    global_symbol_pipe=
  fi
done
#  
Jeff Law committed
1532
echo "$ac_t$pipe_works" 1>&6
1533 1534 1535 1536

if test -z "$global_symbol_pipe"; then
  global_symbol_to_cdecl=
fi
Jason Merrill committed
1537 1538 1539 1540 1541

# Check hardcoding attributes.
echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" || \
#  
Jeff Law committed
1542
   test -n "$runpath_var"; then
Jason Merrill committed
1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555

  # We can hardcode non-existant directories.
  if test "$hardcode_direct" != no && \
     test "$hardcode_minus_L" != no && \
     test "$hardcode_shlibpath_var" != no; then

    # Linking always hardcodes the temporary library directory.
    hardcode_action=relink
  else
    # We can link without hardcoding, and we can hardcode nonexisting dirs.
    hardcode_action=immediate
  fi
else
#  
Jeff Law committed
1556 1557 1558
  # We cannot hardcode anything, or else we can only hardcode existing
  # directories.
  hardcode_action=unsupported
Jason Merrill committed
1559
fi
#  
Jeff Law committed
1560
echo "$ac_t$hardcode_action" 1>&6
Jason Merrill committed
1561 1562 1563 1564 1565


reload_flag=
reload_cmds='$LD$reload_flag -o $output$reload_objs'
echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
#  
Jeff Law committed
1566
# PORTME Some linkers may need a different reload flag.
Jason Merrill committed
1567
reload_flag='-r'
#  
Jeff Law committed
1568
echo "$ac_t$reload_flag" 1>&6
Jason Merrill committed
1569 1570 1571 1572
test -n "$reload_flag" && reload_flag=" $reload_flag"

# PORTME Fill in your ld.so characteristics
library_names_spec=
#  
Jeff Law committed
1573
libname_spec='lib$name'
Jason Merrill committed
1574 1575
soname_spec=
postinstall_cmds=
#  
Jeff Law committed
1576
postuninstall_cmds=
Jason Merrill committed
1577
finish_cmds=
#  
Jeff Law committed
1578
finish_eval=
Jason Merrill committed
1579
shlibpath_var=
1580
shlibpath_overrides_runpath=unknown
Jason Merrill committed
1581 1582
version_type=none
dynamic_linker="$host_os ld.so"
1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597
sys_lib_dlsearch_path_spec="/lib /usr/lib"
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
file_magic_cmd=
file_magic_test_file=
deplibs_check_method='unknown'
# Need to set the preceding variable on all platforms that support
# interlibrary dependencies.
# 'none' -- dependencies not supported.
# `unknown' -- same as none, but documents that we really don't know.
# 'pass_all' -- all dependencies passed with no checks.
# 'test_compile' -- check by making test program.
# 'file_magic [regex]' -- check by looking for files in library path
# which responds to the $file_magic_cmd with a given egrep regex.
# If you have `file' or equivalent on your system and you're not sure
# whether `pass_all' will *always* work, you probably want this one.
Jason Merrill committed
1598 1599
echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
case "$host_os" in
1600
aix3*)
Jason Merrill committed
1601
  version_type=linux
#  
Jeff Law committed
1602
  library_names_spec='${libname}${release}.so$versuffix $libname.a'
Jason Merrill committed
1603 1604 1605
  shlibpath_var=LIBPATH

  # AIX has no versioning support, so we append a major version to the name.
#  
Jeff Law committed
1606 1607 1608
  soname_spec='${libname}${release}.so$major'
  ;;

1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620
aix4*)
  version_type=linux
  # AIX has no versioning support, so currently we can not hardcode correct
  # soname into executable. Probably we can add versioning support to
  # collect2, so additional links can be useful in future.
  # We preserve .a as extension for shared libraries though AIX4.2
  # and later linker supports .so
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
  shlibpath_var=LIBPATH
  deplibs_check_method=pass_all
  ;;

#  
Jeff Law committed
1621 1622 1623 1624 1625 1626
amigaos*)
  library_names_spec='$libname.ixlibrary $libname.a'
  # Create ${libname}_ixlibrary.a entries in /sys/libs.
  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'
  ;;

1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649
beos*)
  library_names_spec='${libname}.so'
  dynamic_linker="$host_os ld.so"
  shlibpath_var=LIBRARY_PATH
  ;;

bsdi4*)
  version_type=linux
  library_names_spec='${libname}.so$major ${libname}.so'
  soname_spec='${libname}.so'
  finish_cmds='PATH="$PATH:/sbin" ldconfig $libdir'
  shlibpath_var=LD_LIBRARY_PATH
  deplibs_check_method='file_magic ELF 32-bit LSB shared object'
  file_magic_cmd=/usr/bin/file
  file_magic_test_file=/shlib/libc.so
  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
  # the default ld.so.conf also contains /usr/contrib/lib and
  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
  # libtool to hard-code these into programs
  ;;

cygwin* | mingw*)
#  
Jeff Law committed
1650
  version_type=windows
1651 1652 1653 1654 1655
  if test "$with_gcc" = yes; then
    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
  else
    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
  fi
#  
Jeff Law committed
1656
  dynamic_linker='Win32 ld.exe'
1657 1658 1659 1660
  deplibs_check_method='file_magic file format pei*-i386.*architecture: i386'
  file_magic_cmd='objdump -f'
  need_lib_prefix=no
  # FIXME: first we should search . and the directory the executable is in
#  
Jeff Law committed
1661
  shlibpath_var=PATH
Jason Merrill committed
1662 1663
  ;;

1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686
freebsd1*)
  dynamic_linker=no
  ;;
  
freebsd*)
  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
  version_type=freebsd-$objformat
  case "$version_type" in
    freebsd-elf*)
      deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
      file_magic_cmd=/usr/bin/file
      file_magic_test_file=`echo /usr/lib/libc.so*`
      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
      need_version=no
      need_lib_prefix=no
      ;;
    freebsd-*)
      deplibs_check_method=unknown
      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
      need_version=yes
      ;;
  esac
  finish_cmds='PATH="$PATH:/sbin" OBJFORMAT="'"$objformat"'" ldconfig -m $libdir'
Jason Merrill committed
1687 1688 1689 1690
  shlibpath_var=LD_LIBRARY_PATH
  ;;

gnu*)
1691 1692
  version_type=linux
  library_names_spec='${libname}${release}.so$versuffix ${libname}.so'
Jason Merrill committed
1693 1694 1695
  shlibpath_var=LD_LIBRARY_PATH
  ;;

#  
Jeff Law committed
1696
hpux9* | hpux10* | hpux11*)
Jason Merrill committed
1697 1698 1699 1700
  # Give a soname corresponding to the major version so that dld.sl refuses to
  # link against other versions.
  dynamic_linker="$host_os dld.sl"
  version_type=sunos
1701 1702
  need_lib_prefix=no
  need_version=no
Jason Merrill committed
1703
  shlibpath_var=SHLIB_PATH
#  
Jeff Law committed
1704 1705
  library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
  soname_spec='${libname}${release}.sl$major'
Jason Merrill committed
1706 1707 1708 1709
  # HP-UX runs *really* slowly unless shared libraries are mode 555.
  postinstall_cmds='chmod 555 $lib'
  ;;

1710 1711
irix5*)
  version_type=irix
#  
Jeff Law committed
1712
  soname_spec='${libname}${release}.so'
1713
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
Jason Merrill committed
1714
  shlibpath_var=LD_LIBRARY_PATH
1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743
  deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" # or should it be pass_all?
  file_magic_cmd=/usr/bin/file
  file_magic_test_file=`echo /lib/libc.so*`
  shlibpath_overrides_runpath=no
  ;;

irix6*)
  version_type=irix
  need_lib_prefix=no
  need_version=no
  soname_spec='${libname}${release}.so'
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
  case "$LD" in # libtool.m4 will add one of these switches to LD
  *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
  *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
  *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
  *) libsuff= shlibsuff= libmagic=never-match;;
  esac
  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
  shlibpath_overrides_runpath=no
  # even though /usr/local/lib is always searched, the man-page says
  # shared libraries should not be installed there if they use an ABI
  # different from -32, so we'd better not search for shared libraries
  # there either
  sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
  sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
  deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" # or should it be pass_all?
  file_magic_cmd=/usr/bin/file
  file_magic_test_file=`echo /lib${libsuff}/libc.so*`
Jason Merrill committed
1744 1745 1746 1747 1748 1749 1750 1751 1752 1753
  ;;

# No shared lib support for Linux oldld, aout, or coff.
linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
  dynamic_linker=no
  ;;

# This must be Linux ELF.
linux-gnu*)
  version_type=linux
1754 1755
  need_lib_prefix=no
  need_version=no
#  
Jeff Law committed
1756 1757
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
1758
  finish_cmds='PATH="$PATH:/sbin" ldconfig -n $libdir'
Jason Merrill committed
1759
  shlibpath_var=LD_LIBRARY_PATH
1760 1761 1762 1763
  shlibpath_overrides_runpath=no
  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
  file_magic_cmd=/usr/bin/file
  file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
Jason Merrill committed
1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775

  if test -f /lib/ld.so.1; then
    dynamic_linker='GNU ld.so'
  else
    # Only the GNU ld.so supports shared libraries on MkLinux.
    case "$host_cpu" in
    powerpc*) dynamic_linker=no ;;
    *) dynamic_linker='Linux ld.so' ;;
    esac
  fi
  ;;

1776
netbsd*)
Jason Merrill committed
1777
  version_type=sunos
1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796
  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
    library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
    finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir'
    dynamic_linker='NetBSD (a.out) ld.so'
  else
    library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
    soname_spec='${libname}${release}.so$major'
    dynamic_linker='NetBSD ld.elf_so'
  fi
  shlibpath_var=LD_LIBRARY_PATH
  ;;

openbsd*)
  version_type=sunos
  if test "$with_gnu_ld" = yes; then
    need_lib_prefix=no
    need_version=no
  fi
  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
Jason Merrill committed
1797 1798 1799 1800
  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
  shlibpath_var=LD_LIBRARY_PATH
  ;;

#  
Jeff Law committed
1801 1802
os2*)
  libname_spec='$name'
1803
  need_lib_prefix=no
#  
Jeff Law committed
1804 1805 1806 1807 1808
  library_names_spec='$libname.dll $libname.a'
  dynamic_linker='OS/2 ld.exe'
  shlibpath_var=LIBPATH
  ;;

Jason Merrill committed
1809 1810
osf3* | osf4*)
  version_type=osf
#  
Jeff Law committed
1811
  soname_spec='${libname}${release}.so'
1812
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
Jason Merrill committed
1813
  shlibpath_var=LD_LIBRARY_PATH
1814 1815 1816 1817 1818 1819 1820 1821 1822 1823
  # deplibs_check_method='pass_all'
  # Although pass_all appears to work, it copies symbols from static libraries
  # into shared ones and exports them.  So, when a program is linked with two
  # or more libraries that have got copies of the same symbols, link fails
  # This was only tested on osf4:
  deplibs_check_method='file_magic COFF format alpha shared library'
  file_magic_cmd=/usr/bin/file
  file_magic_test_file=/shlib/libc.so
  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
Jason Merrill committed
1824 1825 1826 1827
  ;;

sco3.2v5*)
  version_type=osf
#  
Jeff Law committed
1828 1829
  soname_spec='${libname}${release}.so$major'
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
Jason Merrill committed
1830 1831 1832
  shlibpath_var=LD_LIBRARY_PATH
  ;;

1833
solaris*)
Jason Merrill committed
1834
  version_type=linux
1835 1836
  need_lib_prefix=no
  need_version=no
#  
Jeff Law committed
1837 1838
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
Jason Merrill committed
1839
  shlibpath_var=LD_LIBRARY_PATH
1840
  shlibpath_overrides_runpath=yes
1841 1842
  # ldd complains unless libraries are executable
  postinstall_cmds='chmod +x $lib'
1843 1844 1845
  deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
  file_magic_cmd=/usr/bin/file
  file_magic_test_file=/lib/libc.so
Jason Merrill committed
1846 1847 1848 1849
  ;;

sunos4*)
  version_type=sunos
1850
  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
Jason Merrill committed
1851 1852
  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
  shlibpath_var=LD_LIBRARY_PATH
1853 1854 1855 1856 1857
  shlibpath_overrides_runpath=yes
  if test "$with_gnu_ld" = yes; then
    need_lib_prefix=no
  fi
  need_version=yes
Jason Merrill committed
1858 1859
  ;;

1860
sysv4.2uw2* | sysv4.3* | sysv5*)
#  
Jeff Law committed
1861 1862 1863 1864
  version_type=linux
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
  shlibpath_var=LD_LIBRARY_PATH
1865 1866 1867 1868 1869
  case "$host_vendor" in
    ncr)
      deplibs_check_method='pass_all'
      ;;
  esac
#  
Jeff Law committed
1870 1871 1872 1873 1874 1875 1876 1877 1878
  ;;

uts4*)
  version_type=linux
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
  shlibpath_var=LD_LIBRARY_PATH
  ;;

1879 1880 1881 1882 1883 1884 1885 1886 1887
dgux*)
  version_type=linux
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
  shlibpath_var=LD_LIBRARY_PATH
  ;;

Jason Merrill committed
1888 1889 1890 1891
*)
  dynamic_linker=no
  ;;
esac
1892
echo "$ac_t$dynamic_linker" 1>&6
Jason Merrill committed
1893 1894
test "$dynamic_linker" = no && can_build_shared=no

#  
Jeff Law committed
1895
# Report the final consequences.
Jason Merrill committed
1896 1897
echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6

1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921
if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
  case "$deplibs_check_method" in
  "file_magic "*)
    file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
    if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
       egrep "$file_magic_regex" > /dev/null; then
      :
    else
      cat <<EOF 1>&2

*** Warning: the command libtool uses to detect shared libraries,
*** $file_magic_cmd, produces output that libtool cannot recognize.
*** The result is that libtool may fail to recognize shared libraries
*** as such.  This will affect the creation of libtool libraries that
*** depend on shared libraries, but programs linked with such libtool
*** libraries will work regardless of this problem.  Nevertheless, you
*** may want to report the problem to your system manager and/or to
*** bug-libtool@gnu.org

EOF
    fi ;;
  esac
fi

Jason Merrill committed
1922 1923 1924
echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
test "$can_build_shared" = "no" && enable_shared=no

#  
Jeff Law committed
1925 1926
# On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC.
Jason Merrill committed
1927
case "$host_os" in
1928
aix3*)
Jason Merrill committed
1929 1930
  test "$enable_shared" = yes && enable_static=no
  if test -n "$RANLIB"; then
1931
    archive_cmds="$archive_cmds~\$RANLIB \$lib"
Jason Merrill committed
1932 1933 1934
    postinstall_cmds='$RANLIB $lib'
  fi
  ;;
1935 1936 1937 1938

aix4*)
  test "$enable_shared" = yes && enable_static=no
  ;;
Jason Merrill committed
1939 1940
esac

#  
Jeff Law committed
1941
echo "$ac_t$enable_shared" 1>&6
Jason Merrill committed
1942 1943 1944 1945 1946 1947

# Make sure either enable_shared or enable_static is yes.
test "$enable_shared" = yes || enable_static=yes

echo "checking whether to build static libraries... $enable_static" 1>&6

1948 1949 1950 1951 1952 1953 1954 1955 1956
if test "$hardcode_action" = relink; then
  # Fast installation is not supported
  enable_fast_install=no
elif test "$shlibpath_overrides_runpath" = yes ||
     test "$enable_shared" = no; then
  # Fast installation is not necessary
  enable_fast_install=needless
fi

#  
Jeff Law committed
1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968
echo $ac_n "checking for objdir... $ac_c" 1>&6
rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
if test -d .libs; then
  objdir=.libs
else
  # MS-DOS does not allow filenames that begin with a dot.
  objdir=_libs
fi
rmdir .libs 2>/dev/null
echo "$ac_t$objdir" 1>&6

1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404
if test "x$enable_dlopen" != xyes; then
  enable_dlopen=unknown
  enable_dlopen_self=unknown
  enable_dlopen_self_static=unknown
else
if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
  lt_cv_dlopen=no lt_cv_dlopen_libs=
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
echo "$progname:1977: checking for dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 1982 "ltconfig"
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char dlopen(); below.  */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char dlopen();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_dlopen) || defined (__stub___dlopen)
choke me
#else
dlopen();
#endif

; return 0; }
EOF
if { (eval echo $progname:2004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  rm -rf conftest*
  eval "ac_cv_func_dlopen=yes"
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_func_dlopen=no"
fi
rm -f conftest*
fi

if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  lt_cv_dlopen="dlopen"
else
  echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
echo "$progname:2022: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-ldl  $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2030 "ltconfig"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char dlopen();

int main() {
dlopen()
; return 0; }
EOF
if { (eval echo $progname:2040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
else
  echo "$ac_t""no" 1>&6
echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
echo "$progname:2059: checking for dld_link in -ldld" >&5
ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-ldld  $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2067 "ltconfig"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char dld_link();

int main() {
dld_link()
; return 0; }
EOF
if { (eval echo $progname:2077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
else
  echo "$ac_t""no" 1>&6
echo $ac_n "checking for shl_load""... $ac_c" 1>&6
echo "$progname:2096: checking for shl_load" >&5
if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 2101 "ltconfig"
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char shl_load(); below.  */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char shl_load();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_shl_load) || defined (__stub___shl_load)
choke me
#else
shl_load();
#endif

; return 0; }
EOF
if { (eval echo $progname:2123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  rm -rf conftest*
  eval "ac_cv_func_shl_load=yes"
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_func_shl_load=no"
fi
rm -f conftest*
fi

if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  lt_cv_dlopen="shl_load"
else
  echo "$ac_t""no" 1>&6
echo $ac_n "checking for LoadLibrary""... $ac_c" 1>&6
echo "$progname:2141: checking for LoadLibrary" >&5
if eval "test \"`echo '$''{'ac_cv_func_LoadLibrary'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 2146 "ltconfig"
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char LoadLibrary(); below.  */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char LoadLibrary();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_LoadLibrary) || defined (__stub___LoadLibrary)
choke me
#else
LoadLibrary();
#endif

; return 0; }
EOF
if { (eval echo $progname:2168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  rm -rf conftest*
  eval "ac_cv_func_LoadLibrary=yes"
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_func_LoadLibrary=no"
fi
rm -f conftest*
fi

if eval "test \"`echo '$ac_cv_func_'LoadLibrary`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  lt_cv_dlopen="LoadLibrary"
else
  echo "$ac_t""no" 1>&6
fi

      
fi

    
fi

  
fi


fi

fi

  if test "x$lt_cv_dlopen" != xno; then
    enable_dlopen=yes
  fi

  case "$lt_cv_dlopen" in
  dlopen)
for ac_hdr in dlfcn.h; do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "$progname:2210: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 2215 "ltconfig"
#include <$ac_hdr>
int fnord = 0;
EOF
ac_try="$ac_compile conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo $progname:2220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=yes"
else
  echo "$ac_err" >&5
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
  echo "$ac_t""yes" 1>&6
else
  echo "$ac_t""no" 1>&6
fi
done

    if test "x$ac_cv_header_dlfcn_h" = xyes; then
      CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
    fi
    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
    LIBS="$lt_cv_dlopen_libs $LIBS"

  echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
echo "$progname:2248: checking whether a program can dlopen itself" >&5
if test "${lt_cv_dlopen_self+set}" = set; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
    lt_cv_dlopen_self=cross
  else
    cat > conftest.c <<EOF
#line 2256 "ltconfig"

#if HAVE_DLFCN_H
#include <dlfcn.h>
#endif

#include <stdio.h>

#ifdef RTLD_GLOBAL
# define LTDL_GLOBAL	RTLD_GLOBAL
#else
# ifdef DL_GLOBAL
#  define LTDL_GLOBAL	DL_GLOBAL
# else
#  define LTDL_GLOBAL	0
# endif
#endif

/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
   find out it does not work in some platform. */
#ifndef LTDL_LAZY_OR_NOW
# ifdef RTLD_LAZY
#  define LTDL_LAZY_OR_NOW	RTLD_LAZY
# else
#  ifdef DL_LAZY
#   define LTDL_LAZY_OR_NOW	DL_LAZY
#  else
#   ifdef RTLD_NOW
#    define LTDL_LAZY_OR_NOW	RTLD_NOW
#   else
#    ifdef DL_NOW
#     define LTDL_LAZY_OR_NOW	DL_NOW
#    else
#     define LTDL_LAZY_OR_NOW	0
#    endif
#   endif
#  endif
# endif
#endif

fnord() { int i=42;}
main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
	       if(ptr1 || ptr2) exit(0); } exit(1); } 

EOF
if { (eval echo $progname:2302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
  lt_cv_dlopen_self=yes
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -fr conftest*
  lt_cv_dlopen_self=no
fi
rm -fr conftest*
fi

fi

echo "$ac_t""$lt_cv_dlopen_self" 1>&6

  if test "$lt_cv_dlopen_self" = yes; then
    LDFLAGS="$LDFLAGS $link_static_flag"
  echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
echo "$progname:2321: checking whether a statically linked program can dlopen itself" >&5
if test "${lt_cv_dlopen_self_static+set}" = set; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
    lt_cv_dlopen_self_static=cross
  else
    cat > conftest.c <<EOF
#line 2329 "ltconfig"

#if HAVE_DLFCN_H
#include <dlfcn.h>
#endif

#include <stdio.h>

#ifdef RTLD_GLOBAL
# define LTDL_GLOBAL	RTLD_GLOBAL
#else
# ifdef DL_GLOBAL
#  define LTDL_GLOBAL	DL_GLOBAL
# else
#  define LTDL_GLOBAL	0
# endif
#endif

/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
   find out it does not work in some platform. */
#ifndef LTDL_LAZY_OR_NOW
# ifdef RTLD_LAZY
#  define LTDL_LAZY_OR_NOW	RTLD_LAZY
# else
#  ifdef DL_LAZY
#   define LTDL_LAZY_OR_NOW	DL_LAZY
#  else
#   ifdef RTLD_NOW
#    define LTDL_LAZY_OR_NOW	RTLD_NOW
#   else
#    ifdef DL_NOW
#     define LTDL_LAZY_OR_NOW	DL_NOW
#    else
#     define LTDL_LAZY_OR_NOW	0
#    endif
#   endif
#  endif
# endif
#endif

fnord() { int i=42;}
main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
    if(ptr1 || ptr2) exit(0); } exit(1); } 

EOF
if { (eval echo $progname:2375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
  lt_cv_dlopen_self_static=yes
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -fr conftest*
  lt_cv_dlopen_self_static=no
fi
rm -fr conftest*
fi

fi

echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
fi
    ;;
  esac

  case "$lt_cv_dlopen_self" in
  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
  *) enable_dlopen_self=unknown ;;
  esac

  case "$lt_cv_dlopen_self_static" in
  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
  *) enable_dlopen_self_static=unknown ;;
  esac
fi

#  
Jeff Law committed
2405 2406 2407
# Copy echo and quote the copy, instead of the original, because it is
# used later.
ltecho="$echo"
2408 2409 2410 2411
if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
   ltecho="$CONFIG_SHELL \$0 --fallback-echo"
fi
LTSHELL="$SHELL"
#  
Jeff Law committed
2412

2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450
LTCONFIG_VERSION="$VERSION"

# Only quote variables if we're using ltmain.sh.
case "$ltmain" in
*.sh)
  # Now quote all the things that may contain metacharacters.
  for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
    old_LN_S old_DLLTOOL old_AS AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
    reload_flag reload_cmds wl \
    pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
    thread_safe_flag_spec whole_archive_flag_spec libname_spec \
    library_names_spec soname_spec \
    RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
    old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
    file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
    finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
    hardcode_libdir_flag_spec hardcode_libdir_separator  \
    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
    compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do

    case "$var" in
    reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
    old_postinstall_cmds | old_postuninstall_cmds | \
    export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
    postinstall_cmds | postuninstall_cmds | \
    finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
      # Double-quote double-evaled strings.
      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
      ;;
    *)
      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
      ;;
    esac
  done

  case "$ltecho" in
  *'\$0 --fallback-echo"')
    ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
#  
Jeff Law committed
2451 2452
    ;;
  esac
Jason Merrill committed
2453

2454 2455 2456 2457
  trap "$rm \"$ofile\"; exit 1" 1 2 15
  echo "creating $ofile"
  $rm "$ofile"
  cat <<EOF > "$ofile"
#  
Jeff Law committed
2458 2459 2460
#! $SHELL

# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
2461
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
#  
Jeff Law committed
2462 2463
# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
#
2464
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
#  
Jeff Law committed
2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.

# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed="sed -e s/^X//"

# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi

### BEGIN LIBTOOL CONFIG
2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517
EOF
  cfgfile="$ofile"
  ;;

*)
  # Double-quote the variables that need it (for aesthetics).
  for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
    old_LN_S old_DLLTOOL old_AS; do
    eval "$var=\\\"\$var\\\""
  done

  # Just create a config file.
  cfgfile="$ofile.cfg"
  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
  echo "creating $cfgfile"
  $rm "$cfgfile"
  cat <<EOF > "$cfgfile"
# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
EOF
  ;;
esac

cat <<EOF >> "$cfgfile"
#  
Jeff Law committed
2518
# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
Jason Merrill committed
2519
#
2520 2521
# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
# LD=$old_LD NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
#  
Jeff Law committed
2522
# DLLTOOL="$old_DLLTOOL" AS="$old_AS" \\
Jason Merrill committed
2523 2524 2525 2526 2527 2528
#   $0$ltconfig_args
#
# Compiler and other test output produced by $progname, useful for
# debugging $progname, is in ./config.log if it exists.

# The version of $progname that generated this script.
2529
LTCONFIG_VERSION=$LTCONFIG_VERSION
Jason Merrill committed
2530

#  
Jeff Law committed
2531
# Shell to use when invoking shell scripts.
2532
SHELL=$LTSHELL
#  
Jeff Law committed
2533 2534

# Whether or not to build shared libraries.
Jason Merrill committed
2535 2536
build_libtool_libs=$enable_shared

#  
Jeff Law committed
2537
# Whether or not to build static libraries.
Jason Merrill committed
2538 2539
build_old_libs=$enable_static

2540 2541 2542
# Whether or not to optimize for fast installation.
fast_install=$enable_fast_install

Jason Merrill committed
2543
# The host system.
2544 2545
host_alias=$host_alias
host=$host
Jason Merrill committed
2546

#  
Jeff Law committed
2547
# An echo program that does not interpret backslashes.
2548
echo=$ltecho
#  
Jeff Law committed
2549

Jason Merrill committed
2550
# The archiver.
2551
AR=$AR
#  
Jeff Law committed
2552 2553

# The default C compiler.
2554
CC=$CC
Jason Merrill committed
2555 2556

# The linker used to build libraries.
2557
LD=$LD
Jason Merrill committed
2558 2559

# Whether we need hard or soft links.
2560
LN_S=$LN_S
#  
Jeff Law committed
2561 2562

# A BSD-compatible nm program.
2563
NM=$NM
#  
Jeff Law committed
2564

2565
# Used on cygwin: DLL creation program.
#  
Jeff Law committed
2566 2567
DLLTOOL="$DLLTOOL"

2568
# Used on cygwin: assembler.
#  
Jeff Law committed
2569 2570 2571
AS="$AS"

# The name of the directory that contains temporary libtool files.
2572
objdir=$objdir
Jason Merrill committed
2573 2574

# How to create reloadable object files.
2575 2576
reload_flag=$reload_flag
reload_cmds=$reload_cmds
Jason Merrill committed
2577 2578

# How to pass a linker flag through the compiler.
2579
wl=$wl
Jason Merrill committed
2580

2581 2582 2583 2584 2585 2586
# Object file suffix (normally "o").
objext="$objext"

# Old archive suffix (normally "a").
libext="$libext"

Jason Merrill committed
2587
# Additional compiler flags for building library objects.
2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612
pic_flag=$pic_flag

# Does compiler simultaneously support -c and -o options
compiler_c_o=$compiler_c_o

# Can we write directly to a .lo ?
compiler_o_lo=$compiler_o_lo

# Must we lock files when doing compilation ?
need_locks=$need_locks

# Do we need the lib prefix for modules?
need_lib_prefix=$need_lib_prefix

# Do we need a version for libraries?
need_version=$need_version

# Whether dlopen is supported.
dlopen=$enable_dlopen

# Whether dlopen of programs is supported.
dlopen_self=$enable_dlopen_self

# Whether dlopen of statically linked programs is supported.
dlopen_self_static=$enable_dlopen_self_static
Jason Merrill committed
2613 2614

# Compiler flag to prevent dynamic linking.
2615
link_static_flag=$link_static_flag
Jason Merrill committed
2616

#  
Jeff Law committed
2617
# Compiler flag to turn off builtin functions.
2618
no_builtin_flag=$no_builtin_flag
Jason Merrill committed
2619

#  
Jeff Law committed
2620
# Compiler flag to allow reflexive dlopens.
2621
export_dynamic_flag_spec=$export_dynamic_flag_spec
Jason Merrill committed
2622

2623
# Compiler flag to generate shared objects directly from archives.
2624 2625 2626 2627
whole_archive_flag_spec=$whole_archive_flag_spec

# Compiler flag to generate thread-safe objects.
thread_safe_flag_spec=$thread_safe_flag_spec
2628

Jason Merrill committed
2629 2630 2631
# Library versioning type.
version_type=$version_type

#  
Jeff Law committed
2632
# Format of library name prefix.
2633
libname_spec=$libname_spec
#  
Jeff Law committed
2634

Jason Merrill committed
2635 2636
# List of archive names.  First name is the real one, the rest are links.
# The last name is the one that the linker finds with -lNAME.
2637
library_names_spec=$library_names_spec
Jason Merrill committed
2638 2639

# The coded name of the library, if different from the real name.
2640
soname_spec=$soname_spec
Jason Merrill committed
2641 2642

# Commands used to build and install an old-style archive.
2643 2644 2645 2646
RANLIB=$RANLIB
old_archive_cmds=$old_archive_cmds
old_postinstall_cmds=$old_postinstall_cmds
old_postuninstall_cmds=$old_postuninstall_cmds
#  
Jeff Law committed
2647 2648

# Create an old-style archive from a shared archive.
2649
old_archive_from_new_cmds=$old_archive_from_new_cmds
Jason Merrill committed
2650 2651

# Commands used to build and install a shared archive.
2652 2653 2654 2655 2656 2657 2658 2659 2660 2661
archive_cmds=$archive_cmds
archive_expsym_cmds=$archive_expsym_cmds
postinstall_cmds=$postinstall_cmds
postuninstall_cmds=$postuninstall_cmds

# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$deplibs_check_method

# Command to use when deplibs_check_method == file_magic
file_magic_cmd=$file_magic_cmd
Jason Merrill committed
2662 2663

# Flag that allows shared libraries with undefined symbols to be built.
2664
allow_undefined_flag=$allow_undefined_flag
#  
Jeff Law committed
2665 2666

# Flag that forces no undefined symbols.
2667
no_undefined_flag=$no_undefined_flag
Jason Merrill committed
2668 2669

# Commands used to finish a libtool library installation in a directory.
2670
finish_cmds=$finish_cmds
#  
Jeff Law committed
2671 2672

# Same as above, but a single script fragment to be evaled but not shown.
2673
finish_eval=$finish_eval
Jason Merrill committed
2674

#  
Jeff Law committed
2675
# Take the output of nm and produce a listing of raw symbols and C names.
2676 2677 2678 2679
global_symbol_pipe=$global_symbol_pipe

# Transform the output of nm in a proper C declaration
global_symbol_to_cdecl=$global_symbol_to_cdecl
Jason Merrill committed
2680 2681 2682 2683 2684 2685 2686

# This is the shared library runtime path variable.
runpath_var=$runpath_var

# This is the shared library path variable.
shlibpath_var=$shlibpath_var

2687 2688 2689
# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=$shlibpath_overrides_runpath

Jason Merrill committed
2690 2691 2692 2693 2694
# How to hardcode a shared library path into an executable.
hardcode_action=$hardcode_action

# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
2695
hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
Jason Merrill committed
2696 2697

# Whether we need a single -rpath flag with a separated argument.
2698
hardcode_libdir_separator=$hardcode_libdir_separator
Jason Merrill committed
2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710

# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
# resulting binary.
hardcode_direct=$hardcode_direct

# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
# resulting binary.
hardcode_minus_L=$hardcode_minus_L

# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
# the resulting binary.
hardcode_shlibpath_var=$hardcode_shlibpath_var
2711

2712 2713 2714 2715 2716 2717
# Compile-time system search path for libraries
sys_lib_search_path_spec=$sys_lib_search_path_spec

# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec

2718 2719
# Fix the shell variable \$srcfile for the compiler.
fix_srcfile_path="$fix_srcfile_path"
2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732

# Set to yes if exported symbols are required
always_export_symbols=$always_export_symbols

# The command to extract exported symbols
export_symbols_cmds=$export_symbols_cmds

# Symbols that should not be listed in the preloaded symbols
exclude_expsyms=$exclude_expsyms

# Symbols that must always be exported
include_expsyms=$include_expsyms

Jason Merrill committed
2733 2734
EOF

2735 2736 2737 2738 2739 2740 2741
case "$ltmain" in
*.sh)
  echo '### END LIBTOOL CONFIG' >> "$ofile"
  echo >> "$ofile"
  case "$host_os" in
  aix3*)
    cat <<\EOF >> "$ofile"
#  
Jeff Law committed
2742 2743 2744 2745 2746 2747 2748 2749 2750

# AIX sometimes has problems with the GCC collect2 program.  For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
if test "${COLLECT_NAMES+set}" != set; then
  COLLECT_NAMES=
  export COLLECT_NAMES
fi
EOF
2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762
    ;;
  esac

  # Append the ltmain.sh script.
  cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)

  chmod +x "$ofile"
  ;;

*)
  # Compile the libtool program.
  echo "FIXME: would compile $ltmain"
Jason Merrill committed
2763 2764 2765
  ;;
esac

2766
test -n "$cache_file" || exit 0
#  
Jeff Law committed
2767

2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815
# AC_CACHE_SAVE
trap '' 1 2 15
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs.  It is not useful on other systems.
# If it contains results you don't want to keep, you may remove or edit it.
#
# By default, configure uses ./config.cache as the cache file,
# creating it if it does not exist already.  You can give configure
# the --cache-file=FILE option to use a different cache file; that is
# what configure does when it calls configure scripts in
# subdirectories, so they share the cache.
# Giving --cache-file=/dev/null disables caching, for debugging configure.
# config.status only pays attention to the cache file if you give it the
# --recheck option to rerun configure.
#
EOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, don't put newlines in cache variables' values.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
  case `(ac_space=' '; set | grep ac_space) 2>&1` in
  *ac_space=\ *)
    # `set' does not quote correctly, so add quotes (double-quote substitution
    # turns \\\\ into \\, and sed turns \\ into \).
    sed -n \
      -e "s/'/'\\\\''/g" \
      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
    ;;
  *)
    # `set' quotes correctly as required by POSIX, so do not add quotes.
    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
    ;;
  esac >> confcache
if cmp -s $cache_file confcache; then
  :
else
  if test -w $cache_file; then
    echo "updating cache $cache_file"
    cat confcache > $cache_file
  else
    echo "not updating unwritable cache $cache_file"
  fi
fi
rm -f confcache
Jason Merrill committed
2816 2817 2818 2819 2820 2821 2822

exit 0

# Local Variables:
# mode:shell-script
# sh-indentation:2
# End: