* eet: improve detection of -Wl,--as-needed
authorcedric <cedric>
Fri, 3 Dec 2010 18:27:17 +0000 (18:27 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 3 Dec 2010 18:27:17 +0000 (18:27 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eet@55214 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

configure.ac
m4/efl_compiler_flag.m4 [new file with mode: 0644]
src/bin/Makefile.am

index 6e6e428..11bced3 100644 (file)
@@ -415,20 +415,7 @@ case "$host_os" in
 esac
 AC_SUBST(lt_enable_auto_import)
 
-# use --as-needed if supported
-
-LDFLAGS_SAVE=${LDFLAGS}
-LDFLAGS="${LDFLAGS} -Wl,--as-needed"
-
-AC_LINK_IFELSE(
-   [AC_LANG_PROGRAM([[]], [])],
-   [ld_as_needed="-Wl,--as-needed"],
-   [ld_as_needed=""]
-)
-
-LDFLAGS=${LDFLAGS_SAVE}
-AC_SUBST(ld_as_needed)
-
+EFL_LINKER_FLAG([-Wl,--as-needed])
 
 ### Checks for library functions
 AC_FUNC_ALLOCA
diff --git a/m4/efl_compiler_flag.m4 b/m4/efl_compiler_flag.m4
new file mode 100644 (file)
index 0000000..618c6a6
--- /dev/null
@@ -0,0 +1,57 @@
+dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
+dnl                and Albin Tonnerre <albin dot tonnerre at gmail dot com>
+dnl That code is public domain and can be freely used or copied.
+
+dnl Macro that checks if a compiler flag is supported by the compiler.
+
+dnl Usage: EFL_COMPILER_FLAG(flag)
+dnl flag is added to CFLAGS if supported.
+
+AC_DEFUN([EFL_COMPILER_FLAG],
+[
+
+CFLAGS_save="${CFLAGS}"
+CFLAGS="${CFLAGS} $1"
+  
+AC_LANG_PUSH([C])
+AC_MSG_CHECKING([whether the compiler supports $1])
+
+AC_COMPILE_IFELSE(
+   [AC_LANG_PROGRAM([[]])],
+   [have_flag="yes"],
+   [have_flag="no"])
+AC_MSG_RESULT([${have_flag}])
+
+if test "x${have_flag}" = "xno" ; then
+   CFLAGS="${CFLAGS_save}"
+fi
+AC_LANG_POP([C])
+
+])
+
+dnl Macro that checks if a linker flag is supported by the compiler.
+
+dnl Usage: EFL_LINKER_FLAG(flag)
+dnl flag is added to CFLAGS if supported (will be passed to ld anyway).
+
+AC_DEFUN([EFL_LINKER_FLAG],
+[
+
+CFLAGS_save="${CFLAGS}"
+CFLAGS="${CFLAGS} $1"
+  
+AC_LANG_PUSH([C])
+AC_MSG_CHECKING([whether the compiler supports $1])
+
+AC_LINK_IFELSE(
+   [AC_LANG_PROGRAM([[]])],
+   [have_flag="yes"],
+   [have_flag="no"])
+AC_MSG_RESULT([${have_flag}])
+
+if test "x${have_flag}" = "xno" ; then
+   CFLAGS="${CFLAGS_save}"
+fi
+AC_LANG_POP([C])
+
+])
index 006bb3f..ba7d67e 100644 (file)
@@ -18,4 +18,4 @@ EXTRA_PROGRAMS = eet
 eet_SOURCES = eet_main.c
 eet_CFLAGS = @EET_CFLAGS@
 eet_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ @EVIL_LIBS@
-eet_LDFLAGS = @lt_enable_auto_import@ @ld_as_needed@
+eet_LDFLAGS = @lt_enable_auto_import@