1136644Sache#! /bin/sh 2136644Sache# Output a system dependent set of variables, describing how to set the 3136644Sache# run time search path of shared libraries in an executable. 4136644Sache# 5136644Sache# Copyright 1996-2003 Free Software Foundation, Inc. 6136644Sache# Taken from GNU libtool, 2001 7136644Sache# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 8136644Sache# 9136644Sache# This program is free software; you can redistribute it and/or modify 10136644Sache# it under the terms of the GNU General Public License as published by 11136644Sache# the Free Software Foundation; either version 2 of the License, or 12136644Sache# (at your option) any later version. 13136644Sache# 14136644Sache# This program is distributed in the hope that it will be useful, but 15136644Sache# WITHOUT ANY WARRANTY; without even the implied warranty of 16136644Sache# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17136644Sache# General Public License for more details. 18136644Sache# 19136644Sache# You should have received a copy of the GNU General Public License 20136644Sache# along with this program; if not, write to the Free Software 21136644Sache# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 22136644Sache# 23136644Sache# As a special exception to the GNU General Public License, if you 24136644Sache# distribute this file as part of a program that contains a 25136644Sache# configuration script generated by Autoconf, you may include it under 26136644Sache# the same distribution terms that you use for the rest of that program. 27136644Sache# 28136644Sache# The first argument passed to this file is the canonical host specification, 29136644Sache# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 30136644Sache# or 31136644Sache# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 32136644Sache# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld 33136644Sache# should be set by the caller. 34136644Sache# 35136644Sache# The set of defined variables is at the end of this script. 36136644Sache 37136644Sache# Known limitations: 38136644Sache# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer 39136644Sache# than 256 bytes, otherwise the compiler driver will dump core. The only 40136644Sache# known workaround is to choose shorter directory names for the build 41136644Sache# directory and/or the installation directory. 42136644Sache 43136644Sache# All known linkers require a `.a' archive for static linking (except M$VC, 44136644Sache# which needs '.lib'). 45136644Sachelibext=a 46136644Sacheshrext=.so 47136644Sache 48136644Sachehost="$1" 49136644Sachehost_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 50136644Sachehost_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` 51136644Sachehost_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 52136644Sache 53136644Sache# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. 54136644Sache 55136644Sachewl= 56136644Sacheif test "$GCC" = yes; then 57136644Sache wl='-Wl,' 58136644Sacheelse 59136644Sache case "$host_os" in 60136644Sache aix*) 61136644Sache wl='-Wl,' 62136644Sache ;; 63136644Sache mingw* | pw32* | os2*) 64136644Sache ;; 65136644Sache hpux9* | hpux10* | hpux11*) 66136644Sache wl='-Wl,' 67136644Sache ;; 68136644Sache irix5* | irix6* | nonstopux*) 69136644Sache wl='-Wl,' 70136644Sache ;; 71136644Sache newsos6) 72136644Sache ;; 73136644Sache linux*) 74136644Sache case $CC in 75136644Sache icc|ecc) 76136644Sache wl='-Wl,' 77136644Sache ;; 78136644Sache ccc) 79136644Sache wl='-Wl,' 80136644Sache ;; 81136644Sache esac 82136644Sache ;; 83136644Sache osf3* | osf4* | osf5*) 84136644Sache wl='-Wl,' 85136644Sache ;; 86136644Sache sco3.2v5*) 87136644Sache ;; 88136644Sache solaris*) 89136644Sache wl='-Wl,' 90136644Sache ;; 91136644Sache sunos4*) 92136644Sache wl='-Qoption ld ' 93136644Sache ;; 94136644Sache sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) 95136644Sache wl='-Wl,' 96136644Sache ;; 97136644Sache sysv4*MP*) 98136644Sache ;; 99136644Sache uts4*) 100136644Sache ;; 101136644Sache esac 102136644Sachefi 103136644Sache 104136644Sache# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. 105136644Sache 106136644Sachehardcode_libdir_flag_spec= 107136644Sachehardcode_libdir_separator= 108136644Sachehardcode_direct=no 109136644Sachehardcode_minus_L=no 110136644Sache 111136644Sachecase "$host_os" in 112136644Sache cygwin* | mingw* | pw32*) 113136644Sache # FIXME: the MSVC++ port hasn't been tested in a loooong time 114136644Sache # When not using gcc, we currently assume that we are using 115136644Sache # Microsoft Visual C++. 116136644Sache if test "$GCC" != yes; then 117136644Sache with_gnu_ld=no 118136644Sache fi 119136644Sache ;; 120136644Sache openbsd*) 121136644Sache with_gnu_ld=no 122136644Sache ;; 123136644Sacheesac 124136644Sache 125136644Sacheld_shlibs=yes 126136644Sacheif test "$with_gnu_ld" = yes; then 127136644Sache case "$host_os" in 128136644Sache aix3* | aix4* | aix5*) 129136644Sache # On AIX/PPC, the GNU linker is very broken 130136644Sache if test "$host_cpu" != ia64; then 131136644Sache ld_shlibs=no 132136644Sache fi 133136644Sache ;; 134136644Sache amigaos*) 135136644Sache hardcode_libdir_flag_spec='-L$libdir' 136136644Sache hardcode_minus_L=yes 137136644Sache # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports 138136644Sache # that the semantics of dynamic libraries on AmigaOS, at least up 139136644Sache # to version 4, is to share data among multiple programs linked 140136644Sache # with the same dynamic library. Since this doesn't match the 141136644Sache # behavior of shared libraries on other platforms, we can use 142136644Sache # them. 143136644Sache ld_shlibs=no 144136644Sache ;; 145136644Sache beos*) 146136644Sache if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then 147136644Sache : 148136644Sache else 149136644Sache ld_shlibs=no 150136644Sache fi 151136644Sache ;; 152136644Sache cygwin* | mingw* | pw32*) 153136644Sache # hardcode_libdir_flag_spec is actually meaningless, as there is 154136644Sache # no search path for DLLs. 155136644Sache hardcode_libdir_flag_spec='-L$libdir' 156136644Sache if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then 157136644Sache : 158136644Sache else 159136644Sache ld_shlibs=no 160136644Sache fi 161136644Sache ;; 162136644Sache netbsd*) 163136644Sache ;; 164136644Sache solaris* | sysv5*) 165136644Sache if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then 166136644Sache ld_shlibs=no 167136644Sache elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then 168136644Sache : 169136644Sache else 170136644Sache ld_shlibs=no 171136644Sache fi 172136644Sache ;; 173136644Sache sunos4*) 174136644Sache hardcode_direct=yes 175136644Sache ;; 176136644Sache *) 177136644Sache if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then 178136644Sache : 179136644Sache else 180136644Sache ld_shlibs=no 181136644Sache fi 182136644Sache ;; 183136644Sache esac 184136644Sache if test "$ld_shlibs" = yes; then 185136644Sache # Unlike libtool, we use -rpath here, not --rpath, since the documented 186136644Sache # option of GNU ld is called -rpath, not --rpath. 187136644Sache hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 188136644Sache fi 189136644Sacheelse 190136644Sache case "$host_os" in 191136644Sache aix3*) 192136644Sache # Note: this linker hardcodes the directories in LIBPATH if there 193136644Sache # are no directories specified by -L. 194136644Sache hardcode_minus_L=yes 195136644Sache if test "$GCC" = yes; then 196136644Sache # Neither direct hardcoding nor static linking is supported with a 197136644Sache # broken collect2. 198136644Sache hardcode_direct=unsupported 199136644Sache fi 200136644Sache ;; 201136644Sache aix4* | aix5*) 202136644Sache if test "$host_cpu" = ia64; then 203136644Sache # On IA64, the linker does run time linking by default, so we don't 204136644Sache # have to do anything special. 205136644Sache aix_use_runtimelinking=no 206136644Sache else 207136644Sache aix_use_runtimelinking=no 208136644Sache # Test if we are trying to use run time linking or normal 209136644Sache # AIX style linking. If -brtl is somewhere in LDFLAGS, we 210136644Sache # need to do runtime linking. 211136644Sache case $host_os in aix4.[23]|aix4.[23].*|aix5*) 212136644Sache for ld_flag in $LDFLAGS; do 213136644Sache if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then 214136644Sache aix_use_runtimelinking=yes 215136644Sache break 216136644Sache fi 217136644Sache done 218136644Sache esac 219136644Sache fi 220136644Sache hardcode_direct=yes 221136644Sache hardcode_libdir_separator=':' 222136644Sache if test "$GCC" = yes; then 223136644Sache case $host_os in aix4.[012]|aix4.[012].*) 224136644Sache collect2name=`${CC} -print-prog-name=collect2` 225136644Sache if test -f "$collect2name" && \ 226136644Sache strings "$collect2name" | grep resolve_lib_name >/dev/null 227136644Sache then 228136644Sache # We have reworked collect2 229136644Sache hardcode_direct=yes 230136644Sache else 231136644Sache # We have old collect2 232136644Sache hardcode_direct=unsupported 233136644Sache hardcode_minus_L=yes 234136644Sache hardcode_libdir_flag_spec='-L$libdir' 235136644Sache hardcode_libdir_separator= 236136644Sache fi 237136644Sache esac 238136644Sache fi 239136644Sache # Begin _LT_AC_SYS_LIBPATH_AIX. 240136644Sache echo 'int main () { return 0; }' > conftest.c 241136644Sache ${CC} ${LDFLAGS} conftest.c -o conftest 242136644Sache aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } 243136644Sache}'` 244136644Sache if test -z "$aix_libpath"; then 245136644Sache aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } 246136644Sache}'` 247136644Sache fi 248136644Sache if test -z "$aix_libpath"; then 249136644Sache aix_libpath="/usr/lib:/lib" 250136644Sache fi 251136644Sache rm -f conftest.c conftest 252136644Sache # End _LT_AC_SYS_LIBPATH_AIX. 253136644Sache if test "$aix_use_runtimelinking" = yes; then 254136644Sache hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" 255136644Sache else 256136644Sache if test "$host_cpu" = ia64; then 257136644Sache hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' 258136644Sache else 259136644Sache hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" 260136644Sache fi 261136644Sache fi 262136644Sache ;; 263136644Sache amigaos*) 264136644Sache hardcode_libdir_flag_spec='-L$libdir' 265136644Sache hardcode_minus_L=yes 266136644Sache # see comment about different semantics on the GNU ld section 267136644Sache ld_shlibs=no 268136644Sache ;; 269136644Sache bsdi4*) 270136644Sache ;; 271136644Sache cygwin* | mingw* | pw32*) 272136644Sache # When not using gcc, we currently assume that we are using 273136644Sache # Microsoft Visual C++. 274136644Sache # hardcode_libdir_flag_spec is actually meaningless, as there is 275136644Sache # no search path for DLLs. 276136644Sache hardcode_libdir_flag_spec=' ' 277136644Sache libext=lib 278136644Sache ;; 279136644Sache darwin* | rhapsody*) 280136644Sache if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 281136644Sache hardcode_direct=no 282136644Sache fi 283136644Sache ;; 284136644Sache dgux*) 285136644Sache hardcode_libdir_flag_spec='-L$libdir' 286136644Sache ;; 287136644Sache freebsd1*) 288136644Sache ld_shlibs=no 289136644Sache ;; 290136644Sache freebsd2.2*) 291136644Sache hardcode_libdir_flag_spec='-R$libdir' 292136644Sache hardcode_direct=yes 293136644Sache ;; 294136644Sache freebsd2*) 295136644Sache hardcode_direct=yes 296136644Sache hardcode_minus_L=yes 297136644Sache ;; 298136644Sache freebsd*) 299136644Sache hardcode_libdir_flag_spec='-R$libdir' 300136644Sache hardcode_direct=yes 301136644Sache ;; 302136644Sache hpux9*) 303136644Sache hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' 304136644Sache hardcode_libdir_separator=: 305136644Sache hardcode_direct=yes 306136644Sache # hardcode_minus_L: Not really in the search PATH, 307136644Sache # but as the default location of the library. 308136644Sache hardcode_minus_L=yes 309136644Sache ;; 310136644Sache hpux10* | hpux11*) 311136644Sache if test "$with_gnu_ld" = no; then 312136644Sache case "$host_cpu" in 313136644Sache hppa*64*) 314136644Sache hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' 315136644Sache hardcode_libdir_separator=: 316136644Sache hardcode_direct=no 317136644Sache ;; 318136644Sache ia64*) 319136644Sache hardcode_libdir_flag_spec='-L$libdir' 320136644Sache hardcode_direct=no 321136644Sache # hardcode_minus_L: Not really in the search PATH, 322136644Sache # but as the default location of the library. 323136644Sache hardcode_minus_L=yes 324136644Sache ;; 325136644Sache *) 326136644Sache hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' 327136644Sache hardcode_libdir_separator=: 328136644Sache hardcode_direct=yes 329136644Sache # hardcode_minus_L: Not really in the search PATH, 330136644Sache # but as the default location of the library. 331136644Sache hardcode_minus_L=yes 332136644Sache ;; 333136644Sache esac 334136644Sache fi 335136644Sache ;; 336136644Sache irix5* | irix6* | nonstopux*) 337136644Sache hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 338136644Sache hardcode_libdir_separator=: 339136644Sache ;; 340136644Sache netbsd*) 341136644Sache hardcode_libdir_flag_spec='-R$libdir' 342136644Sache hardcode_direct=yes 343136644Sache ;; 344136644Sache newsos6) 345136644Sache hardcode_direct=yes 346136644Sache hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 347136644Sache hardcode_libdir_separator=: 348136644Sache ;; 349136644Sache openbsd*) 350136644Sache hardcode_direct=yes 351136644Sache if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 352136644Sache hardcode_libdir_flag_spec='${wl}-rpath,$libdir' 353136644Sache else 354136644Sache case "$host_os" in 355136644Sache openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) 356136644Sache hardcode_libdir_flag_spec='-R$libdir' 357136644Sache ;; 358136644Sache *) 359136644Sache hardcode_libdir_flag_spec='${wl}-rpath,$libdir' 360136644Sache ;; 361136644Sache esac 362136644Sache fi 363136644Sache ;; 364136644Sache os2*) 365136644Sache hardcode_libdir_flag_spec='-L$libdir' 366136644Sache hardcode_minus_L=yes 367136644Sache ;; 368136644Sache osf3*) 369136644Sache hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 370136644Sache hardcode_libdir_separator=: 371136644Sache ;; 372136644Sache osf4* | osf5*) 373136644Sache if test "$GCC" = yes; then 374136644Sache hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 375136644Sache else 376136644Sache # Both cc and cxx compiler support -rpath directly 377136644Sache hardcode_libdir_flag_spec='-rpath $libdir' 378136644Sache fi 379136644Sache hardcode_libdir_separator=: 380136644Sache ;; 381136644Sache sco3.2v5*) 382136644Sache ;; 383136644Sache solaris*) 384136644Sache hardcode_libdir_flag_spec='-R$libdir' 385136644Sache ;; 386136644Sache sunos4*) 387136644Sache hardcode_libdir_flag_spec='-L$libdir' 388136644Sache hardcode_direct=yes 389136644Sache hardcode_minus_L=yes 390136644Sache ;; 391136644Sache sysv4) 392136644Sache case $host_vendor in 393136644Sache sni) 394136644Sache hardcode_direct=yes # is this really true??? 395136644Sache ;; 396136644Sache siemens) 397136644Sache hardcode_direct=no 398136644Sache ;; 399136644Sache motorola) 400136644Sache hardcode_direct=no #Motorola manual says yes, but my tests say they lie 401136644Sache ;; 402136644Sache esac 403136644Sache ;; 404136644Sache sysv4.3*) 405136644Sache ;; 406136644Sache sysv4*MP*) 407136644Sache if test -d /usr/nec; then 408136644Sache ld_shlibs=yes 409136644Sache fi 410136644Sache ;; 411136644Sache sysv4.2uw2*) 412136644Sache hardcode_direct=yes 413136644Sache hardcode_minus_L=no 414136644Sache ;; 415136644Sache sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) 416136644Sache ;; 417136644Sache sysv5*) 418136644Sache hardcode_libdir_flag_spec= 419136644Sache ;; 420136644Sache uts4*) 421136644Sache hardcode_libdir_flag_spec='-L$libdir' 422136644Sache ;; 423136644Sache *) 424136644Sache ld_shlibs=no 425136644Sache ;; 426136644Sache esac 427136644Sachefi 428136644Sache 429136644Sache# Check dynamic linker characteristics 430136644Sache# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. 431136644Sachelibname_spec='lib$name' 432136644Sachecase "$host_os" in 433136644Sache aix3*) 434136644Sache ;; 435136644Sache aix4* | aix5*) 436136644Sache ;; 437136644Sache amigaos*) 438136644Sache ;; 439136644Sache beos*) 440136644Sache ;; 441136644Sache bsdi4*) 442136644Sache ;; 443136644Sache cygwin* | mingw* | pw32*) 444136644Sache shrext=.dll 445136644Sache ;; 446136644Sache darwin* | rhapsody*) 447136644Sache shrext=.dylib 448136644Sache ;; 449136644Sache dgux*) 450136644Sache ;; 451136644Sache freebsd1*) 452136644Sache ;; 453136644Sache freebsd*) 454136644Sache ;; 455136644Sache gnu*) 456136644Sache ;; 457136644Sache hpux9* | hpux10* | hpux11*) 458136644Sache case "$host_cpu" in 459136644Sache ia64*) 460136644Sache shrext=.so 461136644Sache ;; 462136644Sache hppa*64*) 463136644Sache shrext=.sl 464136644Sache ;; 465136644Sache *) 466136644Sache shrext=.sl 467136644Sache ;; 468136644Sache esac 469136644Sache ;; 470136644Sache irix5* | irix6* | nonstopux*) 471136644Sache case "$host_os" in 472136644Sache irix5* | nonstopux*) 473136644Sache libsuff= shlibsuff= 474136644Sache ;; 475136644Sache *) 476136644Sache case $LD in 477136644Sache *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; 478136644Sache *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; 479136644Sache *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; 480136644Sache *) libsuff= shlibsuff= ;; 481136644Sache esac 482136644Sache ;; 483136644Sache esac 484136644Sache ;; 485136644Sache linux*oldld* | linux*aout* | linux*coff*) 486136644Sache ;; 487136644Sache linux*) 488136644Sache ;; 489136644Sache netbsd*) 490136644Sache ;; 491136644Sache newsos6) 492136644Sache ;; 493136644Sache nto-qnx) 494136644Sache ;; 495136644Sache openbsd*) 496136644Sache ;; 497136644Sache os2*) 498136644Sache libname_spec='$name' 499136644Sache shrext=.dll 500136644Sache ;; 501136644Sache osf3* | osf4* | osf5*) 502136644Sache ;; 503136644Sache sco3.2v5*) 504136644Sache ;; 505136644Sache solaris*) 506136644Sache ;; 507136644Sache sunos4*) 508136644Sache ;; 509136644Sache sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) 510136644Sache ;; 511136644Sache sysv4*MP*) 512136644Sache ;; 513136644Sache uts4*) 514136644Sache ;; 515136644Sacheesac 516136644Sache 517136644Sachesed_quote_subst='s/\(["`$\\]\)/\\\1/g' 518136644Sacheescaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` 519136644Sacheshlibext=`echo "$shrext" | sed -e 's,^\.,,'` 520136644Sacheescaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` 521136644Sache 522136644Sachesed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF 523136644Sache 524136644Sache# How to pass a linker flag through the compiler. 525136644Sachewl="$escaped_wl" 526136644Sache 527136644Sache# Static library suffix (normally "a"). 528136644Sachelibext="$libext" 529136644Sache 530136644Sache# Shared library suffix (normally "so"). 531136644Sacheshlibext="$shlibext" 532136644Sache 533136644Sache# Flag to hardcode \$libdir into a binary during linking. 534136644Sache# This must work even if \$libdir does not exist. 535136644Sachehardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" 536136644Sache 537136644Sache# Whether we need a single -rpath flag with a separated argument. 538136644Sachehardcode_libdir_separator="$hardcode_libdir_separator" 539136644Sache 540136644Sache# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the 541136644Sache# resulting binary. 542136644Sachehardcode_direct="$hardcode_direct" 543136644Sache 544136644Sache# Set to yes if using the -LDIR flag during linking hardcodes DIR into the 545136644Sache# resulting binary. 546136644Sachehardcode_minus_L="$hardcode_minus_L" 547136644Sache 548136644SacheEOF 549