1
1
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
3
3
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
4
# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
4
# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
6
6
# Written by Gordon Matzigkeit, 1996
8
8
# This file is free software; the Free Software Foundation gives
12
12
m4_define([_LT_COPYING], [dnl
13
13
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
14
# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
14
# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
16
16
# Written by Gordon Matzigkeit, 1996
18
18
# This file is part of GNU Libtool.
146
146
AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
147
147
AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
149
_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
149
151
_LT_DECL([], [host_alias], [0], [The host system])dnl
150
152
_LT_DECL([], [host], [0])dnl
151
153
_LT_DECL([], [host_os], [0])dnl
637
639
m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
638
640
configured by $[0], generated by m4_PACKAGE_STRING.
640
Copyright (C) 2010 Free Software Foundation, Inc.
642
Copyright (C) 2011 Free Software Foundation, Inc.
641
643
This config.lt script is free software; the Free Software Foundation
642
644
gives unlimited permision to copy, distribute and modify it."
828
m4_ifndef([AC_PROG_GO], [
829
############################################################
830
# NOTE: This macro has been submitted for inclusion into #
831
# GNU Autoconf as AC_PROG_GO. When it is available in #
832
# a released version of Autoconf we should remove this #
833
# macro and use it instead. #
834
############################################################
835
m4_defun([AC_PROG_GO],
837
AC_ARG_VAR([GOC], [Go compiler command])dnl
838
AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
839
_AC_ARG_VAR_LDFLAGS()dnl
840
AC_CHECK_TOOL(GOC, gccgo)
841
if test -z "$GOC"; then
842
if test -n "$ac_tool_prefix"; then
843
AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
846
if test -z "$GOC"; then
847
AC_CHECK_PROG(GOC, gccgo, gccgo, false)
825
853
# _LT_LANG_DEFAULT_CONFIG
826
854
# -----------------------
827
855
m4_defun([_LT_LANG_DEFAULT_CONFIG],
852
880
m4_ifdef([LT_PROG_GCJ],
853
881
[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
883
AC_PROVIDE_IFELSE([AC_PROG_GO],
885
[m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
855
887
AC_PROVIDE_IFELSE([LT_PROG_RC],
857
889
[m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
954
986
$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
955
987
-dynamiclib -Wl,-single_module conftest.c 2>conftest.err
957
if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
989
# If there is a non-empty error log, and "single_module"
990
# appears in it, assume the flag caused a linker warning
991
if test -s conftest.err && $GREP single_module conftest.err; then
992
cat conftest.err >&AS_MESSAGE_LOG_FD
993
# Otherwise, if the output was created with a 0 exit code from
994
# the compiler, it worked.
995
elif test -f libconftest.dylib && test $_lt_result -eq 0; then
958
996
lt_cv_apple_cc_single_mod=yes
960
998
cat conftest.err >&AS_MESSAGE_LOG_FD
962
1000
rm -rf libconftest.dylib*
963
1001
rm -f conftest.*
965
1004
AC_CACHE_CHECK([for -exported_symbols_list linker flag],
966
1005
[lt_cv_ld_exported_symbols_list],
967
1006
[lt_cv_ld_exported_symbols_list=no
990
1030
echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
991
1031
$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
993
if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
1033
if test -s conftest.err && $GREP force_load conftest.err; then
1034
cat conftest.err >&AS_MESSAGE_LOG_FD
1035
elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
994
1036
lt_cv_ld_force_load=yes
996
1038
cat conftest.err >&AS_MESSAGE_LOG_FD
1038
# _LT_DARWIN_LINKER_FEATURES
1039
# --------------------------
1080
# _LT_DARWIN_LINKER_FEATURES([TAG])
1081
# ---------------------------------
1040
1082
# Checks for linker and compiler features on darwin
1041
1083
m4_defun([_LT_DARWIN_LINKER_FEATURES],
1047
1089
_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
1048
1090
if test "$lt_cv_ld_force_load" = "yes"; then
1049
1091
_LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
1092
m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
1093
[FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
1051
1095
_LT_TAGVAR(whole_archive_flag_spec, $1)=''
1330
1374
CFLAGS="$SAVE_CFLAGS"
1334
1378
# Find out which ABI we are using.
1335
1379
echo 'int i;' > conftest.$ac_ext
1336
1380
if AC_TRY_EVAL(ac_compile); then
1337
1381
case `/usr/bin/file conftest.o` in
1339
1383
case $lt_cv_prog_gnu_ld in
1340
yes*) LD="${LD-ld} -m elf64_sparc" ;;
1387
LD="${LD-ld} -m elf_x86_64"
1390
LD="${LD-ld} -m elf64_sparc"
1393
# GNU ld 2.21 introduced _sol2 emulations. Use them if available.
1394
if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
1342
1399
if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
1343
1400
LD="${LD-ld} -64"
1414
1471
if test -n "$RANLIB"; then
1415
1472
case $host_os in
1417
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
1474
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
1420
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
1477
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
1423
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
1480
old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
1426
1483
case $host_os in
1600
1657
lt_cv_sys_max_cmd_len=196608
1661
# The test takes a long time on OS/2.
1662
lt_cv_sys_max_cmd_len=8192
1604
1666
# Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
1605
1667
# due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
1639
1701
# If test is not a shell built-in, we'll probably end up computing a
1640
1702
# maximum length that is only half of the actual maximum length, but
1641
1703
# we can't tell.
1642
while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
1704
while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
1643
1705
= "X$teststring$teststring"; } >/dev/null 2>&1 &&
1644
1706
test $i != 17 # 1/2 MB should be enough
2580
2638
dynamic_linker=no
2583
# This must be Linux ELF.
2641
# This must be glibc/ELF.
2584
2642
linux* | k*bsd*-gnu | kopensolaris*-gnu)
2643
version_type=linux # correct to gnu/linux during the next big refactor
2586
2644
need_lib_prefix=no
2587
2645
need_version=no
2588
2646
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2718
version_type=linux # correct to gnu/linux during the next big refactor
2661
2719
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2662
2720
shlibpath_var=LD_LIBRARY_PATH
2663
2721
shlibpath_overrides_runpath=yes
2753
2811
sysv4 | sysv4.3*)
2812
version_type=linux # correct to gnu/linux during the next big refactor
2755
2813
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2756
2814
soname_spec='${libname}${release}${shared_ext}$major'
2757
2815
shlibpath_var=LD_LIBRARY_PATH
2777
2835
if test -d /usr/nec ;then
2836
version_type=linux # correct to gnu/linux during the next big refactor
2779
2837
library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
2780
2838
soname_spec='$libname${shared_ext}.$major'
2781
2839
shlibpath_var=LD_LIBRARY_PATH
2877
version_type=linux # correct to gnu/linux during the next big refactor
2820
2878
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2821
2879
soname_spec='${libname}${release}${shared_ext}$major'
2822
2880
shlibpath_var=LD_LIBRARY_PATH
3238
3296
lt_cv_deplibs_check_method=pass_all
3241
# This must be Linux ELF.
3299
# This must be glibc/ELF.
3242
3300
linux* | k*bsd*-gnu | kopensolaris*-gnu)
3243
3301
lt_cv_deplibs_check_method=pass_all
3658
3716
# which start with @ or ?.
3659
3717
lt_cv_sys_global_symbol_pipe="$AWK ['"\
3660
3718
" {last_section=section; section=\$ 3};"\
3719
" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
3661
3720
" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
3662
3721
" \$ 0!~/External *\|/{next};"\
3663
3722
" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
4242
4301
case $cc_basename in
4243
4302
nvcc*) # Cuda Compiler Driver 2.2
4244
4303
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
4245
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
4304
if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
4305
_LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
4336
4397
case `$CC -V 2>&1 | sed 5q` in
4337
*Sun\ F* | *Sun*Fortran*)
4398
*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
4338
4399
# Sun Fortran 8.3 passes all unrecognized flags to the linker
4339
4400
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4340
4401
_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4341
4402
_LT_TAGVAR(lt_prog_compiler_wl, $1)=''
4404
*Sun\ F* | *Sun*Fortran*)
4405
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4406
_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4407
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4345
4411
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4346
4412
_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4347
4413
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4415
*Intel*\ [[CF]]*Compiler*)
4416
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4417
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4418
_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4421
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4422
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
4423
_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4506
4582
cygwin* | mingw* | cegcc*)
4507
4583
case $cc_basename in
4585
_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
4510
4588
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4511
4589
_LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
4533
4611
_LT_TAGVAR(hardcode_direct, $1)=no
4534
4612
_LT_TAGVAR(hardcode_direct_absolute, $1)=no
4535
4613
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4536
_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
4537
4614
_LT_TAGVAR(hardcode_libdir_separator, $1)=
4538
4615
_LT_TAGVAR(hardcode_minus_L, $1)=no
4539
4616
_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
4787
4864
xlf* | bgf* | bgxlf* | mpixlf*)
4788
4865
# IBM XL Fortran 10.1 on PPC cannot create shared libs itself
4789
4866
_LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
4790
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4791
_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
4867
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4792
4868
_LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
4793
4869
if test "x$supports_anon_versioning" = xyes; then
4794
4870
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5084
5160
# The linker will not automatically build a static lib if we build a DLL.
5085
5161
# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5086
5162
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5163
_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
5087
5164
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
5088
5165
# Don't use ranlib
5089
5166
_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
5130
5207
_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
5134
_LT_TAGVAR(ld_shlibs, $1)=no
5137
5210
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
5138
5211
# support. Future versions do this automatically, but an explicit c++rt0.o
5139
5212
# does not break anything, and helps significantly (at the cost of a little
5148
5221
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
5150
5223
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
5151
5224
_LT_TAGVAR(hardcode_direct, $1)=yes
5152
5225
_LT_TAGVAR(hardcode_minus_L, $1)=yes
5186
5259
if test "$with_gnu_ld" = no; then
5187
5260
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
5188
_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
5189
5261
_LT_TAGVAR(hardcode_libdir_separator, $1)=:
5190
5262
_LT_TAGVAR(hardcode_direct, $1)=yes
5191
5263
_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
5627
5699
_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
5628
5700
[Flag to hardcode $libdir into a binary during linking.
5629
5701
This must work even if $libdir does not exist])
5630
_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
5631
[[If ld is used when linking, flag to hardcode $libdir into a binary
5632
during linking. This must work even if $libdir does not exist]])
5633
5702
_LT_TAGDECL([], [hardcode_libdir_separator], [1],
5634
5703
[Whether we need a single "-rpath" flag with a separated argument])
5635
5704
_LT_TAGDECL([], [hardcode_direct], [0],
5787
5856
_LT_TAGVAR(hardcode_direct, $1)=no
5788
5857
_LT_TAGVAR(hardcode_direct_absolute, $1)=no
5789
5858
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
5790
_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
5791
5859
_LT_TAGVAR(hardcode_libdir_separator, $1)=
5792
5860
_LT_TAGVAR(hardcode_minus_L, $1)=no
5793
5861
_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
6989
], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
6923
6996
_lt_libdeps_save_CFLAGS=$CFLAGS
6924
6997
case "$CC $CFLAGS " in #(
6925
6998
*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
6926
6999
*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
7000
*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
6929
7003
dnl Parse the compiler output and extract the necessary
7120
7194
_LT_TAGVAR(hardcode_direct, $1)=no
7121
7195
_LT_TAGVAR(hardcode_direct_absolute, $1)=no
7122
7196
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
7123
_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
7124
7197
_LT_TAGVAR(hardcode_libdir_separator, $1)=
7125
7198
_LT_TAGVAR(hardcode_minus_L, $1)=no
7126
7199
_LT_TAGVAR(hardcode_automatic, $1)=no
7253
7326
_LT_TAGVAR(hardcode_direct, $1)=no
7254
7327
_LT_TAGVAR(hardcode_direct_absolute, $1)=no
7255
7328
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
7256
_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
7257
7329
_LT_TAGVAR(hardcode_libdir_separator, $1)=
7258
7330
_LT_TAGVAR(hardcode_minus_L, $1)=no
7259
7331
_LT_TAGVAR(hardcode_automatic, $1)=no
7440
7512
])# _LT_LANG_GCJ_CONFIG
7515
# _LT_LANG_GO_CONFIG([TAG])
7516
# --------------------------
7517
# Ensure that the configuration variables for the GNU Go compiler
7518
# are suitably defined. These variables are subsequently used by _LT_CONFIG
7519
# to write the compiler configuration to `libtool'.
7520
m4_defun([_LT_LANG_GO_CONFIG],
7521
[AC_REQUIRE([LT_PROG_GO])dnl
7524
# Source file extension for Go test sources.
7527
# Object file extension for compiled Go test sources.
7529
_LT_TAGVAR(objext, $1)=$objext
7531
# Code to be used in simple compile tests
7532
lt_simple_compile_test_code="package main; func main() { }"
7534
# Code to be used in simple link tests
7535
lt_simple_link_test_code='package main; func main() { }'
7537
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
7540
# save warnings/boilerplate of simple test code
7541
_LT_COMPILER_BOILERPLATE
7542
_LT_LINKER_BOILERPLATE
7544
# Allow CC to be a program name with arguments.
7546
lt_save_CFLAGS=$CFLAGS
7552
_LT_TAGVAR(compiler, $1)=$CC
7553
_LT_TAGVAR(LD, $1)="$LD"
7554
_LT_CC_BASENAME([$compiler])
7556
# Go did not exist at the time GCC didn't implicitly link libc in.
7557
_LT_TAGVAR(archive_cmds_need_lc, $1)=no
7559
_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7560
_LT_TAGVAR(reload_flag, $1)=$reload_flag
7561
_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7564
## There is no encapsulation within the following macros, do not change
7565
## the running order or otherwise move them around unless you know exactly
7566
## what you are doing...
7567
if test -n "$compiler"; then
7568
_LT_COMPILER_NO_RTTI($1)
7569
_LT_COMPILER_PIC($1)
7570
_LT_COMPILER_C_O($1)
7571
_LT_COMPILER_FILE_LOCKS($1)
7572
_LT_LINKER_SHLIBS($1)
7573
_LT_LINKER_HARDCODE_LIBPATH($1)
7582
CFLAGS=$lt_save_CFLAGS
7583
])# _LT_LANG_GO_CONFIG
7443
7586
# _LT_LANG_RC_CONFIG([TAG])
7444
7587
# -------------------------
7445
7588
# Ensure that the configuration variables for the Windows resource compiler