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

# ltconfig - Create a system-specific libtool.
4 5
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
Jason Merrill committed
6
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
Jason Merrill committed
7 8 9 10 11 12 13 14 15 16 17 18 19
#
# 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
20
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jason Merrill committed
21 22 23 24 25 26 27 28
#
# 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
29 30
# Check that we are running under the correct shell.
SHELL=${CONFIG_SHELL-/bin/sh}
31 32
echo=echo
if test "X$1" = X--no-reexec; then
#  
Jeff Law committed
33 34
  # Discard the --no-reexec flag, and continue.
  shift
35
elif test "X$1" = X--fallback-echo; then
Jason Merrill committed
36 37
  # Avoid inline document here, it may be left over
  :
38 39 40 41
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
  # Yippee, $echo works!
  :
else
#  
Jeff Law committed
42 43 44 45
  # Restart under the correct shell.
  exec "$SHELL" "$0" --no-reexec ${1+"$@"}
fi

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

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

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

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

81 82 83 84 85
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
86 87 88 89 90
  # 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.
91 92

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

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

# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
184 185
VERSION=1.4a-GCC3.0
TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes)"
Jason Merrill committed
186 187
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
188 189 190 191 192
rm="rm -f"

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

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

## Tools:
Jason Merrill committed
272
old_AR="$AR"
273
old_AR_FLAGS="$AR_FLAGS"
Jason Merrill committed
274 275 276
old_CC="$CC"
old_CFLAGS="$CFLAGS"
old_CPPFLAGS="$CPPFLAGS"
Jason Merrill committed
277
old_LDFLAGS="$LDFLAGS"
278
old_LIBS="$LIBS"
279
old_MAGIC_CMD="$MAGIC_CMD"
Jason Merrill committed
280 281
old_LD="$LD"
old_LN_S="$LN_S"
282
old_LTCC="$LTCC"
#  
Jeff Law committed
283
old_NM="$NM"
Jason Merrill committed
284
old_RANLIB="$RANLIB"
285 286
old_STRIP="$STRIP"
old_AS="$AS"
#  
Jeff Law committed
287
old_DLLTOOL="$DLLTOOL"
Jason Merrill committed
288
old_OBJDUMP="$OBJDUMP"
289 290 291 292 293
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
294 295 296 297 298 299

# Parse the command line options.
args=
prev=
for option
do
300
  case $option in
Jason Merrill committed
301 302 303 304 305 306 307 308 309 310 311
  -*=*) 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

312
  case $option in
Jason Merrill committed
313
  --help) cat <<EOM
314
Usage: $progname [OPTION]... LTMAIN [HOST]
Jason Merrill committed
315 316 317

Generate a system-specific libtool script.

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

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

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

348 349 350
  --build) prev=build ;;
  --build=*) build="$optarg" ;;

#  
Jeff Law committed
351 352 353 354 355
  --debug)
    echo "$progname: enabling shell trace mode"
    set -x
    ;;

Jason Merrill committed
356 357 358 359
  --disable-shared) enable_shared=no ;;

  --disable-static) enable_static=no ;;

360 361 362 363
  --disable-fast-install) enable_fast_install=no ;;

  --enable-dlopen) enable_dlopen=yes ;;

Jason Merrill committed
364 365
  --enable-win32-dll) enable_win32_dll=yes ;;

Jason Merrill committed
366 367 368 369 370 371 372
  --quiet | --silent) silent=yes ;;

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

  --no-verify) verify_host=no ;;

#  
Jeff Law committed
373 374 375
  --output | -o) prev=ofile ;;
  --output=*) ofile="$optarg" ;;

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

378 379 380
  --add-tag) prev=tagname ;;
  --add-tag=*) tagname="$optarg" ;;

Jason Merrill committed
381 382 383
  --with-gcc) with_gcc=yes ;;
  --with-gnu-ld) with_gnu_ld=yes ;;

384 385 386
  --prefer-pic) pic_mode=yes ;;
  --prefer-non-pic) pic_mode=no ;;

387 388 389 390
  --disable-lock) need_locks=no ;;

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

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

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

426 427
if test -n "$tagname"; then
  # Check whether tagname contains only valid characters
428
  case `$echo "X$tagname" | $Xsed -e 's/[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]//g'` in
429 430
  "") ;;
  *)
431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454
    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
455 456 457 458
# Quote any args containing shell metacharacters.
ltconfig_args=
for arg
do
459
  case $arg in
Jason Merrill committed
460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486
  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
  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
487 488
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
489

490
if test -n "$cache_file" && test -r "$cache_file" && test -f "$cache_file"; then
491 492 493 494
  echo "loading cache $cache_file within ltconfig"
  . $cache_file
fi

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

#  
Jeff Law committed
513
trap "$rm conftest*; exit 1" 1 2 15
Jason Merrill committed
514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531
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.
532
  if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
Jason Merrill committed
533 534 535 536 537 538 539 540 541
  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
542
  case $host_alias in
Jason Merrill committed
543
  "")
544 545 546 547 548
    # 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"

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

    # Restore the C compiler.
    CC="$old_CC"
    ;;
Jason Merrill committed
559
  esac
560
  host=`$SHELL $ac_config_sub $host_alias`
#  
Jeff Law committed
561 562 563 564
  echo "$ac_t$host" 1>&6

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

566 567 568 569
  # Check for the build system type
  echo $ac_n "checking build system type... $ac_c" 1>&6

  build_alias=$build
570
  case $build_alias in
571 572 573 574 575 576 577 578 579 580 581 582 583
  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
584 585 586 587 588 589
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
590 591 592 593 594 595 596 597
  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
598 599
fi

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

#  
Jeff Law committed
604
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
605
case $host_os in
#  
Jeff Law committed
606 607
linux-gnu*) ;;
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
Jason Merrill committed
608 609
esac

610
case $host_os in
#  
Jeff Law committed
611 612 613 614
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
615
  if test "X${COLLECT_NAMES+set}" != Xset; then
#  
Jeff Law committed
616 617 618 619 620 621
    COLLECT_NAMES=
    export COLLECT_NAMES
  fi
  ;;
esac

Jason Merrill committed
622
# Determine commands to create old-style static archives.
623
old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
Jason Merrill committed
624
old_postinstall_cmds='chmod 644 $oldlib'
#  
Jeff Law committed
625 626
old_postuninstall_cmds=

627 628
if test -n "$RANLIB"; then
  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
629
  old_postinstall_cmds="~$old_postinstall_cmds~\$RANLIB \$oldlib"
630 631
fi

632 633 634 635 636 637 638
# 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
639 640
fi

641 642 643 644 645
# 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
646
test -z "$DLLTOOL" && DLLTOOL=dlltool
647
test -z "$MAGIC_CMD" && MAGIC_CMD=file
648 649 650
test -z "$LD" && LD=ld
test -z "$LN_S" && LN_S="ln -s"
test -z "$NM" && NM=nm
Jason Merrill committed
651
test -z "$OBJDUMP" && OBJDUMP=objdump
652 653 654
test -z "$RANLIB" && RANLIB=:
test -z "$STRIP" && STRIP=:
test -z "$objext" && objext=o
Jason Merrill committed
655

656 657 658 659 660 661 662 663
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
664
fi
665 666 667 668 669
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
670 671 672 673 674

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

675 676 677 678
# 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
679
echo "$progname:678:checking for $compiler option to produce PIC" 1>&5
680

681 682
if test -z "$ac_cv_prog_cc_pic"; then
  echo "$ac_t"none 1>&6
Jason Merrill committed
683
else
684 685 686 687
  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
688
  echo "$progname:687:checking that $compiler PIC flag $ac_cv_prog_cc_pic works." 1>&5
689 690 691 692 693
  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
694
    $rm conftest*
695 696 697
    echo $lt_simple_compile_test_code > conftest.$ac_ext
    save_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS $ac_cv_prog_cc_pic -DPIC"
698
    if { (eval echo $progname:697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
Jason Merrill committed
699 700 701
      # Append any warnings to the config.log.
      cat conftest.err 1>&5

702
      case $host_os in
703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720
      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
721
    else
722
      # Append any errors to the config.log.
Jason Merrill committed
723
      cat conftest.err 1>&5
724 725 726
      ac_cv_prog_cc_pic_works=no
      ac_cv_prog_cc_can_build_shared=no
      ac_cv_prog_cc_pic=
Jason Merrill committed
727
    fi
728
    CFLAGS="$save_CFLAGS"
Jason Merrill committed
729
    $rm conftest*
730 731 732 733 734 735 736
  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
737
fi
#  
Jeff Law committed
738

739 740 741 742 743 744 745 746
# 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
747 748
fi

749
echo $ac_n "checking if $compiler static flag $ac_cv_prog_cc_static works... $ac_c" 1>&6
750
echo "$progname:749: checking if $compiler static flag $ac_cv_prog_cc_static works" >&5
751 752 753 754
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
755
  $rm conftest*
756 757 758
  echo $lt_simple_link_test_code > conftest.$ac_ext
  save_LDFLAGS="$LDFLAGS"
  LDFLAGS="$LDFLAGS $ac_cv_prog_cc_static"
759
  if { (eval echo $progname:758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
760
    ac_cv_prog_cc_static_works=yes
761
  else
762 763
    ac_cv_prog_cc_static_works=no
    ac_cv_prog_cc_static=
764
  fi
765
  LDFLAGS="$save_LDFLAGS"
766 767
  $rm conftest*
fi
768 769 770 771 772 773 774 775 776 777 778
# 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
779

780 781 782 783 784 785 786
# find the maximum length of command line arguments
echo "$progname:780: finding the maximum length of command line arguments" 1>&5
echo $ac_n "finding the maximum length of command line arguments... $ac_c" 1>&6
if test "${lt_cv_sys_max_cmd_len+set}" = set; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  i=0
787 788 789 790 791 792
  testring="ABCD"
  # If test is not a shell built-in, we'll probably end up computing a
  # maximum length that is only half of the actual maximum length, but
  # we can't tell.
  while test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
             = "XX$testring" &&
793 794
          new_result=`expr "X$testring" : ".*" 2>&1` &&
          lt_cv_sys_max_cmd_len=$new_result &&
795
          test $i != 17 # 1/2 MB should be enough
796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814
  do
    i=`expr $i + 1`
    testring=$testring$testring
  done
  testring=
  # add a significant safety factor because C++ compilers can tack on massive amounts
  # of additional arguments before passing them to the linker.  1/4 should be good.
  len=`expr $lt_cv_sys_max_cmd_len \/ 4`
  lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len - $len`
fi
echo "$progname:@lineno@: result: $lt_cv_sys_max_cmd_len" 1>&5
echo "${ac_t}$lt_cv_sys_max_cmd_len" 1>&6

if test -n $lt_cv_sys_max_cmd_len ; then
  max_cmd_len=$lt_cv_sys_max_cmd_len
else
  max_cmd_len=none
fi

815
# Check to see if options -o and -c are simultaneously supported by compiler
816
echo $ac_n "checking if $compiler supports -c -o file.$objext... $ac_c" 1>&6
817 818
if test "${lt_cv_compiler_c_o+set}" = set; then
  echo $ac_n "(cached) $ac_c" 1>&6
819
else
820 821 822 823 824 825 826 827 828 829 830 831 832 833
  $rm -r conftest 2>/dev/null
  mkdir conftest
  cd conftest
  $rm conftest*
  echo $lt_simple_compile_test_code > conftest.$ac_ext
  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 .
  save_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS -o out/conftest2.$objext"
834 835
  echo "$progname:833: checking if $compiler supports -c -o file.$objext" >&5
  if { (eval echo $progname:834: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$objext; then
836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858

    # The compiler can only warn and ignore the option if not recognized
    # So say no if there are warnings
      if test -s out/conftest.err; then
        lt_cv_compiler_c_o=no
      else
        lt_cv_compiler_c_o=yes
      fi
  else
    # Append any errors to the config.log.
    cat out/conftest.err 1>&5
    lt_cv_compiler_c_o=no
  fi
  CFLAGS="$save_CFLAGS"
  chmod u+w .
  $rm conftest* out/*
  rmdir out
  cd ..
  rmdir conftest
  $rm -r conftest 2>/dev/null
fi
compiler_c_o=$lt_cv_compiler_c_o
echo "${ac_t}$compiler_c_o" 1>&6
859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884

# 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*
885
  echo $lt_simple_compile_test_code > conftest.$ac_ext
886
  save_CFLAGS="$CFLAGS"
887
  CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
888 889
  echo "$progname:887: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
  if { (eval echo $progname:888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914

    # 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
915 916
fi

917 918
# 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
919

920 921
echo "$ac_t$ld_shlibs" 1>&6
test "$ld_shlibs" = no && can_build_shared=no
Jason Merrill committed
922 923 924 925 926

# 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
927
   test -n "$runpath_var"; then
Jason Merrill committed
928 929

  # We can hardcode non-existant directories.
Jason Merrill committed
930 931 932 933 934 935
  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
936 937 938 939 940 941 942
    # 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
943 944 945
  # We cannot hardcode anything, or else we can only hardcode existing
  # directories.
  hardcode_action=unsupported
Jason Merrill committed
946
fi
#  
Jeff Law committed
947
echo "$ac_t$hardcode_action" 1>&6
Jason Merrill committed
948

949 950 951 952 953 954 955 956
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
957

958 959 960 961
case $reload_flag in
"" | " "*) ;;
*) reload_flag=" $reload_flag" ;;
esac
Jason Merrill committed
962
reload_cmds='$LD$reload_flag -o $output$reload_objs'
963
test -z "$deplibs_check_method" && deplibs_check_method=unknown
Jason Merrill committed
964 965 966

# PORTME Fill in your ld.so characteristics
library_names_spec=
#  
Jeff Law committed
967
libname_spec='lib$name'
Jason Merrill committed
968
soname_spec=
969
shrext=".so"
Jason Merrill committed
970
postinstall_cmds=
#  
Jeff Law committed
971
postuninstall_cmds=
Jason Merrill committed
972
finish_cmds=
#  
Jeff Law committed
973
finish_eval=
Jason Merrill committed
974
shlibpath_var=
975
shlibpath_overrides_runpath=unknown
Jason Merrill committed
976 977
version_type=none
dynamic_linker="$host_os ld.so"
978 979
sys_lib_dlsearch_path_spec="/lib /usr/lib"
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
980

Jason Merrill committed
981
echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
982
case $host_os in
983
aix3*)
Jason Merrill committed
984
  version_type=linux
#  
Jeff Law committed
985
  library_names_spec='${libname}${release}.so$versuffix $libname.a'
Jason Merrill committed
986 987
  shlibpath_var=LIBPATH

988
  # AIX 3 has no versioning support, so we append a major version to the name.
#  
Jeff Law committed
989 990 991
  soname_spec='${libname}${release}.so$major'
  ;;

992
aix4* | aix5*)
993
  version_type=linux
994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011
  if test "$host_cpu" = ia64; then
    # AIX 5 supports IA64
    library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
    shlibpath_var=LD_LIBRARY_PATH
  else
    # AIX (on Power*) 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
    if test "$aix_use_runtimelinking" = yes; then
      # If using run time linking (on AIX 4.2 or later) use lib<name>.so instead of
      # lib<name>.a to let people know that these are not typical AIX shared libraries.
      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
    else
      # We preserve .a as extension for shared libraries though AIX4.2
      # and later when we are not doing run time linking.
      library_names_spec='${libname}${release}.a $libname.a'
1012
      soname_spec='${libname}${release}.so$major'
1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039
    fi
    # If we're using GNU nm, then we don't want the "-C" option.
    # -C means demangle to AIX nm, but means don't demangle with GNU nm
    if $NM -V 2>&1 | egrep '(GNU)' > /dev/null; then
      export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
    else
      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'
    fi
    shlibpath_var=LIBPATH
    deplibs_check_method=pass_all
    case $host_os in
    aix4 | aix4.[01] | aix4.[01].*)
      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
	   echo ' yes '
	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
	:
      else
	# With GCC up to 2.95.x, collect2 would create an import file
	# for dependence libraries.  The import file would start with
	# the line `#! .'.  This would cause the generated library to
	# depend on `.', always an invalid library.  This was fixed in
	# development snapshots of GCC prior to 3.0.
        can_build_shared=no
      fi
      ;;
    esac
  fi
1040 1041
  ;;

#  
Jeff Law committed
1042 1043 1044 1045 1046 1047
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'
  ;;

1048 1049 1050 1051
beos*)
  library_names_spec='${libname}.so'
  dynamic_linker="$host_os ld.so"
  shlibpath_var=LIBRARY_PATH
Jason Merrill committed
1052 1053 1054
  lt_cv_dlopen="load_add_on"
  lt_cv_dlopen_libs=
  lt_cv_dlopen_self=yes
1055 1056 1057 1058
  ;;

bsdi4*)
  version_type=linux
Jason Merrill committed
1059 1060 1061 1062
  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'
1063 1064 1065
  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
1066
  export_dynamic_flag_spec=-rdynamic
1067 1068 1069 1070 1071
  # 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
  ;;

1072
cygwin* | mingw* | pw32*)
#  
Jeff Law committed
1073
  version_type=windows
Jason Merrill committed
1074 1075
  need_version=no
  need_lib_prefix=no
1076 1077
  case $with_gcc,$host_os in
  yes,cygwin*)
1078 1079 1080 1081 1082 1083 1084 1085
    library_names_spec='$libname.dll.a'
    soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | [sed -e 's/[.]/-/g']`${versuffix}.dll'
    postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i; echo \$dlname'\''`~
      dldir=$destdir/`dirname \$dlpath`~
      test -d \$dldir || mkdir -p \$dldir~
      $install_prog .libs/$dlname \$dldir/$dlname'
    postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
      dlpath=$dir/\$dldll; $rm \$dlpath'
1086 1087
    ;;
  yes,mingw*)
1088
    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
1089 1090 1091 1092 1093 1094
    sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
    ;;
  yes,pw32*)
    library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
;;
  *)
1095
    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
1096 1097
    ;;
  esac
#  
Jeff Law committed
1098
  dynamic_linker='Win32 ld.exe'
1099
  # FIXME: first we should search . and the directory the executable is in
#  
Jeff Law committed
1100
  shlibpath_var=PATH
Jason Merrill committed
1101 1102
  lt_cv_dlopen="LoadLibrary"
  lt_cv_dlopen_libs=
Jason Merrill committed
1103 1104
  ;;

1105
darwin* | rhapsody*)
1106
  dynamic_linker="$host_os dyld"
1107 1108 1109
  lt_cv_dlopen="dyld"
  lt_cv_dlopen_libs=
  lt_cv_dlopen_self=yes
1110
  version_type=darwin
1111 1112
  need_lib_prefix=no
  need_version=no
1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123
  # Disable shared library build on OS-X older than 10.3.
  case $host_os in
      darwin[1-6]*)
	  can_build_shared=no
	  ;;
      darwin7*)
	  can_build_shared=yes
	  ;;
  esac
  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
  soname_spec='${libname}${release}${major}$shared_ext'
1124 1125
  shlibpath_overrides_runpath=yes
  shlibpath_var=DYLD_LIBRARY_PATH
1126 1127 1128
  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
  sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
1129 1130
  ;;

1131 1132 1133
freebsd1*)
  dynamic_linker=no
  ;;
1134

1135 1136 1137
freebsd*)
  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
  version_type=freebsd-$objformat
1138
  case $version_type in
1139 1140 1141
    freebsd-elf*)
      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
      need_version=no
1142
      need_lc=no
1143 1144 1145 1146 1147 1148 1149
      need_lib_prefix=no
      ;;
    freebsd-*)
      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
      need_version=yes
      ;;
  esac
Jason Merrill committed
1150
  shlibpath_var=LD_LIBRARY_PATH
1151
  case $host_os in
1152 1153 1154
  freebsd2*)
    shlibpath_overrides_runpath=yes
    ;;
1155
  *)
Jason Merrill committed
1156
    shlibpath_overrides_runpath=no
1157
    hardcode_into_libs=yes
Jason Merrill committed
1158 1159
    ;;
  esac
Jason Merrill committed
1160 1161 1162
  ;;

gnu*)
1163
  version_type=linux
Jason Merrill committed
1164 1165 1166 1167
  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
1168
  shlibpath_var=LD_LIBRARY_PATH
1169
  hardcode_into_libs=yes
Jason Merrill committed
1170 1171
  ;;

1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182
kfreebsd*-gnu | knetbsd*-gnu)
  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
  shlibpath_overrides_runpath=yes
  hardcode_into_libs=yes
  ;;

#  
Jeff Law committed
1183
hpux9* | hpux10* | hpux11*)
Jason Merrill committed
1184 1185 1186
  # Give a soname corresponding to the major version so that dld.sl refuses to
  # link against other versions.
  version_type=sunos
1187 1188
  need_lib_prefix=no
  need_version=no
1189 1190 1191 1192 1193 1194 1195 1196 1197
  case "$host_cpu" in
  ia64*)
    dynamic_linker="$host_os dld.so"
    shlibpath_var=LD_LIBRARY_PATH
    library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
    soname_spec='${libname}${release}.so$major'
    shlibpath_var=LD_LIBRARY_PATH
    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
    if test "X$HPUX_IA64_MODE" = X32; then
1198
      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211
    else
      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
    fi
    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
    ;;
  *)
    dynamic_linker="$host_os dld.sl"
    shlibpath_var=SHLIB_PATH
    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
    library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
    soname_spec='${libname}${release}.sl$major'
    ;;
  esac
Jason Merrill committed
1212 1213 1214 1215
  # HP-UX runs *really* slowly unless shared libraries are mode 555.
  postinstall_cmds='chmod 555 $lib'
  ;;

Jason Merrill committed
1216
irix5* | irix6*)
1217 1218 1219 1220
  if test "$with_gnu_ld" = yes; then
    version_type=linux
  else
    version_type=irix
1221
  fi
1222 1223
  need_lib_prefix=no
  need_version=no
1224 1225
  soname_spec='${libname}${release}.so$major'
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
1226
  case $host_os in
Jason Merrill committed
1227 1228 1229 1230
  irix5*)
    libsuff= shlibsuff=
    ;;
  *)
1231
    case $LD in # libtool.m4 will add one of these switches to LD
1232 1233 1234 1235 1236 1237
    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
      libsuff= shlibsuff= libmagic=32-bit;;
    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
      libsuff=32 shlibsuff=N32 libmagic=N32;;
    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
      libsuff=64 shlibsuff=64 libmagic=64-bit;;
Jason Merrill committed
1238 1239 1240
    *) libsuff= shlibsuff= libmagic=never-match;;
    esac
    ;;
1241 1242 1243
  esac
  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
  shlibpath_overrides_runpath=no
Jason Merrill committed
1244 1245
  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
1246 1247 1248 1249 1250 1251 1252 1253 1254 1255
  ;;

# 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
1256 1257
  need_lib_prefix=no
  need_version=no
#  
Jeff Law committed
1258 1259
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
Jason Merrill committed
1260
  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
Jason Merrill committed
1261
  shlibpath_var=LD_LIBRARY_PATH
1262
  shlibpath_overrides_runpath=no
1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274
  # 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
1275 1276
  ;;

1277
netbsd*)
1278 1279
  need_lib_prefix=no
  need_version=no
Jason Merrill committed
1280
  version_type=sunos
1281 1282
  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
    library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
Jason Merrill committed
1283
    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
1284 1285 1286 1287 1288 1289 1290
    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
1291 1292
  shlibpath_overrides_runpath=yes
  hardcode_into_libs=yes
1293 1294
  ;;

1295 1296 1297 1298 1299 1300 1301
newsos6)
  version_type=linux
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=yes
  ;;

1302 1303 1304 1305 1306 1307 1308
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
1309 1310 1311 1312
  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
  shlibpath_var=LD_LIBRARY_PATH
  ;;

#  
Jeff Law committed
1313 1314
os2*)
  libname_spec='$name'
1315
  need_lib_prefix=no
#  
Jeff Law committed
1316 1317 1318 1319 1320
  library_names_spec='$libname.dll $libname.a'
  dynamic_linker='OS/2 ld.exe'
  shlibpath_var=LIBPATH
  ;;

Jason Merrill committed
1321
osf3* | osf4* | osf5*)
Jason Merrill committed
1322
  version_type=osf
Jason Merrill committed
1323
  need_version=no
1324 1325
  soname_spec='${libname}${release}.so$major'
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
Jason Merrill committed
1326
  shlibpath_var=LD_LIBRARY_PATH
1327 1328
  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
1329 1330 1331 1332
  ;;

sco3.2v5*)
  version_type=osf
#  
Jeff Law committed
1333 1334
  soname_spec='${libname}${release}.so$major'
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
Jason Merrill committed
1335 1336 1337
  shlibpath_var=LD_LIBRARY_PATH
  ;;

1338
solaris*)
Jason Merrill committed
1339
  version_type=linux
1340 1341
  need_lib_prefix=no
  need_version=no
#  
Jeff Law committed
1342 1343
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  soname_spec='${libname}${release}.so$major'
Jason Merrill committed
1344
  shlibpath_var=LD_LIBRARY_PATH
1345
  shlibpath_overrides_runpath=yes
1346
  hardcode_into_libs=yes
1347 1348
  # ldd complains unless libraries are executable
  postinstall_cmds='chmod +x $lib'
Jason Merrill committed
1349 1350 1351 1352
  ;;

sunos4*)
  version_type=sunos
1353
  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
Jason Merrill committed
1354 1355
  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
  shlibpath_var=LD_LIBRARY_PATH
1356 1357 1358 1359 1360
  shlibpath_overrides_runpath=yes
  if test "$with_gnu_ld" = yes; then
    need_lib_prefix=no
  fi
  need_version=yes
Jason Merrill committed
1361 1362
  ;;

Jason Merrill committed
1363
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
#  
Jeff Law committed
1364 1365 1366 1367
  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
1368
  case $host_vendor in
Jason Merrill committed
1369 1370 1371 1372 1373 1374
    motorola)
      need_lib_prefix=no
      need_version=no
      shlibpath_overrides_runpath=no
      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
      ;;
1375
  esac
#  
Jeff Law committed
1376 1377
  ;;

1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389
tpf*)
  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
  shlibpath_overrides_runpath=no
  hardcode_into_libs=yes
  dynamic_linker='GNU/Linux ld.so'
  ;;

#  
Jeff Law committed
1390 1391 1392 1393 1394 1395 1396
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
  ;;

1397 1398 1399 1400 1401 1402 1403 1404 1405
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
1406 1407 1408 1409 1410 1411 1412 1413 1414
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
1415 1416 1417 1418
*)
  dynamic_linker=no
  ;;
esac
1419
echo "$ac_t$dynamic_linker" 1>&6
Jason Merrill committed
1420 1421
test "$dynamic_linker" = no && can_build_shared=no

1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440
# 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.
1441
case $host_os in
1442 1443 1444
aix*)
  symcode='[BCDT]'
  ;;
1445
cygwin* | mingw* | pw32*)
1446 1447 1448
  symcode='[ABCDGISTW]'
  ;;
hpux*) # Its linker distinguishes data from code symbols
1449
  global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461
  ;;
irix*)
  symcode='[BCDEGRST]'
  ;;
solaris* | sysv5*)
  symcode='[BDT]'
  ;;
sysv4)
  symcode='[DFNSTU]'
  ;;
esac

1462
# Handle CRLF in mingw tool chain
1463
opt_cr=
1464
case $host_os in
1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478
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.
1479
  global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492

  # 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
1493
int main(){nm_test_var='a';nm_test_func();return(0);}
1494 1495
EOF

1496 1497
  echo "$progname:1431: checking if global_symbol_pipe works" >&5
  if { (eval echo $progname:1432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
1498 1499
    # Now try to grab the symbols.
    nlist=conftest.nm
1500
    if { echo "$progname:1435: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536

      # 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
1537
 	  sed "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" >> conftest.$ac_ext
1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551
	  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"
1552
	  if { (eval echo $progname:1487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590
	    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
1591
# Report the final consequences.
Jason Merrill committed
1592 1593
echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6

Jason Merrill committed
1594 1595
# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
# configure.in, otherwise build static only libraries.
1596
case $host_os in
1597
cygwin* | mingw* | pw32* | os2*)
Jason Merrill committed
1598 1599 1600 1601 1602 1603 1604
  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
1605 1606 1607
echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
test "$can_build_shared" = "no" && enable_shared=no

#  
Jeff Law committed
1608 1609
# On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC.
1610
case $host_os in
1611
aix3*)
Jason Merrill committed
1612 1613
  test "$enable_shared" = yes && enable_static=no
  if test -n "$RANLIB"; then
1614
    archive_cmds="$archive_cmds~\$RANLIB \$lib"
Jason Merrill committed
1615 1616 1617
    postinstall_cmds='$RANLIB $lib'
  fi
  ;;
1618

1619
aix4* | aix5*)
1620 1621
  test "$enable_shared" = yes && enable_static=no
  ;;
Jason Merrill committed
1622 1623
esac

#  
Jeff Law committed
1624
echo "$ac_t$enable_shared" 1>&6
Jason Merrill committed
1625 1626 1627 1628 1629 1630

# 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

1631
if test "$hardcode_action" = relink; then
1632 1633 1634 1635 1636 1637 1638 1639
  # 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

1640 1641 1642
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
1643
fi
1644 1645 1646

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

1648 1649 1650 1651 1652
if test "x$enable_dlopen" != xyes; then
  enable_dlopen=unknown
  enable_dlopen_self=unknown
  enable_dlopen_self_static=unknown
else
1653
if test "X${lt_cv_dlopen+set}" != Xset; then
1654
  lt_cv_dlopen=no lt_cv_dlopen_libs=
Jason Merrill committed
1655
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
1656
echo "$progname:1591: checking for dlopen in -ldl" >&5
1657
if test "X${ac_cv_lib_dl_dlopen+set}" = Xset; then
1658 1659
  echo $ac_n "(cached) $ac_c" 1>&6
else
Jason Merrill committed
1660 1661 1662
  ac_save_LIBS="$LIBS"
LIBS="-ldl  $LIBS"
cat > conftest.$ac_ext <<EOF
1663
#line 1598 "ltconfig"
1664 1665 1666
/* 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
1667 1668 1669
#ifdef __cplusplus
extern "C"
#endif
1670 1671 1672
char dlopen();

int main() {
Jason Merrill committed
1673
dlopen()
1674 1675
; return 0; }
EOF
1676
if { (eval echo $progname:1611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1677
  rm -rf conftest*
1678
  ac_cv_lib_dl_dlopen=yes
1679 1680 1681 1682
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1683
  ac_cv_lib_dl_dlopen=no
1684 1685
fi
rm -f conftest*
Jason Merrill committed
1686
LIBS="$ac_save_LIBS"
1687

Jason Merrill committed
1688
fi
1689
if test "X$ac_cv_lib_dl_dlopen" = Xyes; then
1690
  echo "$ac_t""yes" 1>&6
Jason Merrill committed
1691
  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1692 1693
else
  echo "$ac_t""no" 1>&6
Jason Merrill committed
1694
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
1695
echo "$progname:1630: checking for dlopen" >&5
1696
if test "X${ac_cv_func_dlopen+set}" = Xset; then
1697 1698
  echo $ac_n "(cached) $ac_c" 1>&6
else
Jason Merrill committed
1699
  cat > conftest.$ac_ext <<EOF
1700
#line 1635 "ltconfig"
Jason Merrill committed
1701 1702 1703
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char dlopen(); below.  */
#include <assert.h>
1704 1705 1706
/* 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
1707 1708 1709
#ifdef __cplusplus
extern "C"
#endif
1710 1711 1712
char dlopen();

int main() {
Jason Merrill committed
1713 1714 1715 1716 1717 1718 1719 1720 1721 1722

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

1723 1724
; return 0; }
EOF
1725
if { (eval echo $progname:1660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1726
  rm -rf conftest*
1727
  ac_cv_func_dlopen=yes
1728 1729 1730 1731
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1732
  ac_cv_func_dlopen=no
1733 1734 1735
fi
rm -f conftest*
fi
1736
if test "X$ac_cv_func_dlopen" = Xyes; then
1737
  echo "$ac_t""yes" 1>&6
Jason Merrill committed
1738
  lt_cv_dlopen="dlopen"
1739 1740
else
  echo "$ac_t""no" 1>&6
1741
echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
1742
echo "$progname:1677: checking for dlopen in -lsvld" >&5
1743 1744 1745 1746 1747 1748
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
1749
#line 1684 "ltconfig"
1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761
/* 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
1762
if { (eval echo $progname:1697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779
  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
1780
echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
1781
echo "$progname:1716: checking for dld_link in -ldld" >&5
1782
if test "X${ac_cv_lib_dld_dld_link+set}" = Xset; then
1783 1784 1785 1786 1787
  echo $ac_n "(cached) $ac_c" 1>&6
else
  ac_save_LIBS="$LIBS"
LIBS="-ldld  $LIBS"
cat > conftest.$ac_ext <<EOF
1788
#line 1723 "ltconfig"
1789 1790 1791
/* 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
1792 1793 1794
#ifdef __cplusplus
extern "C"
#endif
1795 1796 1797 1798 1799 1800
char dld_link();

int main() {
dld_link()
; return 0; }
EOF
1801
if { (eval echo $progname:1736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1802
  rm -rf conftest*
1803
  ac_cv_lib_dld_dld_link=yes
1804 1805 1806 1807
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1808
  ac_cv_lib_dld_dld_link=no
1809 1810 1811 1812 1813
fi
rm -f conftest*
LIBS="$ac_save_LIBS"

fi
1814
if test "X$ac_cv_lib_dld_dld_link" = Xyes; then
1815 1816 1817 1818 1819
  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
1820
echo "$progname:1755: checking for shl_load" >&5
1821
if test "X${ac_cv_func_shl_load+set}" = Xset; then
1822 1823 1824
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
1825
#line 1760 "ltconfig"
1826 1827 1828 1829 1830 1831
/* 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
1832 1833 1834
#ifdef __cplusplus
extern "C"
#endif
1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849
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
1850
if { (eval echo $progname:1785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1851
  rm -rf conftest*
1852
  ac_cv_func_shl_load=yes
1853 1854 1855 1856
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1857
  ac_cv_func_shl_load=no
1858 1859 1860 1861
fi
rm -f conftest*
fi

1862
if test "X$ac_cv_func_shl_load" = Xyes; then
1863 1864 1865 1866
  echo "$ac_t""yes" 1>&6
  lt_cv_dlopen="shl_load"
else
  echo "$ac_t""no" 1>&6
Jason Merrill committed
1867
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
1868
echo "$progname:1803: checking for shl_load in -ldld" >&5
1869
if test "X${ac_cv_lib_dld_shl_load+set}" = Xset; then
1870 1871
  echo $ac_n "(cached) $ac_c" 1>&6
else
Jason Merrill committed
1872 1873 1874
  ac_save_LIBS="$LIBS"
LIBS="-ldld  $LIBS"
cat > conftest.$ac_ext <<EOF
1875
#line 1810 "ltconfig"
Jason Merrill committed
1876
#include "confdefs.h"
1877 1878 1879
/* 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
1880 1881
#ifdef __cplusplus
extern "C"
1882
#endif
Jason Merrill committed
1883
char shl_load();
1884

Jason Merrill committed
1885 1886
int main() {
shl_load()
1887 1888
; return 0; }
EOF
1889
if { (eval echo $progname:1824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1890
  rm -rf conftest*
1891
  ac_cv_lib_dld_shl_load=yes
1892 1893 1894 1895
else
  echo "$progname: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
1896
  ac_cv_lib_dld_shl_load=no
1897 1898
fi
rm -f conftest*
Jason Merrill committed
1899
LIBS="$ac_save_LIBS"
1900

Jason Merrill committed
1901
fi
1902
if test "X$ac_cv_lib_dld_shl_load" = Xyes; then
1903
  echo "$ac_t""yes" 1>&6
Jason Merrill committed
1904
  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
1905 1906 1907 1908
else
  echo "$ac_t""no" 1>&6
fi

Jason Merrill committed
1909

1910 1911
fi

1912

1913 1914
fi

1915

1916 1917 1918 1919 1920 1921 1922
fi


fi

fi

1923 1924
fi

1925 1926
  if test "x$lt_cv_dlopen" != xno; then
    enable_dlopen=yes
1927 1928
  else
    enable_dlopen=no
1929 1930
  fi

1931
  case $lt_cv_dlopen in
1932 1933 1934 1935
  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
1936
echo "$progname:1871: checking for $ac_hdr" >&5
1937
if eval "test \"`echo 'X$''{'ac_cv_header_$ac_safe'+set}'`\" = Xset"; then
1938 1939 1940
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
1941
#line 1876 "ltconfig"
1942 1943
#include <$ac_hdr>
int fnord = 0;
1944
int main () { return(0); }
1945
EOF
Jason Merrill committed
1946
ac_try="$ac_compile >/dev/null 2>conftest.out"
1947
{ (eval echo $progname:1882: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974
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
1975
echo "$progname:1910: checking whether a program can dlopen itself" >&5
1976
if test "X${lt_cv_dlopen_self+set}" = Xset; then
1977 1978 1979 1980 1981
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
    lt_cv_dlopen_self=cross
  else
1982
    cat > conftest.$ac_ext <<EOF
1983
#line 1918 "ltconfig"
1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022

#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

2023 2024 2025
void fnord() { int i=42; }
int main() {
    void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
2026
    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
2027
               if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
2028 2029

EOF
2030
if { (eval echo $progname:1965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048
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
2049
echo "$progname:1984: checking whether a statically linked program can dlopen itself" >&5
2050
if test "X${lt_cv_dlopen_self_static+set}" = Xset; then
2051 2052 2053 2054 2055
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
    lt_cv_dlopen_self_static=cross
  else
2056
    cat > conftest.$ac_ext <<EOF
2057
#line 1992 "ltconfig"
2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096

#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

2097 2098 2099
void fnord() { int i=42; }
int main() {
    void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
2100
    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
2101
    if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
2102 2103

EOF
2104
if { (eval echo $progname:2039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122
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

2123
  case $lt_cv_dlopen_self in
2124 2125 2126 2127
  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
  *) enable_dlopen_self=unknown ;;
  esac

2128
  case $lt_cv_dlopen_self_static in
2129 2130 2131 2132 2133
  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
  *) enable_dlopen_self_static=unknown ;;
  esac
fi

#  
Jeff Law committed
2134 2135 2136
# Copy echo and quote the copy, instead of the original, because it is
# used later.
ltecho="$echo"
2137 2138 2139 2140
if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
   ltecho="$CONFIG_SHELL \$0 --fallback-echo"
fi
LTSHELL="$SHELL"
#  
Jeff Law committed
2141

2142 2143 2144
LTCONFIG_VERSION="$VERSION"

# Only quote variables if we're using ltmain.sh.
2145
case $ltmain in
2146 2147
*.sh)
  # Now quote all the things that may contain metacharacters.
2148
  for var in ltecho old_AR old_AR_FLAGS old_CC old_LTCC old_CFLAGS old_CPPFLAGS \
2149
    old_MAGIC_CMD old_LD old_LDFLAGS old_LIBS \
2150 2151 2152 2153 2154
    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 \
2155 2156 2157 2158 2159
    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 \
2160 2161 2162 2163 2164
    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 \
2165 2166 2167
    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 \
2168
    compiler_c_o need_locks exclude_expsyms include_expsyms file_list_spec; do
2169

2170
    case $var in
2171 2172 2173
    reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
    old_postinstall_cmds | old_postuninstall_cmds | \
    export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
2174
    extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
2175 2176 2177
    postinstall_cmds | postuninstall_cmds | \
    finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
      # Double-quote double-evaled strings.
2178
      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ### testsuite: skip nested quoting test
2179 2180
      ;;
    *)
2181
      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ### testsuite: skip nested quoting test
2182 2183 2184 2185
      ;;
    esac
  done

2186
  case $ltecho in
2187 2188
  *'\$0 --fallback-echo"')
    ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
#  
Jeff Law committed
2189 2190
    ;;
  esac
Jason Merrill committed
2191

2192 2193 2194 2195 2196
  if test -z "$tagname"; then
    trap "$rm \"$ofile\"; exit 1" 1 2 15
    echo "creating $ofile"
    $rm "$ofile"
    cat <<EOF > "$ofile"
#  
Jeff Law committed
2197 2198 2199
#! $SHELL

# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
2200
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
#  
Jeff Law committed
2201 2202
# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
#
2203
# Copyright (C) 1996-2000 Free Software Foundation, Inc.
Jason Merrill committed
2204
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#  
Jeff Law committed
2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217
#
# 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
2218
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#  
Jeff Law committed
2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229
#
# 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
2230
if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
#  
Jeff Law committed
2231

2232 2233 2234
# The names of the tagged configurations supported by this script.
available_tags=

#  
Jeff Law committed
2235
### BEGIN LIBTOOL CONFIG
2236
EOF
2237 2238 2239 2240
  else
    echo "appending configuration tag \"$tagname\" to $ofile"
    echo "### BEGIN LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
  fi
2241 2242 2243 2244 2245
  cfgfile="$ofile"
  ;;

*)
  # Double-quote the variables that need it (for aesthetics).
2246
  for var in old_AR old_AR_FLAGS old_CC old_LTCC old_CFLAGS old_CPPFLAGS \
2247
    old_MAGIC_CMD old_LD old_LDFLAGS old_LIBS \
2248 2249 2250 2251
    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
2252 2253 2254 2255 2256
    eval "$var=\\\"\$var\\\""
  done

  # Just create a config file.
  cfgfile="$ofile.cfg"
2257 2258 2259 2260 2261
  if test -z "$tagname"; then
    trap "$rm \"$cfgfile\"; exit 1" 1 2 15
    echo "creating $cfgfile"
    $rm "$cfgfile"
    cat <<EOF > "$cfgfile"
2262 2263
# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
2264 2265

### BEGIN LIBTOOL CONFIG
2266
EOF
2267 2268 2269 2270
  else
    echo "appending to $cfgfile"
    echo "### BEGIN LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
  fi
2271 2272 2273 2274
  ;;
esac

cat <<EOF >> "$cfgfile"
#  
Jeff Law committed
2275
# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
Jason Merrill committed
2276
#
2277 2278
# AR=$old_AR AR_FLAGS=$old_AR_FLAGS LTCC=$old_LTCC CC=$old_CC \\
# CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
2279
# MAGIC_CMD=$old_MAGIC_CMD LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
2280 2281 2282 2283 2284
# 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
2285 2286 2287 2288 2289 2290
#   $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.
2291
LTCONFIG_VERSION=$LTCONFIG_VERSION
Jason Merrill committed
2292

#  
Jeff Law committed
2293
# Shell to use when invoking shell scripts.
2294
SHELL=$LTSHELL
#  
Jeff Law committed
2295 2296

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

2299 2300 2301
# Whether or not to add -lc for building shared libraries.
build_libtool_need_lc=$need_lc

#  
Jeff Law committed
2302
# Whether or not to build static libraries.
Jason Merrill committed
2303 2304
build_old_libs=$enable_static

2305 2306 2307
# Whether or not to optimize for fast installation.
fast_install=$enable_fast_install

Jason Merrill committed
2308
# The host system.
2309 2310
host_alias=$host_alias
host=$host
Jason Merrill committed
2311

#  
Jeff Law committed
2312
# An echo program that does not interpret backslashes.
2313
echo=$ltecho
#  
Jeff Law committed
2314

Jason Merrill committed
2315
# The archiver.
2316
AR=$AR
2317
AR_FLAGS=$AR_FLAGS
#  
Jeff Law committed
2318

2319 2320 2321 2322
# A C compiler.
LTCC=$LTCC

# A language-specific compiler.
2323
CC=$CC
Jason Merrill committed
2324

2325 2326 2327
# Is the compiler the GNU C compiler?
with_gcc=$with_gcc

Jason Merrill committed
2328
# The linker used to build libraries.
2329
LD=$LD
Jason Merrill committed
2330 2331

# Whether we need hard or soft links.
2332
LN_S=$LN_S
#  
Jeff Law committed
2333 2334

# A BSD-compatible nm program.
2335
NM=$NM
#  
Jeff Law committed
2336

2337 2338 2339 2340
# A symbol stripping program
STRIP=$STRIP

# Used to examine libraries when file_magic_cmd begins "file"
2341
MAGIC_CMD=$MAGIC_CMD
2342

2343
# Used on cygwin: DLL creation program.
#  
Jeff Law committed
2344 2345
DLLTOOL="$DLLTOOL"

Jason Merrill committed
2346 2347 2348
# Used on cygwin: object dumper.
OBJDUMP="$OBJDUMP"

2349
# Used on cygwin: assembler.
#  
Jeff Law committed
2350 2351 2352
AS="$AS"

# The name of the directory that contains temporary libtool files.
2353
objdir=$objdir
Jason Merrill committed
2354 2355

# How to create reloadable object files.
2356 2357
reload_flag=$reload_flag
reload_cmds=$reload_cmds
Jason Merrill committed
2358 2359

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

2362 2363 2364 2365 2366 2367
# Object file suffix (normally "o").
objext="$objext"

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

2368 2369 2370
# Shared library suffix (normally ".so").
shrext='$shrext'

Jason Merrill committed
2371 2372 2373
# Executable file suffix (normally "").
exeext="$exeext"

Jason Merrill committed
2374
# Additional compiler flags for building library objects.
2375
pic_flag=$pic_flag
2376
pic_mode=$pic_mode
2377

2378 2379 2380
# What is the maximum length of a command?
max_cmd_len=$max_cmd_len

Jason Merrill committed
2381
# Does compiler simultaneously support -c and -o options?
2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393
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.
2394
dlopen_support=$enable_dlopen
2395 2396 2397 2398 2399 2400

# 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
2401 2402

# Compiler flag to prevent dynamic linking.
2403
link_static_flag=$link_static_flag
Jason Merrill committed
2404

#  
Jeff Law committed
2405
# Compiler flag to turn off builtin functions.
2406
no_builtin_flag=$no_builtin_flag
Jason Merrill committed
2407

#  
Jeff Law committed
2408
# Compiler flag to allow reflexive dlopens.
2409
export_dynamic_flag_spec=$export_dynamic_flag_spec
Jason Merrill committed
2410

2411
# Compiler flag to generate shared objects directly from archives.
2412 2413 2414 2415
whole_archive_flag_spec=$whole_archive_flag_spec

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

Jason Merrill committed
2417 2418 2419
# Library versioning type.
version_type=$version_type

#  
Jeff Law committed
2420
# Format of library name prefix.
2421
libname_spec=$libname_spec
#  
Jeff Law committed
2422

Jason Merrill committed
2423 2424
# 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.
2425
library_names_spec=$library_names_spec
Jason Merrill committed
2426 2427

# The coded name of the library, if different from the real name.
2428
soname_spec=$soname_spec
Jason Merrill committed
2429 2430

# Commands used to build and install an old-style archive.
2431 2432 2433 2434
RANLIB=$RANLIB
old_archive_cmds=$old_archive_cmds
old_postinstall_cmds=$old_postinstall_cmds
old_postuninstall_cmds=$old_postuninstall_cmds
#  
Jeff Law committed
2435 2436

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

2439 2440 2441
# 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
2442
# Commands used to build and install a shared archive.
2443 2444 2445 2446 2447
archive_cmds=$archive_cmds
archive_expsym_cmds=$archive_expsym_cmds
postinstall_cmds=$postinstall_cmds
postuninstall_cmds=$postuninstall_cmds

2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471
# 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

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

Jason Merrill committed
2475
# Command to use when deplibs_check_method == file_magic.
2476
file_magic_cmd=$file_magic_cmd
Jason Merrill committed
2477 2478

# Flag that allows shared libraries with undefined symbols to be built.
2479
allow_undefined_flag=$allow_undefined_flag
#  
Jeff Law committed
2480 2481

# Flag that forces no undefined symbols.
2482
no_undefined_flag=$no_undefined_flag
Jason Merrill committed
2483 2484

# Commands used to finish a libtool library installation in a directory.
2485
finish_cmds=$finish_cmds
#  
Jeff Law committed
2486 2487

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

#  
Jeff Law committed
2490
# Take the output of nm and produce a listing of raw symbols and C names.
2491 2492 2493 2494
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
2495 2496 2497 2498 2499 2500 2501

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

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

2502 2503 2504
# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=$shlibpath_overrides_runpath

Jason Merrill committed
2505 2506 2507
# How to hardcode a shared library path into an executable.
hardcode_action=$hardcode_action

2508 2509 2510
# Whether we should hardcode library paths into libraries.
hardcode_into_libs=$hardcode_into_libs

Jason Merrill committed
2511 2512
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
2513
hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
Jason Merrill committed
2514 2515

# Whether we need a single -rpath flag with a separated argument.
2516
hardcode_libdir_separator=$hardcode_libdir_separator
Jason Merrill committed
2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528

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

2530 2531 2532 2533 2534 2535 2536
# 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

2537 2538 2539 2540 2541 2542
# 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

2543 2544
# Fix the shell variable \$srcfile for the compiler.
fix_srcfile_path="$fix_srcfile_path"
2545

Jason Merrill committed
2546
# Set to yes if exported symbols are required.
2547 2548
always_export_symbols=$always_export_symbols

Jason Merrill committed
2549
# The commands to list exported symbols.
2550 2551
export_symbols_cmds=$export_symbols_cmds

2552 2553 2554
# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=$extract_expsyms_cmds

Jason Merrill committed
2555
# Symbols that should not be listed in the preloaded symbols.
2556 2557
exclude_expsyms=$exclude_expsyms

Jason Merrill committed
2558
# Symbols that must always be exported.
2559 2560
include_expsyms=$include_expsyms

2561 2562 2563 2564 2565 2566
# Specify filename containing input files.
file_list_spec=$file_list_spec

# with_gnu_ld value
with_gnu_ld=$with_gnu_ld

Jason Merrill committed
2567 2568
EOF

2569 2570 2571 2572 2573 2574
if test -z "$tagname"; then
  echo '### END LIBTOOL CONFIG' >> "$ofile"
else
  echo "### END LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
fi

2575
case $ltmain in
2576 2577
*.sh)
  echo >> "$ofile"
2578
  if test -z "$tagname"; then
2579
    case $host_os in
2580 2581
    aix3*)
      cat <<\EOF >> "$ofile"
#  
Jeff Law committed
2582 2583 2584 2585

# 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
2586
if test "X${COLLECT_NAMES+set}" != Xset; then
#  
Jeff Law committed
2587 2588 2589 2590
  COLLECT_NAMES=
  export COLLECT_NAMES
fi
EOF
2591 2592
      ;;
    esac
2593
    case $host in
2594
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 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
      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
2651
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708
#  */
#
#  #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);
2709
#      if (dll < 1)
2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769
#  	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
2770 2771 2772 2773
    ;;
  esac


2774 2775 2776 2777 2778 2779 2780 2781 2782
    # 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
2783 2784 2785 2786 2787
  ;;

*)
  # Compile the libtool program.
  echo "FIXME: would compile $ltmain"
Jason Merrill committed
2788 2789 2790
  ;;
esac

2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813
# 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
2814

2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862
# 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
2863 2864 2865 2866 2867 2868 2869

exit 0

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