bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

config.rpath origination?


From: Karl Berry
Subject: config.rpath origination?
Date: Fri, 17 Jan 2003 08:44:17 -0500

At the beginning of the config.rpath that is checked into the savannah
gnulib project (included below), it says "from gnu libtool".  But I
don't actually see any file named config.rpath in the libtool 1.4.2
distribution (although the code is actually present in several different
places within libtool).

So my question is, is there some way we can get the "ultimate source"
for config.rpath out of libtool?  Or should we consider the one in
gnulib as the ultimate source?  Or ... ?  It seems unlikely to me that
this code hasn't needed to be changed in the last year or two.

Just trying to figure out how to keep things in sync.  Not a huge issue.

Thanks,
karl

Here is the config.rpath that is currently in gnulib.

#! /bin/sh
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
#   Copyright 1996-2002 Free Software Foundation, Inc.
#   Taken from GNU libtool, 2001
#   Originally by Gordon Matzigkeit <address@hidden>, 1996
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful, but
#   WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#   General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#   As a special exception to the GNU General Public License, if you
#   distribute this file as part of a program that contains a
#   configuration script generated by Autoconf, you may include it under
#   the same distribution terms that you use for the rest of that program.
#
# The first argument passed to this file is the canonical host specification,
#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
# should be set by the caller.
#
# The set of defined variables is at the end of this script.

# All known linkers require a `.a' archive for static linking (except M$VC,
# which needs '.lib').
libext=a
shlibext=

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

wl=
if test "$GCC" = yes; then
  wl='-Wl,'
else
  case "$host_os" in
    aix3* | aix4* | aix5*)
      wl='-Wl,'
      ;;
    hpux9* | hpux10* | hpux11*)
      wl='-Wl,'
      ;;
    irix5* | irix6*)
      wl='-Wl,'
      ;;
    linux*)
      echo '__INTEL_COMPILER' > conftest.$ac_ext
      if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null
      then
        :
      else
        # Intel icc
        wl='-Qoption,ld,'
      fi
      ;;
    osf3* | osf4* | osf5*)
      wl='-Wl,'
      ;;
    solaris*)
      wl='-Wl,'
      ;;
    sunos4*)
      wl='-Qoption ld '
      ;;
    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
      if test "x$host_vendor" = xsni; then
        wl='-LD'
      else
        wl='-Wl,'
      fi
      ;;
  esac
fi

hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no

case "$host_os" in
  cygwin* | mingw* | pw32*)
    # FIXME: the MSVC++ port hasn't been tested in a loooong time
    # When not using gcc, we currently assume that we are using
    # Microsoft Visual C++.
    if test "$GCC" != yes; then
      with_gnu_ld=no
    fi
    ;;
  openbsd*)
    with_gnu_ld=no
    ;;
esac

ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
  case "$host_os" in
    aix3* | aix4* | aix5*)
      # On AIX, the GNU linker is very broken
      ld_shlibs=no
      ;;
    amigaos*)
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_minus_L=yes
      # Samuel A. Falvo II <address@hidden> reports
      # that the semantics of dynamic libraries on AmigaOS, at least up
      # to version 4, is to share data among multiple programs linked
      # with the same dynamic library.  Since this doesn't match the
      # behavior of shared libraries on other platforms, we can use
      # them.
      ld_shlibs=no
      ;;
    beos*)
      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
        :
      else
        ld_shlibs=no
      fi
      ;;
    cygwin* | mingw* | pw32*)
      # hardcode_libdir_flag_spec is actually meaningless, as there is
      # no search path for DLLs.
      hardcode_libdir_flag_spec='-L$libdir'
      ;;
    solaris* | sysv5*)
      if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
        ld_shlibs=no
      elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; 
then
        :
      else
        ld_shlibs=no
      fi
      ;;
    sunos4*)
      hardcode_direct=yes
      ;;
    *)
      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
        :
      else
        ld_shlibs=no
      fi
      ;;
  esac
  if test "$ld_shlibs" = yes; then
    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
  fi
else
  case "$host_os" in
    aix3*)
      # Note: this linker hardcodes the directories in LIBPATH if there
      # are no directories specified by -L.
      hardcode_minus_L=yes
      if test "$GCC" = yes; then
        # Neither direct hardcoding nor static linking is supported with a
        # broken collect2.
        hardcode_direct=unsupported
      fi
      ;;
    aix4* | aix5*)
      if test "$host_cpu" = ia64; then
        # On IA64, the linker does run time linking by default, so we don't
        # have to do anything special.
        aix_use_runtimelinking=no
      else
        aix_use_runtimelinking=no
        # Test if we are trying to use run time linking or normal
        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
        # need to do runtime linking.
        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
          for ld_flag in $LDFLAGS; do
            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
              aix_use_runtimelinking=yes
              break
            fi
          done
        esac
      fi
      hardcode_direct=yes
      hardcode_libdir_separator=':'
      if test "$GCC" = yes; then
        case $host_os in aix4.[012]|aix4.[012].*)
          collect2name=`${CC} -print-prog-name=collect2`
          if test -f "$collect2name" && \
            strings "$collect2name" | grep resolve_lib_name >/dev/null
          then
            # We have reworked collect2
            hardcode_direct=yes
          else
            # We have old collect2
            hardcode_direct=unsupported
            hardcode_minus_L=yes
            hardcode_libdir_flag_spec='-L$libdir'
            hardcode_libdir_separator=
          fi
        esac
      fi
      if test "$aix_use_runtimelinking" = yes; then
        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
      else
        if test "$host_cpu" = ia64; then
          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
        else
          hardcode_libdir_flag_spec='${wl}-bnolibpath 
${wl}-blibpath:$libdir:/usr/lib:/lib'
        fi
      fi
      ;;
    amigaos*)
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_minus_L=yes
      # see comment about different semantics on the GNU ld section
      ld_shlibs=no
      ;;
    cygwin* | mingw* | pw32*)
      # When not using gcc, we currently assume that we are using
      # Microsoft Visual C++.
      # hardcode_libdir_flag_spec is actually meaningless, as there is
      # no search path for DLLs.
      hardcode_libdir_flag_spec=' '
      libext=lib
      ;;
    darwin* | rhapsody*)
      hardcode_direct=yes
      ;;
    freebsd1*)
      ld_shlibs=no
      ;;
    freebsd2.2*)
      hardcode_libdir_flag_spec='-R$libdir'
      hardcode_direct=yes
      ;;
    freebsd2*)
      hardcode_direct=yes
      hardcode_minus_L=yes
      ;;
    freebsd*)
      hardcode_libdir_flag_spec='-R$libdir'
      hardcode_direct=yes
      ;;
    hpux9* | hpux10* | hpux11*)
      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
      hardcode_libdir_separator=:
      hardcode_direct=yes
      hardcode_minus_L=yes # Not in the search PATH, but as the default
                           # location of the library.
      ;;
    irix5* | irix6*)
      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
      hardcode_libdir_separator=:
      ;;
    netbsd*)
      hardcode_libdir_flag_spec='-R$libdir'
      hardcode_direct=yes
      ;;
    newsos6)
      hardcode_direct=yes
      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
      hardcode_libdir_separator=:
      ;;
    openbsd*)
      hardcode_direct=yes
      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test 
"$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
      else
        case "$host_os" in
          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
            hardcode_libdir_flag_spec='-R$libdir'
            ;;
          *)
            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
            ;;
        esac
      fi
      ;;
    os2*)
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_minus_L=yes
      ;;
    osf3*)
      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
      hardcode_libdir_separator=:
      ;;
    osf4* | osf5*)
      if test "$GCC" = yes; then
        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
      else
        # Both cc and cxx compiler support -rpath directly
        hardcode_libdir_flag_spec='-rpath $libdir'
      fi
      hardcode_libdir_separator=:
      ;;
    sco3.2v5*)
      ;;
    solaris*)
      hardcode_libdir_flag_spec='-R$libdir'
      ;;
    sunos4*)
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_direct=yes
      hardcode_minus_L=yes
      ;;
    sysv4)
      if test "x$host_vendor" = xsno; then
        hardcode_direct=yes # is this really true???
      else
        hardcode_direct=no # Motorola manual says yes, but my tests say they lie
      fi
      ;;
    sysv4.3*)
      ;;
    sysv5*)
      hardcode_libdir_flag_spec=
      ;;
    uts4*)
      hardcode_libdir_flag_spec='-L$libdir'
      ;;
    dgux*)
      hardcode_libdir_flag_spec='-L$libdir'
      ;;
    sysv4*MP*)
      if test -d /usr/nec; then
        ld_shlibs=yes
      fi
      ;;
    sysv4.2uw2*)
      hardcode_direct=yes
      hardcode_minus_L=no
      ;;
    sysv5uw7* | unixware7*)
      ;;
    *)
      ld_shlibs=no
      ;;
  esac
fi

# Check dynamic linker characteristics
libname_spec='lib$name'
sys_lib_dlsearch_path_spec="/lib /usr/lib"
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
case "$host_os" in
  aix3*)
    shlibext=so
    ;;
  aix4* | aix5*)
    shlibext=so
    ;;
  amigaos*)
    shlibext=ixlibrary
    ;;
  beos*)
    shlibext=so
    ;;
  bsdi4*)
    shlibext=so
    sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib 
/lib /usr/local/lib"
    sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
    ;;
  cygwin* | mingw* | pw32*)
    case $GCC,$host_os in
      yes,cygwin*)
        shlibext=dll.a
        ;;
      yes,mingw*)
        shlibext=dll
        sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | 
sed -e "s/^libraries://" -e "s/;/ /g"`
        ;;
      yes,pw32*)
        shlibext=dll
        ;;
      *)
        shlibext=dll
        ;;
    esac
    ;;
  darwin* | rhapsody*)
    shlibext=dylib
    ;;
  freebsd1*)
    ;;
  freebsd*)
    shlibext=so
    ;;
  gnu*)
    shlibext=so
    ;;
  hpux9* | hpux10* | hpux11*)
    shlibext=sl
    ;;
  irix5* | irix6*)
    shlibext=so
    case "$host_os" in
      irix5*)
        libsuff= shlibsuff=
        ;;
      *)
        case $LD in
          *-32|*"-32 ") libsuff= shlibsuff= ;;
          *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;;
          *-64|*"-64 ") libsuff=64 shlibsuff=64 ;;
          *) libsuff= shlibsuff= ;;
        esac
        ;;
    esac
    sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} 
/usr/local/lib${libsuff}"
    sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
    ;;
  linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
    ;;
  linux-gnu*)
    shlibext=so
    ;;
  netbsd*)
    shlibext=so
    ;;
  newsos6)
    shlibext=so
    ;;
  openbsd*)
    shlibext=so
    ;;
  os2*)
    libname_spec='$name'
    shlibext=dll
    ;;
  osf3* | osf4* | osf5*)
    shlibext=so
    sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc 
/usr/lib /usr/local/lib /var/shlib"
    sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
    ;;
  sco3.2v5*)
    shlibext=so
    ;;
  solaris*)
    shlibext=so
    ;;
  sunos4*)
    shlibext=so
    ;;
  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
    shlibext=so
    case "$host_vendor" in
      motorola)
        sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
        ;;
    esac
    ;;
  uts4*)
    shlibext=so
    ;;
  dgux*)
    shlibext=so
    ;;
  sysv4*MP*)
    if test -d /usr/nec; then
      shlibext=so
    fi
    ;;
esac

sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 
's/^X//' -e "$sed_quote_subst"`
escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 
's/^X//' -e "$sed_quote_subst"`
escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed 
-e 's/^X//' -e "$sed_quote_subst"`

sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF

# How to pass a linker flag through the compiler.
wl="$escaped_wl"

# Static library suffix (normally "a").
libext="$libext"

# Shared library suffix (normally "so").
shlibext="$shlibext"

# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"

# Whether we need a single -rpath flag with a separated argument.
hardcode_libdir_separator="$hardcode_libdir_separator"

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

# Compile-time system search path for libraries
sys_lib_search_path_spec="$escaped_sys_lib_search_path_spec"

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

EOF




reply via email to

[Prev in Thread] Current Thread [Next in Thread]