aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-09-28 18:33:43 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-09-28 18:33:43 +0200
commit989ce92a24c3161121d9fcdd110790109444df9b (patch)
tree5b895f9221bd7f3a28e1c8dda05f405c0fab8045
parent6d03898ff07065ad213f9201d52c9809fb5f9e59 (diff)
Use libtool only to link
-rw-r--r--m4/libtool-link.m426
1 files changed, 21 insertions, 5 deletions
diff --git a/m4/libtool-link.m4 b/m4/libtool-link.m4
index 229b270..d73c508 100644
--- a/m4/libtool-link.m4
+++ b/m4/libtool-link.m4
@@ -11,8 +11,6 @@ dnl linking and it does this using the C++ compiler.
dnl
AC_DEFUN([CXX_LIBTOOL_LINK_IFELSE],[
AC_LANG_SAVE
-save_CXX="$CXX"
-CXX="./libtool --tag=CXX --mode=link $CXX -no-install"
AC_LANG(C++)
if test -d .libs; then
@@ -21,11 +19,29 @@ else
delete_libs_dir=yes
fi
-AC_LINK_IFELSE([$1], [$2], [$3])
+AC_COMPILE_IFELSE([$1],
+[
+ ac_try='./libtool --tag=CXX --mode=link $CXX -no-install $CXXFLAGS $LDFLAGS -o conftest conftest.$OBJEXT $LIBS >&AS_MESSAGE_LOG_FD'
+ if _AC_DO_VAR(ac_try); then
+ libtool_link_ok=yes
+ else
+ libtool_link_ok=no
+ fi
+],
+[
+ libtool_link_ok=no
+])
-if test x"$delete_libs_dir" != xyes; then
+if test x"$delete_libs_dir" = xyes; then
rm -rf .libs
fi
-CXX="$save_CXX"
+if test x"$libtool_link_ok" = xyes; then
+[$2]
+:
+else
+[$3]
+:
+fi
+
AC_LANG_RESTORE])dnl