Update pandora
[awesomized/libmemcached] / m4 / pandora_canonical.m4
index 9465a5c1d88b94586e06992ea5083927b6d0c531..0fcaca147b3e279a1907ea0ee5f4a93ec38de50a 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.1])
+AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.61])
 
 AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
   dnl Force dependency tracking on for Sun Studio builds
 
 AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
   dnl Force dependency tracking on for Sun Studio builds
@@ -16,11 +16,15 @@ AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
 dnl The standard setup for how we build Pandora projects
 AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   AC_REQUIRE([PANDORA_FORCE_DEPEND_TRACKING])
 dnl The standard setup for how we build Pandora projects
 AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   AC_REQUIRE([PANDORA_FORCE_DEPEND_TRACKING])
-  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_IGNORE_SHARED_PTR],[no])
   m4_define([PCT_USE_GNULIB],[no])
   m4_define([PCT_REQUIRE_CXX],[no])
   m4_define([PCT_IGNORE_SHARED_PTR],[no])
-  m4_foreach_w([pct_arg],$@,[
+  m4_define([PCT_FORCE_GCC42],[no])
+  m4_define([PCT_SRC_IN_SRC],[no])
+  m4_foreach([pct_arg],[$*],[
     m4_case(pct_arg,
       [use-gnulib], [
         m4_undefine([PCT_USE_GNULIB])
     m4_case(pct_arg,
       [use-gnulib], [
         m4_undefine([PCT_USE_GNULIB])
@@ -33,6 +37,14 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
       [ignore-shared-ptr], [
         m4_undefine([PCT_IGNORE_SHARED_PTR])
         m4_define([PCT_IGNORE_SHARED_PTR],[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])
+      ],
+      [src-in-src], [
+        m4_undefine([PCT_SRC_IN_SRC])
+        m4_define([PCT_SRC_IN_SRC],[yes])
     ])
   ])
 
     ])
   ])
 
@@ -47,19 +59,26 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   AC_CANONICAL_TARGET
   
   AM_INIT_AUTOMAKE(-Wall -Werror nostdinc subdir-objects)
   AC_CANONICAL_TARGET
   
   AM_INIT_AUTOMAKE(-Wall -Werror nostdinc subdir-objects)
+  m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
   m4_if(PCT_USE_GNULIB,yes,[ gl_EARLY ])
   
   AC_REQUIRE([AC_PROG_CC])
 
   m4_if(PCT_USE_GNULIB,yes,[ gl_EARLY ])
   
   AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([PANDORA_MAC_GCC42])
+  AC_REQUIRE([PANDORA_64BIT])
 
   dnl Once we can use a modern autoconf, we can use this
   dnl AC_PROG_CC_C99
 
   dnl Once we can use a modern autoconf, we can use this
   dnl AC_PROG_CC_C99
-  AC_PROG_CXX
-  AC_PROG_CPP
+  AC_REQUIRE([AC_PROG_CXX])
+  PANDORA_EXTENSIONS
   AM_PROG_CC_C_O
 
   AM_PROG_CC_C_O
 
-  gl_USE_SYSTEM_EXTENSIONS
-  
+
+  m4_if(PCT_FORCE_GCC42, [yes], [
+    AS_IF([test "$GCC" = "yes"], PANDORA_ENSURE_GCC_VERSION)
+  ])
+
+  PANDORA_PLATFORM
 
   PANDORA_LIBTOOL
 
 
   PANDORA_LIBTOOL
 
@@ -80,37 +99,42 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
     ])
   ])
   
     ])
   ])
   
-  m4_if(PCT_USE_GNULIB, [yes], [gl_INIT])
+  m4_if(PCT_USE_GNULIB, [yes], [
+    gl_INIT
+    AC_CONFIG_LIBOBJ_DIR([gnulib])
+  ])
 
   AC_C_BIGENDIAN
   AC_C_CONST
   AC_C_INLINE
   AC_C_VOLATILE
 
   AC_C_BIGENDIAN
   AC_C_CONST
   AC_C_INLINE
   AC_C_VOLATILE
+  AC_C_RESTRICT
 
   AC_HEADER_TIME
   AC_TYPE_SIZE_T
 
   AC_HEADER_TIME
   AC_TYPE_SIZE_T
-  AC_FUNC_MALLOC
-  AC_FUNC_REALLOC
-  
-
-  AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
-
   AC_SYS_LARGEFILE
 
   AC_SYS_LARGEFILE
 
-  AS_IF([test "$GCC" = "yes"], PANDORA_ENSURE_GCC_VERSION)
 
   PANDORA_CHECK_C_VERSION
   PANDORA_CHECK_CXX_VERSION
 
   PANDORA_OPTIMIZE
 
   PANDORA_CHECK_C_VERSION
   PANDORA_CHECK_CXX_VERSION
 
   PANDORA_OPTIMIZE
-  PANDORA_64BIT
-  PANDORA_WARNINGS(PCT_ALL_ARGS)
 
 
+  dnl We need to inject error into the cflags to test if visibility works or not
+  save_CFLAGS="${CFLAGS}"
+  CFLAGS="${CFLAGS} -Werror"
   gl_VISIBILITY
   gl_VISIBILITY
+  CFLAGS="${save_CFLAGS}"
 
 
-  PANDORA_ENABLE_DTRACE
   PANDORA_HEADER_ASSERT
 
   PANDORA_HEADER_ASSERT
 
+  PANDORA_WARNINGS(PCT_ALL_ARGS)
+
+  PANDORA_ENABLE_DTRACE
+
+  AC_LIB_PREFIX
+  PANDORA_HAVE_BETTER_MALLOC
+
   AC_CHECK_PROGS([DOXYGEN], [doxygen])
   AC_CHECK_PROGS([PERL], [perl])
 
   AC_CHECK_PROGS([DOXYGEN], [doxygen])
   AC_CHECK_PROGS([PERL], [perl])
 
@@ -121,6 +145,12 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
     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"],[
+    AM_CPPFLAGS="-I\$(top_srcdir)/src -I\$(top_builddir)/src ${AM_CPPFLAGS}"
+  ])
+
+  PANDORA_USE_PIPE
+
 
   AM_CPPFLAGS="-I\${top_srcdir} -I\${top_builddir} ${AM_CPPFLAGS}"
   AM_CFLAGS="${AM_CFLAGS} ${CC_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}"
 
   AM_CPPFLAGS="-I\${top_srcdir} -I\${top_builddir} ${AM_CPPFLAGS}"
   AM_CFLAGS="${AM_CFLAGS} ${CC_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}"