aboutsummaryrefslogtreecommitdiff
path: root/m4/libtool-link.m4
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-03-23 17:37:45 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-03-23 17:37:45 +0200
commit616fdbae6bb41d91ce9682e9dd4a9347fd211852 (patch)
tree8412447a5b740ca138befba22559d4336a5a086d /m4/libtool-link.m4
parent2b29df1262399eeb8414069f82f99aaf98c91121 (diff)
Autotools build system setup
Diffstat (limited to 'm4/libtool-link.m4')
-rw-r--r--m4/libtool-link.m447
1 files changed, 47 insertions, 0 deletions
diff --git a/m4/libtool-link.m4 b/m4/libtool-link.m4
new file mode 100644
index 0000000..d8395d5
--- /dev/null
+++ b/m4/libtool-link.m4
@@ -0,0 +1,47 @@
+dnl file : m4/libtool-link.m4
+dnl author : Boris Kolpackov <boris@codesynthesis.com>
+dnl copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+dnl license : GNU GPL v2; see accompanying LICENSE file
+dnl
+dnl
+dnl CXX_LIBTOOL_LINK_IFELSE (input, [action-if-true], [action-if-false])
+dnl
+dnl Similar to AC_LINK_IFELSE except it uses libtool to perform the
+dnl linking and it does this using the C++ compiler.
+dnl
+AC_DEFUN([CXX_LIBTOOL_LINK_IFELSE],[
+AC_LANG_SAVE
+AC_LANG(C++)
+
+if test -d .libs; then
+ delete_libs_dir=no
+else
+ delete_libs_dir=yes
+fi
+
+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
+ rm -rf .libs
+fi
+
+if test x"$libtool_link_ok" = xyes; then
+[$2]
+:
+else
+[$3]
+:
+fi
+
+AC_LANG_RESTORE])dnl