Commit 70b51734 authored by Yang Tse's avatar Yang Tse
Browse files

configure: use XC_LIBTOOL for portability across libtool versions

parent eacfb5d8
Loading
Loading
Loading
Loading
+14 −44
Original line number Diff line number Diff line
@@ -198,48 +198,19 @@ CURL_CONFIGURE_REENTRANT
dnl check for how to do large files
AC_SYS_LARGEFILE

dnl support building of Windows DLLs
AC_LIBTOOL_WIN32_DLL
XC_LIBTOOL

dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD
AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)])
case $host in
  x86_64*linux*|amd64*freebsd*|ia64*freebsd*)
    AC_MSG_RESULT([yes])
    with_pic=yes
    ;;
  *)
    AC_MSG_RESULT([no])
    ;;
esac

AC_MSG_CHECKING([if compiler is icc (to build with PIC)])
case $CC in
  icc | */icc)
    AC_MSG_RESULT([yes])
    with_pic=yes
    ;;
  *)
    AC_MSG_RESULT([no])
    ;;
esac
#
# Automake conditionals based on libtool related checks
#

dnl libtool setup
AC_PROG_LIBTOOL
AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSION_INFO],
  [test "x$xc_lt_shlib_use_version_info" = 'xyes'])
AM_CONDITIONAL([CURL_LT_SHLIB_USE_NO_UNDEFINED],
  [test "x$xc_lt_shlib_use_no_undefined" = 'xyes'])
AM_CONDITIONAL([CURL_LT_SHLIB_USE_MIMPURE_TEXT],
  [test "x$xc_lt_shlib_use_mimpure_text" = 'xyes'])

AC_MSG_CHECKING([if we need -mimpure-text])
mimpure=no
case $host in
  *-*-solaris2*)
    if test "$GCC" = "yes"; then
      mimpure="yes"
    fi
    ;;
  *)
    ;;
esac
AC_MSG_RESULT($mimpure)
AM_CONDITIONAL(MIMPURE, test x$mimpure = xyes)

AC_MSG_CHECKING([if we need BUILDING_LIBCURL])
use_cppflag_building_libcurl="no"
@@ -311,9 +282,6 @@ CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH
CURL_CHECK_COMPILER_SYMBOL_HIDING

CURL_CHECK_NO_UNDEFINED
AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes)

CURL_CHECK_CURLDEBUG
AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes)

@@ -2613,8 +2581,10 @@ AC_MSG_RESULT(no)
]
)

AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"])
AM_CONDITIONAL(VERSIONED_SYMBOLS, test "x$versioned_symbols" = "xyes")
AC_SUBST([CURL_LT_SHLIB_VERSIONED_FLAVOUR],
  ["$versioned_symbols_flavour"])
AM_CONDITIONAL([CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS],
  [test "x$versioned_symbols" = 'xyes'])

dnl -------------------------------------------------
dnl check winidn option before other IDN libraries
+15 −12
Original line number Diff line number Diff line
@@ -73,6 +73,9 @@ AM_CPPFLAGS = -I$(top_builddir)/include/curl \
              -I$(top_srcdir)/lib
endif

# Prevent LIBS from being used for all link targets
LIBS = $(BLANK_AT_MAKETIME)

# Mostly for Windows build targets, when building libcurl library
if USE_CPPFLAG_BUILDING_LIBCURL
AM_CPPFLAGS += -DBUILDING_LIBCURL
@@ -111,25 +114,25 @@ endif
#
# For the full guide on libcurl ABI rules, see docs/libcurl/ABI

if NO_UNDEFINED
# The -no-undefined flag is crucial to build fine on some platforms
UNDEF = -no-undefined
libcurl_la_LDFLAGS_EXTRA =

if CURL_LT_SHLIB_USE_VERSION_INFO
libcurl_la_LDFLAGS_EXTRA += $(VERSIONINFO)
endif

if MIMPURE
# This is for gcc on Solaris (8+ ?) to avoid "relocations remain against
# allocatable but non-writable sections" problems.
MIMPURE = -mimpure-text
if CURL_LT_SHLIB_USE_NO_UNDEFINED
libcurl_la_LDFLAGS_EXTRA += -no-undefined
endif

if VERSIONED_SYMBOLS
VERSIONED_SYMBOLS = -Wl,--version-script=libcurl.vers
if CURL_LT_SHLIB_USE_MIMPURE_TEXT
libcurl_la_LDFLAGS_EXTRA += -mimpure-text
endif

# Prevent LIBS from being used for all link targets
LIBS = $(BLANK_AT_MAKETIME)
if CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS
libcurl_la_LDFLAGS_EXTRA += -Wl,--version-script=libcurl.vers
endif

libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(VERSIONED_SYMBOLS) $(LIBCURL_LIBS)
libcurl_la_LDFLAGS = $(AM_LDFLAGS) $(libcurl_la_LDFLAGS_EXTRA) $(LIBCURL_LIBS)

if DOING_CURL_SYMBOL_HIDING
libcurl_la_CPPFLAGS = $(AM_CPPFLAGS) -DCURL_HIDDEN_SYMBOLS
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ HIDDEN
    _save*;
};

CURL_@VERSIONED_FLAVOUR@4
CURL_@CURL_LT_SHLIB_VERSIONED_FLAVOUR@4
{
  global: curl_*;
  local: *;
+3 −27
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
#***************************************************************************

# File version for 'aclocal' use. Keep it a single number.
# serial 65
# serial 66


dnl CURL_CHECK_COMPILER
@@ -1195,6 +1195,7 @@ dnl library or as a shared one on those systems on which
dnl shared libraries support undefined symbols.

AC_DEFUN([CURL_CHECK_CURLDEBUG], [
  AC_REQUIRE([XC_LIBTOOL])dnl
  AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
  supports_curldebug="unknown"
  if test "$want_curldebug" = "yes"; then
@@ -1210,7 +1211,7 @@ AC_DEFUN([CURL_CHECK_CURLDEBUG], [
    fi
    if test "$supports_curldebug" != "no"; then
      if test "$enable_shared" = "yes" &&
        test "$need_no_undefined" = "yes"; then
        test "x$xc_lt_shlib_use_no_undefined" = 'xyes'; then
        supports_curldebug="no"
        AC_MSG_WARN([shared library does not support undefined symbols.])
      fi
@@ -1238,31 +1239,6 @@ AC_DEFUN([CURL_CHECK_CURLDEBUG], [
])


dnl CURL_CHECK_NO_UNDEFINED
dnl -------------------------------------------------
dnl Checks if the -no-undefined flag must be used when
dnl building shared libraries. This is required on all
dnl systems on which shared libraries should not have
dnl references to undefined symbols. This check should
dnl not be done before AC-PROG-LIBTOOL.

AC_DEFUN([CURL_CHECK_NO_UNDEFINED], [
  AC_BEFORE([$0],[CURL_CHECK_CURLDEBUG])dnl
  AC_MSG_CHECKING([if shared libraries need -no-undefined])
  need_no_undefined="no"
  case $host in
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc* | *-*-aix*)
      need_no_undefined="yes"
      ;;
  esac
  if test "x$allow_undefined" = "xno"; then
    need_no_undefined="yes"
  elif test "x$allow_undefined_flag" = "xunsupported"; then
    need_no_undefined="yes"
  fi
  AC_MSG_RESULT($need_no_undefined)
])


dnl CURL_CHECK_COMPILER_HALT_ON_ERROR
dnl -------------------------------------------------
+6 −4
Original line number Diff line number Diff line
@@ -88,16 +88,18 @@ else
noinst_LTLIBRARIES =
endif

if NO_UNDEFINED
# The -no-undefined flag is crucial to build fine on some platforms
UNDEF = -no-undefined
libhostname_la_LDFLAGS_EXTRA = -module -avoid-version -rpath /nowhere

if CURL_LT_SHLIB_USE_NO_UNDEFINED
libhostname_la_LDFLAGS_EXTRA += -no-undefined
endif

libhostname_la_LDFLAGS = $(AM_LDFLAGS) $(libhostname_la_LDFLAGS_EXTRA)

libhostname_la_SOURCES = sethostname.c sethostname.h

libhostname_la_LIBADD =
libhostname_la_DEPENDENCIES =
libhostname_la_LDFLAGS = -module -avoid-version $(UNDEF) -rpath /nowhere

if DOING_CURL_SYMBOL_HIDING
libhostname_la_CPPFLAGS = $(AM_CPPFLAGS) -DCURL_HIDDEN_SYMBOLS