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

# ltconfig - Create a system-specific libtool.
4
# Copyright (C) 1996-2000 Free Software Foundation, Inc.
Jason Merrill committed
5
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
Jason Merrill committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#
# 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
elif test "X$1" = X--fallback-echo; then
Jason Merrill committed
35 36
  # Avoid inline document here, it may be left over
  :
37 38 39 40
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
  # Yippee, $echo works!
  :
else
#  
Jeff Law committed
41 42 43 44
  # Restart under the correct shell.
  exec "$SHELL" "$0" --no-reexec ${1+"$@"}
fi

Jason Merrill committed
45 46 47 48 49 50 51 52 53
if test "X$1" = X--fallback-echo; then
  # used as fallback echo
  shift
  cat <<EOF
$*
EOF
  exit 0
fi

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

#  
Jeff Law committed
64 65
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
Jason Merrill committed
66
if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
#  
Jeff Law committed
67

Jason Merrill committed
68
if test "X${echo_test_string+set}" != Xset; then
69 70 71 72 73 74 75 76 77 78 79
  # 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

80 81 82 83 84
if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
   test "X$echo_testing_string" = "X$echo_test_string"; then
  :
else
#  
Jeff Law committed
85 86 87 88 89
  # 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.
90 91

  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
#  
Jeff Law committed
92
  for dir in $PATH /usr/ucb; do
Jason Merrill committed
93
    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
94
       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
95 96
       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
       test "X$echo_testing_string" = "X$echo_test_string"; then
#  
Jeff Law committed
97 98 99 100 101 102 103 104
      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.
105
    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
106 107
       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
       test "X$echo_testing_string" = "X$echo_test_string"; then
#  
Jeff Law committed
108 109
      # This shell has a builtin print -r that does the trick.
      echo='print -r'
Jason Merrill committed
110 111
    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
	 test "X$CONFIG_SHELL" != X/bin/ksh; then
112
      # If we have ksh, try running ltconfig again with it.
113 114
      ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
      export ORIGINAL_CONFIG_SHELL
115 116 117
      CONFIG_SHELL=/bin/ksh
      export CONFIG_SHELL
      exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
#  
Jeff Law committed
118 119
    else
      # Try using printf.
120
      echo='printf %s\n'
121
      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
122 123
	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
	 test "X$echo_testing_string" = "X$echo_test_string"; then
124 125
	# Cool, printf works
	:
126 127 128 129
      elif echo_testing_string=`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null` &&
	   test "X$echo_testing_string" = 'X\t' &&
	   echo_testing_string=`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
	   test "X$echo_testing_string" = "X$echo_test_string"; then
130 131 132 133 134
	CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
	export CONFIG_SHELL
	SHELL="$CONFIG_SHELL"
	export SHELL
	echo="$CONFIG_SHELL $0 --fallback-echo"
135 136 137 138
      elif echo_testing_string=`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null` &&
	   test "X$echo_testing_string" = 'X\t' &&
	   echo_testing_string=`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
	   test "X$echo_testing_string" = "X$echo_test_string"; then
139 140 141 142 143 144 145 146 147 148 149 150 151 152
	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`
153
	  
154
	  export echo_test_string
155
	  exec "${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}}" "$0" ${1+"$@"}
156 157 158 159
	else
	  # Oops.  We lost completely, so just stick with echo.
	  echo=echo
	fi
#  
Jeff Law committed
160 161 162 163 164 165 166 167 168 169 170 171 172
      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'

173 174 175 176
# 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
177
# The name of this program.
#  
Jeff Law committed
178
progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
Jason Merrill committed
179 180 181 182

# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
183
VERSION=1.4a
184
TIMESTAMP=" (1.641.2.122 2000/09/30 05:27:52)"
Jason Merrill committed
185 186
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
Jason Merrill committed
187 188 189 190 191
rm="rm -f"

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

# Global variables:
#  
Jeff Law committed
192
default_ofile=libtool
Jason Merrill committed
193 194
can_build_shared=yes
enable_shared=yes
Jason Merrill committed
195 196
# All known linkers require a `.a' archive for static linking (except M$VC,
# which needs '.lib').
Jason Merrill committed
197
enable_static=yes
198 199
enable_fast_install=yes
enable_dlopen=unknown
Jason Merrill committed
200
enable_win32_dll=no
201
pic_mode=default
Jason Merrill committed
202 203 204 205 206 207
ltmain=
silent=
srcdir=
ac_config_guess=
ac_config_sub=
host=
208 209
build=NONE
nonopt=NONE
#  
Jeff Law committed
210
ofile="$default_ofile"
Jason Merrill committed
211
verify_host=yes
212
tagname=
Jason Merrill committed
213 214
with_gcc=no
with_gnu_ld=no
215 216
need_locks=yes
ac_ext=c
217
libext=a
218
cache_file=
Jason Merrill committed
219

220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268
## Dependencies to place before and after the object being linked:
predep_objects=
postdep_objects=
predeps=
postdeps=
compiler_lib_search_path=

## Link characteristics:
allow_undefined_flag=
no_undefined_flag=
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
archive_cmds=
archive_expsym_cmds=
old_archive_from_new_cmds=
old_archive_from_expsyms_cmds=
striplib=
old_striplib=
export_dynamic_flag_spec=
whole_archive_flag_spec=
thread_safe_flag_spec=
hardcode_into_libs=no
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
hardcode_shlibpath_var=unsupported
runpath_var=
link_all_deplibs=unknown
always_export_symbols=no
export_symbols_cmds='$NM $libobjs $convenience | $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="_GLOBAL_OFFSET_TABLE_"
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
# platforms (ab)use it in PIC code, but their linkers get confused if
# the symbol is explicitly referenced.  Since portable code cannot
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
extract_expsyms_cmds=

## Tools:
Jason Merrill committed
269
old_AR="$AR"
270
old_AR_FLAGS="$AR_FLAGS"
Jason Merrill committed
271 272 273
old_CC="$CC"
old_CFLAGS="$CFLAGS"
old_CPPFLAGS="$CPPFLAGS"
Jason Merrill committed
274
old_LDFLAGS="$LDFLAGS"
275
old_LIBS="$LIBS"
276
old_MAGIC_CMD="$MAGIC_CMD"
Jason Merrill committed
277 278
old_LD="$LD"
old_LN_S="$LN_S"
279
old_LTCC="$LTCC"
#  
Jeff Law committed
280
old_NM="$NM"
Jason Merrill committed
281
old_RANLIB="$RANLIB"
282 283
old_STRIP="$STRIP"
old_AS="$AS"
#  
Jeff Law committed
284
old_DLLTOOL="$DLLTOOL"
Jason Merrill committed
285
old_OBJDUMP="$OBJDUMP"
286 287 288 289 290
old_OBJEXT="$OBJEXT"
old_EXEEXT="$EXEEXT"
old_reload_flag="$reload_flag"
old_deplibs_check_method="$deplibs_check_method"
old_file_magic_cmd="$file_magic_cmd"
Jason Merrill committed
291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310

# 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
311
Usage: $progname [OPTION]... LTMAIN [HOST]
Jason Merrill committed
312 313 314

Generate a system-specific libtool script.

315
    --build                configure for building on BUILD [BUILD=HOST]
#  
Jeff Law committed
316
    --debug                enable verbose shell tracing
Jason Merrill committed
317 318
    --disable-shared       do not build shared libraries
    --disable-static       do not build static libraries
319 320
    --disable-fast-install do not optimize for fast installation
    --enable-dlopen        enable dlopen support
Jason Merrill committed
321
    --enable-win32-dll     enable building dlls on win32 hosts
Jason Merrill committed
322 323
    --help                 display this help and exit
    --no-verify            do not verify that HOST is a valid host type
#  
Jeff Law committed
324
-o, --output=FILE          specify the output file [default=$default_ofile]
Jason Merrill committed
325
    --quiet                same as \`--silent'
#  
Jeff Law committed
326
    --silent               do not print informational messages
Jason Merrill committed
327 328
    --srcdir=DIR           find \`config.guess' in DIR
    --version              output version information and exit
329
    --add-tag=TAG          append an alternate configuration
Jason Merrill committed
330 331
    --with-gcc             assume that the GNU C compiler will be used
    --with-gnu-ld          assume that the C compiler uses the GNU linker
332 333
    --prefer-pic           try to use only PIC objects
    --prefer-non-pic       try to use only non-PIC objects
334 335
    --disable-lock         disable file locking
    --cache-file=FILE      configure cache file
Jason Merrill committed
336

337 338
LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
that provides basic libtool functionality.
Jason Merrill committed
339 340 341 342 343 344

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

345 346 347
  --build) prev=build ;;
  --build=*) build="$optarg" ;;

#  
Jeff Law committed
348 349 350 351 352
  --debug)
    echo "$progname: enabling shell trace mode"
    set -x
    ;;

Jason Merrill committed
353 354 355 356
  --disable-shared) enable_shared=no ;;

  --disable-static) enable_static=no ;;

357 358 359 360
  --disable-fast-install) enable_fast_install=no ;;

  --enable-dlopen) enable_dlopen=yes ;;

Jason Merrill committed
361 362
  --enable-win32-dll) enable_win32_dll=yes ;;

Jason Merrill committed
363 364 365 366 367 368 369
  --quiet | --silent) silent=yes ;;

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

  --no-verify) verify_host=no ;;

#  
Jeff Law committed
370 371 372
  --output | -o) prev=ofile ;;
  --output=*) ofile="$optarg" ;;

373
  --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
Jason Merrill committed
374

375 376 377
  --add-tag) prev=tagname ;;
  --add-tag=*) tagname="$optarg" ;;

Jason Merrill committed
378 379 380
  --with-gcc) with_gcc=yes ;;
  --with-gnu-ld) with_gnu_ld=yes ;;

381 382 383
  --prefer-pic) pic_mode=yes ;;
  --prefer-non-pic) pic_mode=no ;;

384 385 386 387
  --disable-lock) need_locks=no ;;

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

Jason Merrill committed
388 389 390 391 392 393 394 395 396 397
  -*)
    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
398
# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
Jason Merrill committed
399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416
#      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

417
if test ! -f "$ltmain"; then
#  
Jeff Law committed
418 419 420
  echo "$progname: \`$ltmain' does not exist" 1>&2
  echo "$help" 1>&2
  exit 1
Jason Merrill committed
421 422
fi

423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450
if test -n "$tagname"; then
  # Check whether tagname contains only valid characters
  case "$tagname" in
  *[!-_A-Za-z0-9,/]*)
    echo "$progname: invalid tag name: $tagname" 1>&2
    exit 1
    ;;
  esac

  if grep "^### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$ofile" > /dev/null; then
    echo "$progname: tag name $tagname already exists" 1>&2
    exit 1
  fi

  if test ! -f "$ofile"; then
    echo "$progname: warning: output file \`$ofile' does not exist" 1>&2
  fi

  if test -z "$LTCC"; then
    eval "`$SHELL $ofile --config | grep '^LTCC='`"
    if test -z "$LTCC"; then
      echo "$progname: warning: output file \`$ofile' does not look like a libtool script" 1>&2
    else
      echo "$progname: warning: using \`LTCC=$LTCC', extracted from \`$ofile'" 1>&2
    fi
  fi
fi

Jason Merrill committed
451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482
# 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).
Jason Merrill committed
483 484
if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
if test "X${LANG+set}"   = Xset; then LANG=C;   export LANG;   fi
Jason Merrill committed
485

486
if test -n "$cache_file" && test -r "$cache_file" && test -f "$cache_file"; then
487 488 489 490
  echo "loading cache $cache_file within ltconfig"
  . $cache_file
fi

Jason Merrill committed
491 492 493 494 495 496 497 498 499 500 501 502 503
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
504 505
  # Assume the source directory is the same one as the path to LTMAIN.
  srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
Jason Merrill committed
506 507 508
  test "$srcdir" = "$ltmain" && srcdir=.
fi

#  
Jeff Law committed
509
trap "$rm conftest*; exit 1" 1 2 15
Jason Merrill committed
510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527
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.
528
  if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
Jason Merrill committed
529 530 531 532 533 534 535 536 537 538 539
  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
  "")
540 541 542 543 544
    # Force config.guess to use the C compiler.
    # CC_FOR_BUILD overrides the CC variable in config.guess but I had
    # problems with it so do it this way for now.
    CC="$LTCC"

545
    if host_alias=`$SHELL $ac_config_guess`; then :
Jason Merrill committed
546 547 548 549
    else
      echo "$progname: cannot guess host type; you must specify one" 1>&2
      echo "$help" 1>&2
      exit 1
550 551 552 553 554
    fi

    # Restore the C compiler.
    CC="$old_CC"
    ;;
Jason Merrill committed
555
  esac
556
  host=`$SHELL $ac_config_sub $host_alias`
#  
Jeff Law committed
557 558 559 560
  echo "$ac_t$host" 1>&6

  # Make sure the host verified.
  test -z "$host" && exit 1
Jason Merrill committed
561

562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579
  # Check for the build system type
  echo $ac_n "checking build system type... $ac_c" 1>&6

  build_alias=$build
  case "$build_alias" in
  NONE)
    case $nonopt in
    NONE) build_alias=$host_alias ;;
    *) build_alias=$nonopt ;;
    esac ;;
  esac

  build=`$SHELL $ac_config_sub $build_alias`
  build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
  build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
  build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
  echo "$ac_t""$build" 1>&6

Jason Merrill committed
580 581 582 583 584 585
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
586 587 588 589 590 591 592 593
  build_alias=$host_alias
  build=$host
fi

if test x"$host" != x"$build"; then
  ac_tool_prefix=${host_alias}-
else
  ac_tool_prefix=
Jason Merrill committed
594 595
fi

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

#  
Jeff Law committed
600 601 602 603
# 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
604 605
esac

#  
Jeff Law committed
606 607 608 609 610
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.
Jason Merrill committed
611
  if test "X${COLLECT_NAMES+set}" != Xset; then
#  
Jeff Law committed
612 613 614 615 616 617
    COLLECT_NAMES=
    export COLLECT_NAMES
  fi
  ;;
esac

Jason Merrill committed
618
# Determine commands to create old-style static archives.
619
old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
Jason Merrill committed
620
old_postinstall_cmds='chmod 644 $oldlib'
#  
Jeff Law committed
621 622
old_postuninstall_cmds=

623 624 625 626 627
if test -n "$RANLIB"; then
  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
fi

628 629 630 631 632 633 634
# Source the script associated with the $tagname tag configuration.
if test -n "$tagname"; then
  . $ltmain
else
  # FIXME:  We should use a variable here
  # Configure for a C compiler
  . $srcdir/ltcf-c.sh
Jason Merrill committed
635 636
fi

637 638 639 640 641
# Set sane defaults for various variables
test -z "$AR" && AR=ar
test -z "$AR_FLAGS" && AR_FLAGS=cru
test -z "$AS" && AS=as
test -z "$CC" && CC=cc
#  
Jeff Law committed
642
test -z "$DLLTOOL" && DLLTOOL=dlltool
643
test -z "$MAGIC_CMD" && MAGIC_CMD=file
644 645 646
test -z "$LD" && LD=ld
test -z "$LN_S" && LN_S="ln -s"
test -z "$NM" && NM=nm
Jason Merrill committed
647
test -z "$OBJDUMP" && OBJDUMP=objdump
648 649 650
test -z "$RANLIB" && RANLIB=:
test -z "$STRIP" && STRIP=:
test -z "$objext" && objext=o
Jason Merrill committed
651

652 653 654 655 656 657 658 659
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
Jason Merrill committed
660
fi
661 662 663 664 665
rmdir .libs 2>/dev/null
echo "$ac_t$objdir" 1>&6

# If no C compiler was specified, use CC.
LTCC=${LTCC-"$CC"}
Jason Merrill committed
666 667 668 669 670

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

671 672 673 674
# We assume here that the value for ac_cv_prog_cc_pic will not be cached
# in isolation, and that seeing it set (from the cache) indicates that
# the associated values are set (in the cache) correctly too.
echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
675
echo "$progname:675:checking for $compiler option to produce PIC" 1>&5
676

677 678
if test -z "$ac_cv_prog_cc_pic"; then
  echo "$ac_t"none 1>&6
Jason Merrill committed
679
else
680 681 682 683
  echo "$ac_t""$ac_cv_prog_cc_pic" 1>&6

  # Check to make sure the pic_flag actually works.
  echo $ac_n "checking if $compiler PIC flag $ac_cv_prog_cc_pic works... $ac_c" 1>&6
684
  echo "$progname:684:checking that $compiler PIC flag $ac_cv_prog_cc_pic works." 1>&5
685 686 687 688 689
  if test "X${ac_cv_prog_cc_pic_works+set}" = Xset && \
     test "X${ac_cv_prog_cc_pic_works}" != X; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
    ac_cv_prog_cc_pic_works=yes
Jason Merrill committed
690
    $rm conftest*
691 692 693
    echo $lt_simple_compile_test_code > conftest.$ac_ext
    save_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS $ac_cv_prog_cc_pic -DPIC"
694
    if { (eval echo $progname:694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
Jason Merrill committed
695 696 697
      # Append any warnings to the config.log.
      cat conftest.err 1>&5

698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716
      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
	  ac_cv_prog_cc_pic_works=no
	  ac_cv_prog_cc_can_build_shared=no
	  ac_cv_prog_cc_pic=
	else
	  ac_cv_prog_cc_pic_works=yes
	  ac_cv_prog_cc_pic=" $ac_cv_prog_cc_pic"
	fi
	;;
      *)
	ac_cv_prog_cc_pic_works=yes
	ac_cv_prog_cc_pic=" $ac_cv_prog_cc_pic"
	;;
      esac
Jason Merrill committed
717
    else
718
      # Append any errors to the config.log.
Jason Merrill committed
719
      cat conftest.err 1>&5
720 721 722
      ac_cv_prog_cc_pic_works=no
      ac_cv_prog_cc_can_build_shared=no
      ac_cv_prog_cc_pic=
Jason Merrill committed
723
    fi
724
    CFLAGS="$save_CFLAGS"
Jason Merrill committed
725
    $rm conftest*
726 727 728 729 730 731 732
  fi
  # Belt *and* braces to stop my trousers falling down:
  if test "X$ac_cv_prog_cc_pic_works" = Xno; then
    ac_cv_prog_cc_pic=
    ac_cv_prog_cc_can_build_shared=no
  fi
  echo "$ac_t""$ac_cv_prog_cc_pic_works" 1>&6
Jason Merrill committed
733
fi
#  
Jeff Law committed
734

735 736 737 738 739 740 741 742
# Check for any special shared library compilation flags.
if test -n "$ac_cv_prog_cc_shlib"; then
  echo "$progname: warning: \`$CC' requires \`$ac_cv_prog_cc_shlib' to build shared libraries" 1>&2
  if echo "$old_CC $old_CFLAGS " | egrep -e "[ 	]$ac_cv_prog_cc_shlib[ 	]" >/dev/null; then :
  else
    echo "$progname: add \`$ac_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2
    ac_cv_prog_cc_can_build_shared=no
  fi
Jason Merrill committed
743 744
fi

745
echo $ac_n "checking if $compiler static flag $ac_cv_prog_cc_static works... $ac_c" 1>&6
746
echo "$progname:746: checking if $compiler static flag $ac_cv_prog_cc_static works" >&5
747 748 749 750
if test "X${ac_cv_prog_cc_static_works+set}" = Xset && \
   test "X${ac_cv_prog_cc_static_works}" != X; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
#  
Jeff Law committed
751
  $rm conftest*
752 753 754
  echo $lt_simple_link_test_code > conftest.$ac_ext
  save_LDFLAGS="$LDFLAGS"
  LDFLAGS="$LDFLAGS $ac_cv_prog_cc_static"
755
  if { (eval echo $progname:755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
756
    ac_cv_prog_cc_static_works=yes
757
  else
758 759
    ac_cv_prog_cc_static_works=no
    ac_cv_prog_cc_static=
760
  fi
761
  LDFLAGS="$save_LDFLAGS"
762 763
  $rm conftest*
fi
764 765 766 767 768 769 770 771 772 773 774
# Belt *and* braces to stop my trousers falling down:
if test "X$ac_cv_prog_cc_static_works" = Xno; then
  ac_cv_prog_cc_static=
fi
echo "$ac_t""$ac_cv_prog_cc_static_works" 1>&6
pic_flag="$ac_cv_prog_cc_pic"
special_shlib_compile_flags="$ac_cv_prog_cc_shlib"
wl="$ac_cv_prog_cc_wl"
link_static_flag="$ac_cv_prog_cc_static"
no_builtin_flag="$ac_cv_prog_cc_no_builtin"
can_build_shared="$ac_cv_prog_cc_can_build_shared"
#  
Jeff Law committed
775

776
# Check to see if options -o and -c are simultaneously supported by compiler
777
echo $ac_n "checking if $compiler supports -c -o file.$objext... $ac_c" 1>&6
Jason Merrill committed
778 779 780
$rm -r conftest 2>/dev/null
mkdir conftest
cd conftest
781
$rm conftest*
782
echo $lt_simple_compile_test_code > conftest.$ac_ext
Jason Merrill committed
783 784 785 786 787 788 789
mkdir out
# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
# that will create temporary files in the current directory regardless of
# the output directory.  Thus, making CWD read-only will cause this test
# to fail, enabling locking or at least warning the user not to do parallel
# builds.
chmod -w .
790
save_CFLAGS="$CFLAGS"
791
CFLAGS="$CFLAGS -o out/conftest2.$objext"
792 793
echo "$progname:792: checking if $compiler supports -c -o file.$objext" >&5
if { (eval echo $progname:793: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$objext; then
794 795 796

  # The compiler can only warn and ignore the option if not recognized
  # So say no if there are warnings
Jason Merrill committed
797
    if test -s out/conftest.err; then
#  
Jeff Law committed
798
      echo "$ac_t"no 1>&6
799
      compiler_c_o=no
#  
Jeff Law committed
800 801
    else
      echo "$ac_t"yes 1>&6
802
      compiler_c_o=yes
#  
Jeff Law committed
803
    fi
804 805
else
  # Append any errors to the config.log.
Jason Merrill committed
806
  cat out/conftest.err 1>&5
807 808 809 810
  compiler_c_o=no
  echo "$ac_t"no 1>&6
fi
CFLAGS="$save_CFLAGS"
Jason Merrill committed
811 812 813 814 815 816
chmod u+w .
$rm conftest* out/*
rmdir out
cd ..
rmdir conftest
$rm -r conftest 2>/dev/null
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

# 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*
843
  echo $lt_simple_compile_test_code > conftest.$ac_ext
844
  save_CFLAGS="$CFLAGS"
845
  CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
846 847
  echo "$progname:846: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
  if { (eval echo $progname:847: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872

    # 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
873 874
fi

875 876
# See if the linker supports building shared libraries.
echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
Jason Merrill committed
877

878 879
echo "$ac_t$ld_shlibs" 1>&6
test "$ld_shlibs" = no && can_build_shared=no
Jason Merrill committed
880 881 882 883 884

# 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
885
   test -n "$runpath_var"; then
Jason Merrill committed
886 887

  # We can hardcode non-existant directories.
Jason Merrill committed
888 889 890 891 892 893
  if test "$hardcode_direct" != no &&
     # If the only mechanism to avoid hardcoding is shlibpath_var, we
     # have to relink, otherwise we might link with an installed library
     # when we should be linking with a yet-to-be-installed one
     ## test "$hardcode_shlibpath_var" != no &&
     test "$hardcode_minus_L" != no; then
Jason Merrill committed
894 895 896 897 898 899 900
    # 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
901 902 903
  # We cannot hardcode anything, or else we can only hardcode existing
  # directories.
  hardcode_action=unsupported
Jason Merrill committed
904
fi
#  
Jeff Law committed
905
echo "$ac_t$hardcode_action" 1>&6
Jason Merrill committed
906

907 908 909 910 911 912 913 914
echo $ac_n "checking whether stripping libraries is possible... $ac_c" 1>&6
if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
  echo "${ac_t}yes" 1>&6
else
  echo "${ac_t}no" 1>&6
fi
Jason Merrill committed
915 916

reload_cmds='$LD$reload_flag -o $output$reload_objs'
917
test -z "$deplibs_check_method" && deplibs_check_method=unknown
Jason Merrill committed
918 919 920

# PORTME Fill in your ld.so characteristics
library_names_spec=
#  
Jeff Law committed
921
libname_spec='lib$name'
Jason Merrill committed
922 923
soname_spec=
postinstall_cmds=
#  
Jeff Law committed
924
postuninstall_cmds=
Jason Merrill committed
925
finish_cmds=
#  
Jeff Law committed
926
finish_eval=
Jason Merrill committed
927
shlibpath_var=
928
shlibpath_overrides_runpath=unknown
Jason Merrill committed
929 930
version_type=none
dynamic_linker="$host_os ld.so"
931 932
sys_lib_dlsearch_path_spec="/lib /usr/lib"
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
933

Jason Merrill committed
934 935
echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
case "$host_os" in
936
aix3*)
Jason Merrill committed
937
  version_type=linux
#  
Jeff Law committed
938
  library_names_spec='${libname}${release}.so$versuffix $libname.a'
Jason Merrill committed
939 940 941
  shlibpath_var=LIBPATH

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

945 946 947 948 949 950 951
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
952
  library_names_spec='${libname}${release}.a $libname.a'
953
  shlibpath_var=LIBPATH
954 955
  soname_spec='${libname}${release}.so$major.o'
  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
956 957
  ;;

#  
Jeff Law committed
958 959 960 961 962 963
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'
  ;;

964 965 966 967
beos*)
  library_names_spec='${libname}.so'
  dynamic_linker="$host_os ld.so"
  shlibpath_var=LIBRARY_PATH
Jason Merrill committed
968 969 970
  lt_cv_dlopen="load_add_on"
  lt_cv_dlopen_libs=
  lt_cv_dlopen_self=yes
971 972 973 974
  ;;

bsdi4*)
  version_type=linux
Jason Merrill committed
975 976 977 978
  need_version=no
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
979 980 981
  shlibpath_var=LD_LIBRARY_PATH
  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"
Jason Merrill committed
982
  export_dynamic_flag_spec=-rdynamic
983 984 985 986 987
  # 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
  ;;

988
cygwin* | mingw* | pw32*)
#  
Jeff Law committed
989
  version_type=windows
Jason Merrill committed
990 991
  need_version=no
  need_lib_prefix=no
992
  if test "$with_gcc" = yes; then
993
    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
994 995 996
  else
    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
  fi
#  
Jeff Law committed
997
  dynamic_linker='Win32 ld.exe'
998
  # FIXME: first we should search . and the directory the executable is in
#  
Jeff Law committed
999
  shlibpath_var=PATH
Jason Merrill committed
1000 1001
  lt_cv_dlopen="LoadLibrary"
  lt_cv_dlopen_libs=
Jason Merrill committed
1002 1003
  ;;

1004 1005 1006
freebsd1*)
  dynamic_linker=no
  ;;
1007

1008 1009 1010 1011 1012 1013 1014
freebsd*)
  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
  version_type=freebsd-$objformat
  case "$version_type" in
    freebsd-elf*)
      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
      need_version=no
1015
      need_lc=no
1016 1017 1018 1019 1020 1021 1022
      need_lib_prefix=no
      ;;
    freebsd-*)
      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
      need_version=yes
      ;;
  esac
Jason Merrill committed
1023
  shlibpath_var=LD_LIBRARY_PATH
Jason Merrill committed
1024
  case "$host_os" in
1025 1026 1027
  freebsd2*)
    shlibpath_overrides_runpath=yes
    ;;
1028
  *)
Jason Merrill committed
1029
    shlibpath_overrides_runpath=no
1030
    hardcode_into_libs=yes
Jason Merrill committed
1031 1032
    ;;
  esac
Jason Merrill committed
1033 1034 1035
  ;;

gnu*)
1036
  version_type=linux
Jason Merrill committed
1037 1038 1039 1040
  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'
Jason Merrill committed
1041
  shlibpath_var=LD_LIBRARY_PATH
1042
  hardcode_into_libs=yes
Jason Merrill committed
1043 1044
  ;;

#  
Jeff Law committed
1045
hpux9* | hpux10* | hpux11*)
Jason Merrill committed
1046 1047 1048 1049
  # 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
1050 1051
  need_lib_prefix=no
  need_version=no
Jason Merrill committed
1052
  shlibpath_var=SHLIB_PATH
Jason Merrill committed
1053
  shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
#  
Jeff Law committed
1054 1055
  library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
  soname_spec='${libname}${release}.sl$major'
Jason Merrill committed
1056 1057 1058 1059
  # HP-UX runs *really* slowly unless shared libraries are mode 555.
  postinstall_cmds='chmod 555 $lib'
  ;;

Jason Merrill committed
1060
irix5* | irix6*)
1061 1062 1063
  version_type=irix
  need_lib_prefix=no
  need_version=no
1064 1065
  soname_spec='${libname}${release}.so$major'
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
Jason Merrill committed
1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077
  case "$host_os" in
  irix5*)
    libsuff= shlibsuff=
    ;;
  *)
    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
    ;;
1078 1079 1080
  esac
  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
  shlibpath_overrides_runpath=no
Jason Merrill committed
1081 1082
  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
Jason Merrill committed
1083 1084 1085 1086 1087 1088 1089 1090 1091 1092
  ;;

# 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
1093 1094
  need_lib_prefix=no
  need_version=no
#  
Jeff Law committed
1095 1096
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
Jason Merrill committed
1097
  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
Jason Merrill committed
1098
  shlibpath_var=LD_LIBRARY_PATH
1099
  shlibpath_overrides_runpath=no
1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111
  # This implies no fast_install, which is unacceptable.
  # Some rework will be needed to allow for fast_install
  # before this can be enabled.
  hardcode_into_libs=yes

  # We used to test for /lib/ld.so.1 and disable shared libraries on
  # powerpc, because MkLinux only supported shared libraries with the
  # GNU dynamic linker.  Since this was broken with cross compilers,
  # most powerpc-linux boxes support dynamic linking these days and
  # people can always --disable-shared, the test was removed, and we
  # assume the GNU/Linux dynamic linker is in use.
  dynamic_linker='GNU/Linux ld.so'
Jason Merrill committed
1112 1113
  ;;

1114
netbsd*)
Jason Merrill committed
1115
  version_type=sunos
1116 1117
  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
    library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
Jason Merrill committed
1118
    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
1119 1120 1121 1122 1123 1124 1125
    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
1126 1127
  shlibpath_overrides_runpath=yes
  hardcode_into_libs=yes
1128 1129 1130 1131 1132 1133 1134 1135 1136
  ;;

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
1137 1138 1139 1140
  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
  shlibpath_var=LD_LIBRARY_PATH
  ;;

#  
Jeff Law committed
1141 1142
os2*)
  libname_spec='$name'
1143
  need_lib_prefix=no
#  
Jeff Law committed
1144 1145 1146 1147 1148
  library_names_spec='$libname.dll $libname.a'
  dynamic_linker='OS/2 ld.exe'
  shlibpath_var=LIBPATH
  ;;

Jason Merrill committed
1149
osf3* | osf4* | osf5*)
Jason Merrill committed
1150
  version_type=osf
Jason Merrill committed
1151
  need_version=no
#  
Jeff Law committed
1152
  soname_spec='${libname}${release}.so'
1153
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
Jason Merrill committed
1154
  shlibpath_var=LD_LIBRARY_PATH
1155 1156
  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
1157 1158 1159 1160
  ;;

sco3.2v5*)
  version_type=osf
#  
Jeff Law committed
1161 1162
  soname_spec='${libname}${release}.so$major'
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
Jason Merrill committed
1163 1164 1165
  shlibpath_var=LD_LIBRARY_PATH
  ;;

1166
solaris*)
Jason Merrill committed
1167
  version_type=linux
1168 1169
  need_lib_prefix=no
  need_version=no
#  
Jeff Law committed
1170 1171
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
Jason Merrill committed
1172
  shlibpath_var=LD_LIBRARY_PATH
1173
  shlibpath_overrides_runpath=yes
1174
  hardcode_into_libs=yes
1175 1176
  # ldd complains unless libraries are executable
  postinstall_cmds='chmod +x $lib'
Jason Merrill committed
1177 1178 1179 1180
  ;;

sunos4*)
  version_type=sunos
1181
  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
Jason Merrill committed
1182 1183
  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
  shlibpath_var=LD_LIBRARY_PATH
1184 1185 1186 1187 1188
  shlibpath_overrides_runpath=yes
  if test "$with_gnu_ld" = yes; then
    need_lib_prefix=no
  fi
  need_version=yes
Jason Merrill committed
1189 1190
  ;;

Jason Merrill committed
1191
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
#  
Jeff Law committed
1192 1193 1194 1195
  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
1196
  case "$host_vendor" in
Jason Merrill committed
1197 1198 1199 1200 1201 1202
    motorola)
      need_lib_prefix=no
      need_version=no
      shlibpath_overrides_runpath=no
      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
      ;;
1203
  esac
#  
Jeff Law committed
1204 1205 1206 1207 1208 1209 1210 1211 1212
  ;;

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
  ;;

1213 1214 1215 1216 1217 1218 1219 1220 1221
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
1222 1223 1224 1225 1226 1227 1228 1229 1230
sysv4*MP*)
  if test -d /usr/nec ;then
    version_type=linux
    library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
    soname_spec='$libname.so.$major'
    shlibpath_var=LD_LIBRARY_PATH
  fi
  ;;

Jason Merrill committed
1231 1232 1233 1234
*)
  dynamic_linker=no
  ;;
esac
1235
echo "$ac_t$dynamic_linker" 1>&6
Jason Merrill committed
1236 1237
test "$dynamic_linker" = no && can_build_shared=no

1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260
# 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.
symcode='[BCDEGRST]'

# 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.
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'"

# Define system-specific variables.
case "$host_os" in
aix*)
  symcode='[BCDT]'
  ;;
1261
cygwin* | mingw* | pw32*)
1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277
  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'"
  ;;
irix*)
  symcode='[BCDEGRST]'
  ;;
solaris* | sysv5*)
  symcode='[BDT]'
  ;;
sysv4)
  symcode='[DFNSTU]'
  ;;
esac

1278
# Handle CRLF in mingw tool chain
1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311
opt_cr=
case "$host_os" in
mingw*)
  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
  ;;
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
  symcode='[ABCDGISTW]'
fi

# Try without a prefix undercore, then with it.
for ac_symprfx in "" "_"; do

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

  # Check to see that the pipe works correctly.
  pipe_works=no
  $rm conftest*
  cat > conftest.$ac_ext <<EOF
#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

1312 1313
  echo "$progname:1309: checking if global_symbol_pipe works" >&5
  if { (eval echo $progname:1310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
1314 1315
    # Now try to grab the symbols.
    nlist=conftest.nm
1316
    if { echo "$progname:1313: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367

      # 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.$ac_ext
#ifdef __cplusplus
extern "C" {
#endif

EOF
	  # Now generate the symbol file.
	  eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'

	  cat <<EOF >> conftest.$ac_ext
#if defined (__STDC__) && __STDC__
# define lt_ptr_t void *
#else
# define lt_ptr_t char *
# define const
#endif

/* The mapping between symbol names and symbols. */
const struct {
  const char *name;
  lt_ptr_t address;
}
lt_preloaded_symbols[] =
{
EOF
	  sed 's/^. \(.*\) \(.*\)$/  {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.$ac_ext
	  cat <<\EOF >> conftest.$ac_ext
  {0, (lt_ptr_t) 0}
};

#ifdef __cplusplus
}
#endif
EOF
	  # Now try linking the two files.
	  mv conftest.$objext conftstm.$objext
	  save_LIBS="$LIBS"
	  save_CFLAGS="$CFLAGS"
	  LIBS="conftstm.$objext"
	  CFLAGS="$CFLAGS$no_builtin_flag"
1368
	  if { (eval echo $progname:1365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406
	    pipe_works=yes
	  else
	    echo "$progname: failed program was:" >&5
	    cat conftest.$ac_ext >&5
	  fi
	  LIBS="$save_LIBS"
	else
	  echo "cannot find nm_test_func in $nlist" >&5
	fi
      else
	echo "cannot find nm_test_var in $nlist" >&5
      fi
    else
      echo "cannot run $global_symbol_pipe" >&5
    fi
  else
    echo "$progname: failed program was:" >&5
    cat conftest.$ac_ext >&5
  fi
  $rm conftest* conftst*

  # Do not use the global_symbol_pipe unless it works.
  if test "$pipe_works" = yes; then
    break
  else
    global_symbol_pipe=
  fi
done
if test "$pipe_works" = yes; then
  echo "${ac_t}ok" 1>&6
else
  echo "${ac_t}failed" 1>&6
fi

if test -z "$global_symbol_pipe"; then
  global_symbol_to_cdecl=
fi

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

Jason Merrill committed
1410 1411 1412
# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
# configure.in, otherwise build static only libraries.
case "$host_os" in
1413
cygwin* | mingw* | pw32* | os2*)
Jason Merrill committed
1414 1415 1416 1417 1418 1419 1420
  if test x$can_build_shared = xyes; then
    test x$enable_win32_dll = xno && can_build_shared=no
    echo "checking if package supports dlls... $can_build_shared" 1>&6
  fi
;;
esac

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

#  
Jeff Law committed
1424 1425
# On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC.
Jason Merrill committed
1426
case "$host_os" in
1427
aix3*)
Jason Merrill committed
1428 1429
  test "$enable_shared" = yes && enable_static=no
  if test -n "$RANLIB"; then
1430
    archive_cmds="$archive_cmds~\$RANLIB \$lib"
Jason Merrill committed
1431 1432 1433
    postinstall_cmds='$RANLIB $lib'
  fi
  ;;
1434 1435 1436 1437

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

#  
Jeff Law committed
1440
echo "$ac_t$enable_shared" 1>&6
Jason Merrill committed
1441 1442 1443 1444 1445 1446

# 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

1447
if test "$hardcode_action" = relink; then
1448 1449 1450 1451 1452 1453 1454 1455
  # 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

1456 1457 1458
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
if test "$with_gcc" = yes; then
  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
#  
Jeff Law committed
1459
fi
1460 1461 1462

# Check whether we must set pic_mode to default
test -z "$pic_flag" && pic_mode=default
#  
Jeff Law committed
1463

1464 1465 1466 1467 1468
if test "x$enable_dlopen" != xyes; then
  enable_dlopen=unknown
  enable_dlopen_self=unknown
  enable_dlopen_self_static=unknown
else
1469
if test "X${lt_cv_dlopen+set}" != Xset; then
1470
  lt_cv_dlopen=no lt_cv_dlopen_libs=
Jason Merrill committed
1471
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
1472
echo "$progname:1469: checking for dlopen in -ldl" >&5
1473
if test "X${ac_cv_lib_dl_dlopen+set}" = Xset; then
1474 1475
  echo $ac_n "(cached) $ac_c" 1>&6
else
Jason Merrill committed
1476 1477 1478
  ac_save_LIBS="$LIBS"
LIBS="-ldl  $LIBS"
cat > conftest.$ac_ext <<EOF
1479
#line 1476 "ltconfig"
1480 1481 1482
/* 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.  */
Jason Merrill committed
1483 1484 1485
#ifdef __cplusplus
extern "C"
#endif
1486 1487 1488
char dlopen();

int main() {
Jason Merrill committed
1489
dlopen()
1490 1491
; return 0; }
EOF
1492
if { (eval echo $progname:1489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1493
  rm -rf conftest*
1494
  ac_cv_lib_dl_dlopen=yes
1495 1496 1497 1498
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1499
  ac_cv_lib_dl_dlopen=no
1500 1501
fi
rm -f conftest*
Jason Merrill committed
1502
LIBS="$ac_save_LIBS"
1503

Jason Merrill committed
1504
fi
1505
if test "X$ac_cv_lib_dl_dlopen" = Xyes; then
1506
  echo "$ac_t""yes" 1>&6
Jason Merrill committed
1507
  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1508 1509
else
  echo "$ac_t""no" 1>&6
Jason Merrill committed
1510
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
1511
echo "$progname:1508: checking for dlopen" >&5
1512
if test "X${ac_cv_func_dlopen+set}" = Xset; then
1513 1514
  echo $ac_n "(cached) $ac_c" 1>&6
else
Jason Merrill committed
1515
  cat > conftest.$ac_ext <<EOF
1516
#line 1513 "ltconfig"
Jason Merrill committed
1517 1518 1519
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char dlopen(); below.  */
#include <assert.h>
1520 1521 1522
/* 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.  */
Jason Merrill committed
1523 1524 1525
#ifdef __cplusplus
extern "C"
#endif
1526 1527 1528
char dlopen();

int main() {
Jason Merrill committed
1529 1530 1531 1532 1533 1534 1535 1536 1537 1538

/* 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

1539 1540
; return 0; }
EOF
1541
if { (eval echo $progname:1538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1542
  rm -rf conftest*
1543
  ac_cv_func_dlopen=yes
1544 1545 1546 1547
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1548
  ac_cv_func_dlopen=no
1549 1550 1551
fi
rm -f conftest*
fi
1552
if test "X$ac_cv_func_dlopen" = Xyes; then
1553
  echo "$ac_t""yes" 1>&6
Jason Merrill committed
1554
  lt_cv_dlopen="dlopen"
1555 1556
else
  echo "$ac_t""no" 1>&6
1557
echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
1558
echo "$progname:1555: checking for dlopen in -lsvld" >&5
1559 1560 1561 1562 1563 1564
if test "X${ac_cv_lib_svld_dlopen+set}" = Xset; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-lsvld  $LIBS"
cat > conftest.$ac_ext <<EOF
1565
#line 1562 "ltconfig"
1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577
/* 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.  */
#ifdef __cplusplus
extern "C"
#endif
char dlopen();

int main() {
dlopen()
; return 0; }
EOF
1578
if { (eval echo $progname:1575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595
  rm -rf conftest*
  ac_cv_lib_svld_dlopen=yes
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  ac_cv_lib_svld_dlopen=no
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
if test "X$ac_cv_lib_svld_dlopen" = Xyes; then
  echo "$ac_t""yes" 1>&6
  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
else
  echo "$ac_t""no" 1>&6
1596
echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
1597
echo "$progname:1594: checking for dld_link in -ldld" >&5
1598
if test "X${ac_cv_lib_dld_dld_link+set}" = Xset; then
1599 1600 1601 1602 1603
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-ldld  $LIBS"
cat > conftest.$ac_ext <<EOF
1604
#line 1601 "ltconfig"
1605 1606 1607
/* 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.  */
Jason Merrill committed
1608 1609 1610
#ifdef __cplusplus
extern "C"
#endif
1611 1612 1613 1614 1615 1616
char dld_link();

int main() {
dld_link()
; return 0; }
EOF
1617
if { (eval echo $progname:1614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1618
  rm -rf conftest*
1619
  ac_cv_lib_dld_dld_link=yes
1620 1621 1622 1623
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1624
  ac_cv_lib_dld_dld_link=no
1625 1626 1627 1628 1629
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
1630
if test "X$ac_cv_lib_dld_dld_link" = Xyes; then
1631 1632 1633 1634 1635
  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
1636
echo "$progname:1633: checking for shl_load" >&5
1637
if test "X${ac_cv_func_shl_load+set}" = Xset; then
1638 1639 1640
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
1641
#line 1638 "ltconfig"
1642 1643 1644 1645 1646 1647
/* 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.  */
Jason Merrill committed
1648 1649 1650
#ifdef __cplusplus
extern "C"
#endif
1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665
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
1666
if { (eval echo $progname:1663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1667
  rm -rf conftest*
1668
  ac_cv_func_shl_load=yes
1669 1670 1671 1672
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1673
  ac_cv_func_shl_load=no
1674 1675 1676 1677
fi
rm -f conftest*
fi

1678
if test "X$ac_cv_func_shl_load" = Xyes; then
1679 1680 1681 1682
  echo "$ac_t""yes" 1>&6
  lt_cv_dlopen="shl_load"
else
  echo "$ac_t""no" 1>&6
Jason Merrill committed
1683
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
1684
echo "$progname:1681: checking for shl_load in -ldld" >&5
1685
if test "X${ac_cv_lib_dld_shl_load+set}" = Xset; then
1686 1687
  echo $ac_n "(cached) $ac_c" 1>&6
else
Jason Merrill committed
1688 1689 1690
  ac_save_LIBS="$LIBS"
LIBS="-ldld  $LIBS"
cat > conftest.$ac_ext <<EOF
1691
#line 1688 "ltconfig"
Jason Merrill committed
1692
#include "confdefs.h"
1693 1694 1695
/* 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.  */
Jason Merrill committed
1696 1697
#ifdef __cplusplus
extern "C"
1698
#endif
Jason Merrill committed
1699
char shl_load();
1700

Jason Merrill committed
1701 1702
int main() {
shl_load()
1703 1704
; return 0; }
EOF
1705
if { (eval echo $progname:1702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1706
  rm -rf conftest*
1707
  ac_cv_lib_dld_shl_load=yes
1708 1709 1710 1711
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1712
  ac_cv_lib_dld_shl_load=no
1713 1714
fi
rm -f conftest*
Jason Merrill committed
1715
LIBS="$ac_save_LIBS"
1716

Jason Merrill committed
1717
fi
1718
if test "X$ac_cv_lib_dld_shl_load" = Xyes; then
1719
  echo "$ac_t""yes" 1>&6
Jason Merrill committed
1720
  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
1721 1722 1723 1724
else
  echo "$ac_t""no" 1>&6
fi

Jason Merrill committed
1725

1726 1727
fi

1728

1729 1730
fi

1731

1732 1733 1734 1735 1736 1737 1738
fi


fi

fi

1739 1740
fi

1741 1742
  if test "x$lt_cv_dlopen" != xno; then
    enable_dlopen=yes
1743 1744
  else
    enable_dlopen=no
1745 1746 1747 1748 1749 1750 1751
  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
1752
echo "$progname:1749: checking for $ac_hdr" >&5
1753
if eval "test \"`echo 'X$''{'ac_cv_header_$ac_safe'+set}'`\" = Xset"; then
1754 1755 1756
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
1757
#line 1754 "ltconfig"
1758 1759
#include <$ac_hdr>
int fnord = 0;
1760
int main () { return(0); }
1761
EOF
Jason Merrill committed
1762
ac_try="$ac_compile >/dev/null 2>conftest.out"
1763
{ (eval echo $progname:1760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790
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
1791
echo "$progname:1788: checking whether a program can dlopen itself" >&5
1792
if test "X${lt_cv_dlopen_self+set}" = Xset; then
1793 1794 1795 1796 1797
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
    lt_cv_dlopen_self=cross
  else
1798 1799
    cat > conftest.$ac_ext <<EOF
#line 1796 "ltconfig"
1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841

#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");
1842
               if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
1843 1844

EOF
1845
if { (eval echo $progname:1842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863
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
1864
echo "$progname:1861: checking whether a statically linked program can dlopen itself" >&5
1865
if test "X${lt_cv_dlopen_self_static+set}" = Xset; then
1866 1867 1868 1869 1870
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
    lt_cv_dlopen_self_static=cross
  else
1871 1872
    cat > conftest.$ac_ext <<EOF
#line 1869 "ltconfig"
1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914

#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");
1915
    if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
1916 1917

EOF
1918
if { (eval echo $progname:1915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947
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
1948 1949 1950
# Copy echo and quote the copy, instead of the original, because it is
# used later.
ltecho="$echo"
1951 1952 1953 1954
if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
   ltecho="$CONFIG_SHELL \$0 --fallback-echo"
fi
LTSHELL="$SHELL"
#  
Jeff Law committed
1955

1956 1957 1958 1959 1960 1961
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.
1962
  for var in ltecho old_AR old_AR_FLAGS old_CC old_LTCC old_CFLAGS old_CPPFLAGS \
1963
    old_MAGIC_CMD old_LD old_LDFLAGS old_LIBS \
1964 1965 1966 1967 1968
    old_LN_S old_NM old_RANLIB old_STRIP \
    old_AS old_DLLTOOL old_OBJDUMP \
    old_OBJEXT old_EXEEXT old_reload_flag \
    old_deplibs_check_method old_file_magic_cmd \
    AR AR_FLAGS CC LTCC LD LN_S NM LTSHELL LTCONFIG_VERSION \
1969 1970 1971 1972 1973
    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 \
1974 1975 1976 1977 1978
    old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
    postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
    predep_objects postdep_objects predeps postdeps compiler_lib_search_path \
    old_striplib striplib file_magic_cmd export_symbols_cmds \
    deplibs_check_method allow_undefined_flag no_undefined_flag \
1979 1980 1981
    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 \
1982
    compiler_c_o need_locks exclude_expsyms include_expsyms; do
1983 1984 1985 1986 1987

    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 | \
1988
    extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
1989 1990 1991
    postinstall_cmds | postuninstall_cmds | \
    finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
      # Double-quote double-evaled strings.
1992
      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ### testsuite: skip nested quoting test
1993 1994
      ;;
    *)
1995
      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ### testsuite: skip nested quoting test
1996 1997 1998 1999 2000 2001 2002
      ;;
    esac
  done

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

2006 2007 2008 2009 2010
  if test -z "$tagname"; then
    trap "$rm \"$ofile\"; exit 1" 1 2 15
    echo "creating $ofile"
    $rm "$ofile"
    cat <<EOF > "$ofile"
#  
Jeff Law committed
2011 2012 2013
#! $SHELL

# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
2014
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
#  
Jeff Law committed
2015 2016
# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
#
2017
# Copyright (C) 1996-2000 Free Software Foundation, Inc.
Jason Merrill committed
2018
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#  
Jeff Law committed
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
#
# 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.
Jason Merrill committed
2044
if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
#  
Jeff Law committed
2045

2046 2047 2048
# The names of the tagged configurations supported by this script.
available_tags=

#  
Jeff Law committed
2049
### BEGIN LIBTOOL CONFIG
2050
EOF
2051 2052 2053 2054
  else
    echo "appending configuration tag \"$tagname\" to $ofile"
    echo "### BEGIN LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
  fi
2055 2056 2057 2058 2059
  cfgfile="$ofile"
  ;;

*)
  # Double-quote the variables that need it (for aesthetics).
2060
  for var in old_AR old_AR_FLAGS old_CC old_LTCC old_CFLAGS old_CPPFLAGS \
2061
    old_MAGIC_CMD old_LD old_LDFLAGS old_LIBS \
2062 2063 2064 2065
    old_LN_S old_NM old_RANLIB old_STRIP \
    old_AS old_DLLTOOL old_OBJDUMP \
    old_OBJEXT old_EXEEXT old_reload_flag \
    old_deplibs_check_method old_file_magic_cmd; do
2066 2067 2068 2069 2070
    eval "$var=\\\"\$var\\\""
  done

  # Just create a config file.
  cfgfile="$ofile.cfg"
2071 2072 2073 2074 2075
  if test -z "$tagname"; then
    trap "$rm \"$cfgfile\"; exit 1" 1 2 15
    echo "creating $cfgfile"
    $rm "$cfgfile"
    cat <<EOF > "$cfgfile"
2076 2077
# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
2078 2079

### BEGIN LIBTOOL CONFIG
2080
EOF
2081 2082 2083 2084
  else
    echo "appending to $cfgfile"
    echo "### BEGIN LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
  fi
2085 2086 2087 2088
  ;;
esac

cat <<EOF >> "$cfgfile"
#  
Jeff Law committed
2089
# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
Jason Merrill committed
2090
#
2091 2092
# AR=$old_AR AR_FLAGS=$old_AR_FLAGS LTCC=$old_LTCC CC=$old_CC \\
# CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
2093
# MAGIC_CMD=$old_MAGIC_CMD LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
2094 2095 2096 2097 2098
# LN_S=$old_LN_S NM=$old_NM RANLIB=$old_RANLIB STRIP=$old_STRIP \\
# AS=$old_AS DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP \\
# objext=$old_OBJEXT exeext=$old_EXEEXT reload_flag=$old_reload_flag \\
# deplibs_check_method=$old_deplibs_check_method \\
# file_magic_cmd=$old_file_magic_cmd \\
Jason Merrill committed
2099 2100 2101 2102 2103 2104
#   $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.
2105
LTCONFIG_VERSION=$LTCONFIG_VERSION
Jason Merrill committed
2106

#  
Jeff Law committed
2107
# Shell to use when invoking shell scripts.
2108
SHELL=$LTSHELL
#  
Jeff Law committed
2109 2110

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

2113 2114 2115
# Whether or not to add -lc for building shared libraries.
build_libtool_need_lc=$need_lc

#  
Jeff Law committed
2116
# Whether or not to build static libraries.
Jason Merrill committed
2117 2118
build_old_libs=$enable_static

2119 2120 2121
# Whether or not to optimize for fast installation.
fast_install=$enable_fast_install

Jason Merrill committed
2122
# The host system.
2123 2124
host_alias=$host_alias
host=$host
Jason Merrill committed
2125

#  
Jeff Law committed
2126
# An echo program that does not interpret backslashes.
2127
echo=$ltecho
#  
Jeff Law committed
2128

Jason Merrill committed
2129
# The archiver.
2130
AR=$AR
2131
AR_FLAGS=$AR_FLAGS
#  
Jeff Law committed
2132

2133 2134 2135 2136
# A C compiler.
LTCC=$LTCC

# A language-specific compiler.
2137
CC=$CC
Jason Merrill committed
2138

2139 2140 2141
# Is the compiler the GNU C compiler?
with_gcc=$with_gcc

Jason Merrill committed
2142
# The linker used to build libraries.
2143
LD=$LD
Jason Merrill committed
2144 2145

# Whether we need hard or soft links.
2146
LN_S=$LN_S
#  
Jeff Law committed
2147 2148

# A BSD-compatible nm program.
2149
NM=$NM
#  
Jeff Law committed
2150

2151 2152 2153 2154
# A symbol stripping program
STRIP=$STRIP

# Used to examine libraries when file_magic_cmd begins "file"
2155
MAGIC_CMD=$MAGIC_CMD
2156

2157
# Used on cygwin: DLL creation program.
#  
Jeff Law committed
2158 2159
DLLTOOL="$DLLTOOL"

Jason Merrill committed
2160 2161 2162
# Used on cygwin: object dumper.
OBJDUMP="$OBJDUMP"

2163
# Used on cygwin: assembler.
#  
Jeff Law committed
2164 2165 2166
AS="$AS"

# The name of the directory that contains temporary libtool files.
2167
objdir=$objdir
Jason Merrill committed
2168 2169

# How to create reloadable object files.
2170 2171
reload_flag=$reload_flag
reload_cmds=$reload_cmds
Jason Merrill committed
2172 2173

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

2176 2177 2178 2179 2180 2181
# Object file suffix (normally "o").
objext="$objext"

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

Jason Merrill committed
2182 2183 2184
# Executable file suffix (normally "").
exeext="$exeext"

Jason Merrill committed
2185
# Additional compiler flags for building library objects.
2186
pic_flag=$pic_flag
2187
pic_mode=$pic_mode
2188

Jason Merrill committed
2189
# Does compiler simultaneously support -c and -o options?
2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201
compiler_c_o=$compiler_c_o

# 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.
2202
dlopen_support=$enable_dlopen
2203 2204 2205 2206 2207 2208

# 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
2209 2210

# Compiler flag to prevent dynamic linking.
2211
link_static_flag=$link_static_flag
Jason Merrill committed
2212

#  
Jeff Law committed
2213
# Compiler flag to turn off builtin functions.
2214
no_builtin_flag=$no_builtin_flag
Jason Merrill committed
2215

#  
Jeff Law committed
2216
# Compiler flag to allow reflexive dlopens.
2217
export_dynamic_flag_spec=$export_dynamic_flag_spec
Jason Merrill committed
2218

2219
# Compiler flag to generate shared objects directly from archives.
2220 2221 2222 2223
whole_archive_flag_spec=$whole_archive_flag_spec

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

Jason Merrill committed
2225 2226 2227
# Library versioning type.
version_type=$version_type

#  
Jeff Law committed
2228
# Format of library name prefix.
2229
libname_spec=$libname_spec
#  
Jeff Law committed
2230

Jason Merrill committed
2231 2232
# 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.
2233
library_names_spec=$library_names_spec
Jason Merrill committed
2234 2235

# The coded name of the library, if different from the real name.
2236
soname_spec=$soname_spec
Jason Merrill committed
2237 2238

# Commands used to build and install an old-style archive.
2239 2240 2241 2242
RANLIB=$RANLIB
old_archive_cmds=$old_archive_cmds
old_postinstall_cmds=$old_postinstall_cmds
old_postuninstall_cmds=$old_postuninstall_cmds
#  
Jeff Law committed
2243 2244

# Create an old-style archive from a shared archive.
2245
old_archive_from_new_cmds=$old_archive_from_new_cmds
Jason Merrill committed
2246

2247 2248 2249
# Create a temporary old-style archive to link instead of a shared archive.
old_archive_from_expsyms_cmds=$old_archive_from_expsyms_cmds

Jason Merrill committed
2250
# Commands used to build and install a shared archive.
2251 2252 2253 2254 2255
archive_cmds=$archive_cmds
archive_expsym_cmds=$archive_expsym_cmds
postinstall_cmds=$postinstall_cmds
postuninstall_cmds=$postuninstall_cmds

2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279
# Commands to strip libraries.
old_striplib=$old_striplib
striplib=$striplib

# Dependencies to place before the objects being linked to create a
# shared library.
predep_objects=$predep_objects

# Dependencies to place after the objects being linked to create a
# shared library.
postdep_objects=$postdep_objects

# Dependencies to place before the objects being linked to create a
# shared library.
predeps=$predeps

# Dependencies to place after the objects being linked to create a
# shared library.
postdeps=$postdeps

# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=$compiler_lib_search_path

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

Jason Merrill committed
2283
# Command to use when deplibs_check_method == file_magic.
2284
file_magic_cmd=$file_magic_cmd
Jason Merrill committed
2285 2286

# Flag that allows shared libraries with undefined symbols to be built.
2287
allow_undefined_flag=$allow_undefined_flag
#  
Jeff Law committed
2288 2289

# Flag that forces no undefined symbols.
2290
no_undefined_flag=$no_undefined_flag
Jason Merrill committed
2291 2292

# Commands used to finish a libtool library installation in a directory.
2293
finish_cmds=$finish_cmds
#  
Jeff Law committed
2294 2295

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

#  
Jeff Law committed
2298
# Take the output of nm and produce a listing of raw symbols and C names.
2299 2300 2301 2302
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
2303 2304 2305 2306 2307 2308 2309

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

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

2310 2311 2312
# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=$shlibpath_overrides_runpath

Jason Merrill committed
2313 2314 2315
# How to hardcode a shared library path into an executable.
hardcode_action=$hardcode_action

2316 2317 2318
# Whether we should hardcode library paths into libraries.
hardcode_into_libs=$hardcode_into_libs

Jason Merrill committed
2319 2320
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
2321
hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
Jason Merrill committed
2322 2323

# Whether we need a single -rpath flag with a separated argument.
2324
hardcode_libdir_separator=$hardcode_libdir_separator
Jason Merrill committed
2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336

# 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
2337

2338 2339 2340 2341 2342 2343 2344
# Variables whose values should be saved in libtool wrapper scripts and
# restored at relink time.
variables_saved_for_relink="$variables_saved_for_relink"

# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs

2345 2346 2347 2348 2349 2350
# 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

2351 2352
# Fix the shell variable \$srcfile for the compiler.
fix_srcfile_path="$fix_srcfile_path"
2353

Jason Merrill committed
2354
# Set to yes if exported symbols are required.
2355 2356
always_export_symbols=$always_export_symbols

Jason Merrill committed
2357
# The commands to list exported symbols.
2358 2359
export_symbols_cmds=$export_symbols_cmds

2360 2361 2362
# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=$extract_expsyms_cmds

Jason Merrill committed
2363
# Symbols that should not be listed in the preloaded symbols.
2364 2365
exclude_expsyms=$exclude_expsyms

Jason Merrill committed
2366
# Symbols that must always be exported.
2367 2368
include_expsyms=$include_expsyms

Jason Merrill committed
2369 2370
EOF

2371 2372 2373 2374 2375 2376
if test -z "$tagname"; then
  echo '### END LIBTOOL CONFIG' >> "$ofile"
else
  echo "### END LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
fi

2377 2378 2379
case "$ltmain" in
*.sh)
  echo >> "$ofile"
2380 2381 2382 2383
  if test -z "$tagname"; then
    case "$host_os" in
    aix3*)
      cat <<\EOF >> "$ofile"
#  
Jeff Law committed
2384 2385 2386 2387

# 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.
Jason Merrill committed
2388
if test "X${COLLECT_NAMES+set}" != Xset; then
#  
Jeff Law committed
2389 2390 2391 2392
  COLLECT_NAMES=
  export COLLECT_NAMES
fi
EOF
2393 2394 2395
      ;;
    esac
    case "$host" in
2396
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 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 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 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 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571
      cat <<'EOF' >> "$ofile"
      # This is a source program that is used to create dlls on Windows
      # Don't remove nor modify the starting and closing comments
# /* ltdll.c starts here */
# #define WIN32_LEAN_AND_MEAN
# #include <windows.h>
# #undef WIN32_LEAN_AND_MEAN
# #include <stdio.h>
#
# #ifndef __CYGWIN__
# #  ifdef __CYGWIN32__
# #    define __CYGWIN__ __CYGWIN32__
# #  endif
# #endif
#
# #ifdef __cplusplus
# extern "C" {
# #endif
# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
# #ifdef __cplusplus
# }
# #endif
#
# #ifdef __CYGWIN__
# #include <cygwin/cygwin_dll.h>
# DECLARE_CYGWIN_DLL( DllMain );
# #endif
# HINSTANCE __hDllInstance_base;
#
# BOOL APIENTRY
# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
# {
#   __hDllInstance_base = hInst;
#   return TRUE;
# }
# /* ltdll.c ends here */
      # This is a source program that is used to create import libraries
      # on Windows for dlls which lack them. Don't remove nor modify the
      # starting and closing comments
# /* impgen.c starts here */
# /*   Copyright (C) 1999-2000 Free Software Foundation, Inc.
#
#  This file is part of GNU libtool.
#
#  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.
#  */
#
#  #include <stdio.h>		/* for printf() */
#  #include <unistd.h>		/* for open(), lseek(), read() */
#  #include <fcntl.h>		/* for O_RDONLY, O_BINARY */
#  #include <string.h>		/* for strdup() */
#
#  /* O_BINARY isn't required (or even defined sometimes) under Unix */
#  #ifndef O_BINARY
#  #define O_BINARY 0
#  #endif
#
#  static unsigned int
#  pe_get16 (fd, offset)
#       int fd;
#       int offset;
#  {
#    unsigned char b[2];
#    lseek (fd, offset, SEEK_SET);
#    read (fd, b, 2);
#    return b[0] + (b[1]<<8);
#  }
#
#  static unsigned int
#  pe_get32 (fd, offset)
#      int fd;
#      int offset;
#  {
#    unsigned char b[4];
#    lseek (fd, offset, SEEK_SET);
#    read (fd, b, 4);
#    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
#  }
#
#  static unsigned int
#  pe_as32 (ptr)
#       void *ptr;
#  {
#    unsigned char *b = ptr;
#    return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
#  }
#
#  int
#  main (argc, argv)
#      int argc;
#      char *argv[];
#  {
#      int dll;
#      unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
#      unsigned long export_rva, export_size, nsections, secptr, expptr;
#      unsigned long name_rvas, nexp;
#      unsigned char *expdata, *erva;
#      char *filename, *dll_name;
#
#      filename = argv[1];
#
#      dll = open(filename, O_RDONLY|O_BINARY);
#      if (!dll)
#  	return 1;
#
#      dll_name = filename;
#
#      for (i=0; filename[i]; i++)
#  	if (filename[i] == '/' || filename[i] == '\\'  || filename[i] == ':')
#  	    dll_name = filename + i +1;
#
#      pe_header_offset = pe_get32 (dll, 0x3c);
#      opthdr_ofs = pe_header_offset + 4 + 20;
#      num_entries = pe_get32 (dll, opthdr_ofs + 92);
#
#      if (num_entries < 1) /* no exports */
#  	return 1;
#
#      export_rva = pe_get32 (dll, opthdr_ofs + 96);
#      export_size = pe_get32 (dll, opthdr_ofs + 100);
#      nsections = pe_get16 (dll, pe_header_offset + 4 +2);
#      secptr = (pe_header_offset + 4 + 20 +
#  	      pe_get16 (dll, pe_header_offset + 4 + 16));
#
#      expptr = 0;
#      for (i = 0; i < nsections; i++)
#      {
#  	char sname[8];
#  	unsigned long secptr1 = secptr + 40 * i;
#  	unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
#  	unsigned long vsize = pe_get32 (dll, secptr1 + 16);
#  	unsigned long fptr = pe_get32 (dll, secptr1 + 20);
#  	lseek(dll, secptr1, SEEK_SET);
#  	read(dll, sname, 8);
#  	if (vaddr <= export_rva && vaddr+vsize > export_rva)
#  	{
#  	    expptr = fptr + (export_rva - vaddr);
#  	    if (export_rva + export_size > vaddr + vsize)
#  		export_size = vsize - (export_rva - vaddr);
#  	    break;
#  	}
#      }
#
#      expdata = (unsigned char*)malloc(export_size);
#      lseek (dll, expptr, SEEK_SET);
#      read (dll, expdata, export_size);
#      erva = expdata - export_rva;
#
#      nexp = pe_as32 (expdata+24);
#      name_rvas = pe_as32 (expdata+32);
#
#      printf ("EXPORTS\n");
#      for (i = 0; i<nexp; i++)
#      {
#  	unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
#  	printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
#      }
#
#      return 0;
#  }
# /* impgen.c ends here */

EOF
2572 2573 2574 2575
    ;;
  esac


2576 2577 2578 2579 2580 2581 2582 2583 2584
    # Append the ltmain.sh script.
    sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
    # We use sed instead of cat because bash on DJGPP gets confused if
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?

    chmod +x "$ofile"
  fi
2585 2586 2587 2588 2589
  ;;

*)
  # Compile the libtool program.
  echo "FIXME: would compile $ltmain"
Jason Merrill committed
2590 2591 2592
  ;;
esac

2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615
# Update the list of available tags.
if test -n "$tagname"; then

  # Extract list of available tagged configurations in $ofile.
  # Note that this assumes the entire list is on one line.
  available_tags=`grep "^available_tags=" $ofile | sed -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`

  # Append the new tag name to the list of available tags.
  available_tags="$available_tags $tagname"

  # Now substitute the updated of available tags.
  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' ${ofile} > ${ofile}.new"; then
    mv ${ofile}.new ${ofile}
    chmod +x "$ofile"
  else
    rm -f ${ofile}.new
    echo "$progname: unable to update list of available tagged configurations."
    exit 1
  fi
fi

# Don't cache tagged configuration!
test -n "$cache_file" && test -z "$tagname" || exit 0
#  
Jeff Law committed
2616

2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664
# 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
2665 2666 2667 2668 2669 2670 2671

exit 0

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