aboutsummaryrefslogtreecommitdiff
path: root/m4/libtool-link.m4
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-09-28 18:34:29 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-09-28 18:34:29 +0200
commit5cc8dee091861b4947da0195e806ff1a9ba78859 (patch)
tree74627d8c88f72a6962f4d02735f422823e392997 /m4/libtool-link.m4
parent4c4cc6f414c3c31945b861e163525e740e57e861 (diff)
Use libtool only to link
Diffstat (limited to 'm4/libtool-link.m4')
-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