summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2011-01-10 16:42:57 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2011-01-10 16:42:57 +0000
commit3e1ed6823ff128c73656239dcf2fe0c4589e9f8a (patch)
treec60a03c834771ab639a46de0444dcc480ee58ef1 /m4
parent0b3fd08ed314324ffa5328d0f4b7e68d54f56677 (diff)
Add TP_LINKER_FLAG, TP_ADD_LINKER_FLAG
Diffstat (limited to 'm4')
-rw-r--r--m4/tp-linker-flag.m444
1 files changed, 44 insertions, 0 deletions
diff --git a/m4/tp-linker-flag.m4 b/m4/tp-linker-flag.m4
new file mode 100644
index 000000000..23eb41ad9
--- /dev/null
+++ b/m4/tp-linker-flag.m4
@@ -0,0 +1,44 @@
+dnl A version of AS_COMPILER_FLAG that supports linker flags
+dnl Based on:
+
+dnl as-compiler-flag.m4 0.1.0
+dnl autostars m4 macro for detection of compiler flags
+dnl David Schleef <ds@schleef.org>
+dnl $Id: as-compiler-flag.m4,v 1.1 2005/06/18 18:02:46 burgerman Exp $
+
+dnl TP_LINKER_FLAG(LDFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
+dnl Tries to compile with the given LDFLAGS.
+dnl
+dnl Runs ACTION-IF-ACCEPTED if the compiler/linker for the currently selected
+dnl AC_LANG can compile with the flags, and ACTION-IF-NOT-ACCEPTED otherwise.
+dnl
+dnl Note that LDFLAGS are passed to the linker via the compiler, so you
+dnl should check for -Wl,--no-add-needed rather than --no-add-needed.
+
+AC_DEFUN([TP_LINKER_FLAG],
+[
+ AC_MSG_CHECKING([to see if compiler/linker understand $1])
+
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $1"
+
+ AC_COMPILE_IFELSE(AC_LANG_PROGRAM([], []), [flag_ok=yes], [flag_ok=no])
+
+ LDFLAGS="$save_LDFLAGS"
+
+ if test "X$flag_ok" = Xyes ; then
+ $2
+ true
+ else
+ $3
+ true
+ fi
+ AC_MSG_RESULT([$flag_ok])
+])
+
+dnl TP_ADD_LINKER_FLAG(VARIABLE, LDFLAGS)
+dnl Append LDFLAGS to VARIABLE if the linker supports them.
+AC_DEFUN([TP_ADD_LINKER_FLAG],
+[
+ TP_LINKER_FLAG([$2], [$1="[$]$1 $2"])
+])