* better m4 coding
authorcaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 25 Dec 2009 11:29:08 +0000 (11:29 +0000)
committercaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 25 Dec 2009 11:29:08 +0000 (11:29 +0000)
 * improve pthread detection and add spinlock detection

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eina@44717 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

m4/efl_benchmark.m4
m4/efl_coverage.m4
m4/efl_cpu.m4
m4/efl_doxygen.m4
m4/efl_pthread.m4
m4/efl_tests.m4

index a1691eb..1d1e22e 100644 (file)
@@ -27,11 +27,7 @@ AC_MSG_RESULT([${_efl_enable_benchmark}])
 
 AM_CONDITIONAL(EFL_ENABLE_BENCHMARK, test "x${_efl_enable_benchmark}" = "xyes")
 
-if test "x${_efl_enable_benchmark}" = "xyes" ; then
-   m4_default([$1], [:])
-else
-   m4_default([$2], [:])
-fi
+AS_IF([test "x$_efl_enable_benchmark" = "xyes"], [$1], [$2])
 ])
 
 dnl End of efl_benchmark.m4
index baf0002..85d0321 100644 (file)
@@ -31,7 +31,7 @@ AC_MSG_RESULT([$_efl_enable_coverage])
 
 dnl lcov check
 
-if test ! "x$1" = "xyes" -a "x$_efl_enable_coverage" = "xyes" ; then
+if test "x$_efl_enable_coverage" = "xyes" && test ! "x$1" = "xyes" ; then
    AC_MSG_WARN([Coverage report requested but tests not being built, disable profiling instrumentation.])
    AC_MSG_WARN([Run configure with --enable-tests])
    _efl_enable_coverage="no"
@@ -56,11 +56,7 @@ AC_SUBST(EFL_COVERAGE_LIBS)
 
 AM_CONDITIONAL(EFL_ENABLE_COVERAGE, test "x${_efl_enable_coverage}" = "xyes")
 
-if test "x${_efl_enable_coverage}" = "xyes" ; then
-   m4_default([$2], [:])
-else
-   m4_default([$3], [:])
-fi
+AS_IF([test "x$_efl_enable_coverage" = "xyes"], [$2], [$3])
 ])
 
 dnl End of efl_coverage.m4
index ab047c0..8eccc05 100644 (file)
@@ -48,8 +48,7 @@ if test "x${_efl_build_cpu_mmx}" = "xyes" ; then
 
    AC_COMPILE_IFELSE(
       [AC_LANG_PROGRAM([[]],
-                       [[]])
-      ],
+                       [[]])],
       [
        have_linker_option="yes"
        EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} -mmmx"],
@@ -68,11 +67,7 @@ if test "x${_efl_build_cpu_mmx}" = "xyes" ; then
    AC_DEFINE([EFL_HAVE_MMX], [1], [Define to mention that MMX is supported])
 fi
 
-if test "x${_efl_build_cpu_mmx}" = "xyes" ; then
-   m4_default([$1], [:])
-else
-   m4_default([$2], [:])
-fi
+AS_IF([test "x$_efl_build_cpu_mmx" = "xyes"], [$1], [$2])
 ])
 
 dnl Usage: EFL_CHECK_CPU_SSE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
@@ -141,11 +136,7 @@ if test "x${_efl_build_cpu_sse}" = "xyes" ; then
    AC_DEFINE([EFL_HAVE_SSE], [1], [Define to mention that SSE is supported])
 fi
 
-if test "x${_efl_build_cpu_sse}" = "xyes" ; then
-   m4_default([$1], [:])
-else
-   m4_default([$2], [:])
-fi
+AS_IF([test "x$_efl_build_cpu_sse" = "xyes"], [$1], [$2])
 ])
 
 dnl Usage: EFL_CHECK_CPU_SSE2([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
@@ -215,11 +206,7 @@ if test "x${_efl_build_cpu_sse2}" = "xyes" ; then
    AC_DEFINE([EFL_HAVE_SSE2], [1], [Define to mention that SSE2 is supported])
 fi
 
-if test "x${_efl_build_cpu_sse2}" = "xyes" ; then
-   m4_default([$1], [:])
-else
-   m4_default([$2], [:])
-fi
+AS_IF([test "x$_efl_build_cpu_sse2" = "xyes"], [$1], [$2])
 ])
 
 dnl Usage: EFL_CHECK_CPU_ALTIVEC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
@@ -305,11 +292,7 @@ if test "x${_efl_have_faltivec}" = "xyes" ; then
    AC_DEFINE([EFL_HAVE_ALTIVEC], [1], [Define to mention that ALTIVEC is supported])
 fi
 
-if test "x${_efl_have_faltivec}" = "xyes" ; then
-   m4_default([$1], [:])
-else
-   m4_default([$2], [:])
-fi
+AS_IF([test "x$_efl_have_faltivec" = "xyes"], [$1], [$2])
 ])
 
 dnl Usage: EFL_CHECK_CPU_NEON([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
@@ -352,11 +335,7 @@ if test "x${_efl_build_cpu_neon}" = "xyes" ; then
    AC_DEFINE([EFL_HAVE_NEON], [1], [Define to mention that NEON is supported])
 fi
 
-if test "x${_efl_build_cpu_neon}" = "xyes" ; then
-   m4_default([$1], [:])
-else
-   m4_default([$2], [:])
-fi
+AS_IF([test "x$_efl_build_cpu_neon" = "xyes"], [$1], [$2])
 ])
 
 dnl End of efl_cpu.m4
index 8b5a0ff..7324af3 100644 (file)
@@ -88,12 +88,7 @@ fi
 
 AM_CONDITIONAL(EFL_BUILD_DOC, test "x${efl_have_doxygen}" = "xyes")
 
-if test "x${efl_have_doxygen}" = "xyes" ; then
-  m4_default([$1], [:])
-else
-  m4_default([$2], [:])
-fi
-
+AS_IF([test "x$efl_have_doxygen" = "xyes"], [$1], [$2])
 ])
 
 dnl End of efl_doxygen.m4
index 7bd341c..384b7ae 100644 (file)
@@ -3,7 +3,7 @@ dnl That code is public domain and can be freely used or copied.
 
 dnl Macro that check if several ASM instruction sets are available or not.
 
-dnl Usage: EFL_CHECK_EFL_CHECK_PTHREAD([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl Usage: EFL_CHECK_EFL_CHECK_PTHREAD(want_pthread_spin[, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
 dnl Call AC_SUBST(EFL_PTHREAD_FLAGS)
 dnl Define EFL_HAVE_PTHREAD
 
@@ -31,9 +31,18 @@ dnl check if the compiler supports pthreads
 _efl_have_pthread="no"
 
 if test "x${_efl_enable_pthread}" = "xyes" ; then
-   AC_CHECK_HEADER(pthread.h,
+
+   AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM([[
+#include <pthread.h>
+                       ]],
+                       [[
+pthread_t id;
+id = pthread_self();
+                       ]])],
       [_efl_have_pthread="yes"],
       [_efl_have_pthread="no"])
+
 fi
 
 AC_MSG_CHECKING([whether system support POSIX threads])
@@ -63,9 +72,34 @@ if test "x${_efl_have_pthread}" = "xyes" ; then
    AC_DEFINE(EFL_HAVE_PTHREAD, 1, [Define to mention that POSIX threads are supported])
 fi
 
-if test "x${_efl_have_pthread}" = "xyes" ; then
-   ifelse([$1], , :, [$1])
-else
-   ifelse([$2], , :, [$2])
+dnl check if the compiler supports pthreads spinlock
+
+_efl_have_pthread_spinlock="no"
+
+if test "x${_efl_have_pthread}" = "xyes" && test "x$1" = "xyes" ; then
+
+   AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM([[
+#include <pthread.h>
+                       ]],
+                       [[
+pthread_spinlock_t lock;
+int res;
+res = pthread_spin_init(&lock, PTHREAD_PROCESS_PRIVATE);
+                       ]])],
+      [_efl_have_pthread_spinlock="yes"],
+      [_efl_have_pthread_spinlock="no"])
+
+fi
+
+AC_MSG_CHECKING([whether to build POSIX threads spinlock code])
+AC_MSG_RESULT([${_efl_have_pthread_spinlock}])
+
+if test "x${_efl_have_pthread_spinlock}" = "xyes" ; then
+   AC_DEFINE(EFL_HAVE_PTHREAD_SPINLOCK, 1, [Define to mention that POSIX threads spinlocks are supported])
 fi
+
+AS_IF([test "x$_efl_have_pthread" = "xyes"], [$2], [$3])
+AS_IF([test "x$_efl_have_pthread_spinlock" = "xyes"], [$4], [$5])
+
 ])
index 98d11bb..3a4dfe2 100644 (file)
@@ -37,11 +37,7 @@ fi
 
 AM_CONDITIONAL(EFL_ENABLE_TESTS, test "x${_efl_enable_tests}" = "xyes")
 
-if test "x${_efl_enable_tests}" = "xyes" ; then
-   m4_default([$1], [:])
-else
-   m4_default([$2], [:])
-fi
+AS_IF([test "x$_efl_enable_tests" = "xyes"], [$1], [$2])
 ])
 
 dnl End of efl_tests.m4