Start memcached with "-u root", because it let us run tests via sudo or from the...
[awesomized/libmemcached] / m4 / pandora_canonical.m4
index 576a81ca31abf9d1b9b64d6325bc1cf85a81c99e..8443bf80c3ba4ef9a2ace114541f4d94879a3fa0 100644 (file)
@@ -4,7 +4,7 @@ dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl Which version of the canonical setup we're using
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl Which version of the canonical setup we're using
-AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.96])
+AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.134])
 
 AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
   AC_ARG_ENABLE([fat-binaries],
 
 AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
   AC_ARG_ENABLE([fat-binaries],
@@ -29,27 +29,17 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   ifdef([m4_define],,[define([m4_define],   defn([define]))])
   ifdef([m4_undefine],,[define([m4_undefine],   defn([undefine]))])
   m4_define([PCT_ALL_ARGS],[$*])
   ifdef([m4_define],,[define([m4_define],   defn([define]))])
   ifdef([m4_undefine],,[define([m4_undefine],   defn([undefine]))])
   m4_define([PCT_ALL_ARGS],[$*])
-  m4_define([PCT_USE_GNULIB],[no])
   m4_define([PCT_REQUIRE_CXX],[no])
   m4_define([PCT_REQUIRE_CXX],[no])
-  m4_define([PCT_IGNORE_SHARED_PTR],[no])
   m4_define([PCT_FORCE_GCC42],[no])
   m4_define([PCT_FORCE_GCC42],[no])
-  m4_define([PCT_SRC_IN_SRC],[no])
+  m4_define([PCT_DONT_SUPPRESS_INCLUDE],[no])
   m4_define([PCT_VERSION_FROM_VC],[no])
   m4_define([PCT_USE_VISIBILITY],[yes])
   m4_foreach([pct_arg],[$*],[
     m4_case(pct_arg,
   m4_define([PCT_VERSION_FROM_VC],[no])
   m4_define([PCT_USE_VISIBILITY],[yes])
   m4_foreach([pct_arg],[$*],[
     m4_case(pct_arg,
-      [use-gnulib], [
-        m4_undefine([PCT_USE_GNULIB])
-        m4_define([PCT_USE_GNULIB],[yes])
-      ],
       [require-cxx], [
         m4_undefine([PCT_REQUIRE_CXX])
         m4_define([PCT_REQUIRE_CXX],[yes])
       ],
       [require-cxx], [
         m4_undefine([PCT_REQUIRE_CXX])
         m4_define([PCT_REQUIRE_CXX],[yes])
       ],
-      [ignore-shared-ptr], [
-        m4_undefine([PCT_IGNORE_SHARED_PTR])
-        m4_define([PCT_IGNORE_SHARED_PTR],[yes])
-      ],
       [force-gcc42], [
         m4_undefine([PCT_FORCE_GCC42])
         m4_define([PCT_FORCE_GCC42],[yes])
       [force-gcc42], [
         m4_undefine([PCT_FORCE_GCC42])
         m4_define([PCT_FORCE_GCC42],[yes])
@@ -58,9 +48,9 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
         m4_undefine([PCT_USE_VISIBILITY])
         m4_define([PCT_USE_VISIBILITY],[no])
       ],
         m4_undefine([PCT_USE_VISIBILITY])
         m4_define([PCT_USE_VISIBILITY],[no])
       ],
-      [src-in-src], [
-        m4_undefine([PCT_SRC_IN_SRC])
-        m4_define([PCT_SRC_IN_SRC],[yes])
+      [dont-suppress-include], [
+        m4_undefine([PCT_DONT_SUPPRESS_INCLUDE])
+        m4_define([PCT_DONT_SUPPRESS_INCLUDE],[yes])
       ],
       [version-from-vc], [
         m4_undefine([PCT_VERSION_FROM_VC])
       ],
       [version-from-vc], [
         m4_undefine([PCT_VERSION_FROM_VC])
@@ -68,6 +58,14 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
     ])
   ])
 
     ])
   ])
 
+  AC_CONFIG_MACRO_DIR([m4])
+
+  m4_if(m4_substr(m4_esyscmd(test -d src && echo 0),0,1),0,[
+    AC_CONFIG_HEADERS([src/config.h])
+  ],[
+    AC_CONFIG_HEADERS([config.h])
+  ])
+
   # We need to prevent canonical target
   # from injecting -O2 into CFLAGS - but we won't modify anything if we have
   # set CFLAGS on the command line, since that should take ultimate precedence
   # We need to prevent canonical target
   # from injecting -O2 into CFLAGS - but we won't modify anything if we have
   # set CFLAGS on the command line, since that should take ultimate precedence
@@ -78,17 +76,28 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   
   AC_CANONICAL_TARGET
   
   
   AC_CANONICAL_TARGET
   
-  AM_INIT_AUTOMAKE(-Wall -Werror nostdinc subdir-objects foreign)
+  m4_if(PCT_DONT_SUPRESS_INCLUDE,yes,[
+    AM_INIT_AUTOMAKE(-Wall -Werror -Wno-portability subdir-objects foreign)
+  ],[
+    AM_INIT_AUTOMAKE(-Wall -Werror -Wno-portability nostdinc subdir-objects foreign)
+  ])
+
   m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
   m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
-  m4_if(PCT_USE_GNULIB,yes,[ gl_EARLY ])
+  m4_if(m4_substr(m4_esyscmd(test -d gnulib && echo 0),0,1),0,[
+    gl_EARLY
+  ])
   
   AC_REQUIRE([AC_PROG_CC])
   
   AC_REQUIRE([AC_PROG_CC])
-  AC_REQUIRE([PANDORA_MAC_GCC42])
+  m4_if(PCT_FORCE_GCC42, [yes], [
+    AC_REQUIRE([PANDORA_ENSURE_GCC_VERSION])
+  ])
   AC_REQUIRE([PANDORA_64BIT])
 
   m4_if(PCT_VERSION_FROM_VC,yes,[
     PANDORA_VC_VERSION
   AC_REQUIRE([PANDORA_64BIT])
 
   m4_if(PCT_VERSION_FROM_VC,yes,[
     PANDORA_VC_VERSION
+  ],[
+    PANDORA_TEST_VC_DIR
   ])
   PANDORA_VERSION
 
   ])
   PANDORA_VERSION
 
@@ -99,9 +108,6 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   AM_PROG_CC_C_O
 
 
   AM_PROG_CC_C_O
 
 
-  m4_if(PCT_FORCE_GCC42, [yes], [
-    AS_IF([test "$GCC" = "yes"], PANDORA_ENSURE_GCC_VERSION)
-  ])
 
   PANDORA_PLATFORM
 
 
   PANDORA_PLATFORM
 
@@ -118,14 +124,7 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
 
   ])
   
 
   ])
   
-  PANDORA_SHARED_PTR
-  m4_if(PCT_IGNORE_SHARED_PTR, [no], [
-    AS_IF([test "$ac_cv_shared_ptr_namespace" = "missing"],[
-      AC_MSG_WARN([a usable shared_ptr implementation was not found. Let someone know what your platform is.])
-    ])
-  ])
-  
-  m4_if(PCT_USE_GNULIB, [yes], [
+  m4_if(m4_substr(m4_esyscmd(test -d gnulib && echo 0),0,1),0,[
     gl_INIT
     AC_CONFIG_LIBOBJ_DIR([gnulib])
   ])
     gl_INIT
     AC_CONFIG_LIBOBJ_DIR([gnulib])
   ])
@@ -140,8 +139,10 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   AC_C_RESTRICT
 
   AC_HEADER_TIME
   AC_C_RESTRICT
 
   AC_HEADER_TIME
+  AC_STRUCT_TM
   AC_TYPE_SIZE_T
   AC_SYS_LARGEFILE
   AC_TYPE_SIZE_T
   AC_SYS_LARGEFILE
+  PANDORA_CLOCK_GETTIME
 
   # off_t is not a builtin type
   AC_CHECK_SIZEOF(off_t, 4)
 
   # off_t is not a builtin type
   AC_CHECK_SIZEOF(off_t, 4)
@@ -175,11 +176,10 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
     AC_DEFINE([TIME_T_UNSIGNED], 1, [Define to 1 if time_t is unsigned])
   ])
 
     AC_DEFINE([TIME_T_UNSIGNED], 1, [Define to 1 if time_t is unsigned])
   ])
 
-  dnl AC_FUNC_ALLOCA would test for stack direction if we didn't have a working
-  dnl alloca - but we need to know it anyway for check_stack_overrun.
-  PANDORA_STACK_DIRECTION
-
-  AC_CHECK_FUNC(floorf, [], [AC_CHECK_LIB(m, floorf)])
+  AC_CHECK_LIBM
+  dnl Bug on FreeBSD - LIBM check doesn't set the damn variable
+  AC_SUBST([LIBM])
+  
   AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
   AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
 
   AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
   AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
 
@@ -219,22 +219,28 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
 
   AC_CHECK_PROGS([DOXYGEN], [doxygen])
   AC_CHECK_PROGS([PERL], [perl])
 
   AC_CHECK_PROGS([DOXYGEN], [doxygen])
   AC_CHECK_PROGS([PERL], [perl])
+  AC_CHECK_PROGS([DPKG_GENSYMBOLS], [dpkg-gensymbols], [:])
+
+  AM_CONDITIONAL(HAVE_DPKG_GENSYMBOLS,[test "x${DPKG_GENSYMBOLS}" != "x:"])
+
+  PANDORA_WITH_GETTEXT
 
   AS_IF([test "x${gl_LIBOBJS}" != "x"],[
     AS_IF([test "$GCC" = "yes"],[
 
   AS_IF([test "x${gl_LIBOBJS}" != "x"],[
     AS_IF([test "$GCC" = "yes"],[
-      AM_CPPFLAGS="-isystem \$(top_srcdir)/gnulib -isystem \$(top_builddir)/gnulib ${AM_CPPFLAGS}"
+      AM_CPPFLAGS="-isystem \${top_srcdir}/gnulib -isystem \${top_builddir}/gnulib ${AM_CPPFLAGS}"
     ],[
     ],[
-    AM_CPPFLAGS="-I\$(top_srcdir)/gnulib -I\$(top_builddir)/gnulib ${AM_CPPFLAGS}"
+    AM_CPPFLAGS="-I\${top_srcdir}/gnulib -I\${top_builddir}/gnulib ${AM_CPPFLAGS}"
     ])
   ])
     ])
   ])
-  AS_IF([test "PCT_SRC_IN_SRC" = "yes"],[
+  m4_if(m4_substr(m4_esyscmd(test -d src && echo 0),0,1),0,[
     AM_CPPFLAGS="-I\$(top_srcdir)/src -I\$(top_builddir)/src ${AM_CPPFLAGS}"
     AM_CPPFLAGS="-I\$(top_srcdir)/src -I\$(top_builddir)/src ${AM_CPPFLAGS}"
+  ],[
+    AM_CPPFLAGS="-I\$(top_srcdir) -I\$(top_builddir) ${AM_CPPFLAGS}"
   ])
 
   PANDORA_USE_PIPE
 
 
   ])
 
   PANDORA_USE_PIPE
 
 
-  AM_CPPFLAGS="-I\${top_srcdir} -I\${top_builddir} ${AM_CPPFLAGS}"
   AM_CFLAGS="${AM_CFLAGS} ${CC_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}"
   AM_CXXFLAGS="${AM_CXXFLAGS} ${CXX_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}"
 
   AM_CFLAGS="${AM_CFLAGS} ${CC_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}"
   AM_CXXFLAGS="${AM_CXXFLAGS} ${CXX_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}"