Turned on -fvisibility=hidden. Added API markers to the code.
[m6w6/libmemcached] / configure.ac
index c009f78c48de494334785b02e4e8f811a4da6aa6..a336819e3fd58c2cae32a4440aa36182fcbaa1d5 100644 (file)
@@ -1,4 +1,4 @@
-# Gearman server and library
+# libmemcached 
 # Copyright (C) 2008 Brian Aker
 # All rights reserved.
 #
@@ -9,7 +9,8 @@ AC_PREREQ(2.59)
 AC_INIT([libmemcached],[0.30],[http://tangent.org/552/libmemcached.html])
 AC_CONFIG_SRCDIR([libmemcached/memcached.c])
 AC_CONFIG_AUX_DIR(config)
-AM_CONFIG_HEADER(libmemcached/libmemcached_config.h)
+AM_CONFIG_HEADER([config.h])
+AC_CONFIG_MACRO_DIR([m4])
 
 #shared library versioning
 MEMCACHED_LIBRARY_VERSION=2:0:0
@@ -52,9 +53,6 @@ else
   building_from_bzr=no
 fi
 
-AC_PROG_CC
-AC_PROG_CC_C99
-AM_PROG_CC_STDC
 AC_PROG_CXX
 
 ACX_USE_SYSTEM_EXTENSIONS
@@ -62,11 +60,14 @@ ACX_USE_SYSTEM_EXTENSIONS
 AC_PROG_CPP
 AM_PROG_CC_C_O
 
+FORCE_MAC_GCC42
+dnl Once we can use a modern autoconf, we can use this
+dnl AC_PROG_CC_C99
+
 AC_C_BIGENDIAN
 AC_C_CONST
 AC_HEADER_TIME
 AC_TYPE_SIZE_T
-AC_TYPE_SSIZE_T
 AC_FUNC_MALLOC
 AC_FUNC_REALLOC
 
@@ -97,14 +98,17 @@ fi
 AC_SUBST(LD_VERSION_SCRIPT)
 AC_SUBST(LD_UTIL_VERSION_SCRIPT)
 
-# Use the C99 enabling flag found earlier
-AS_IF([test "$ac_cv_prog_cc_c99" != "no"],
-      [CFLAGS="$ac_cv_prog_cc_c99 ${CFLAGS}"])
+gl_VISIBILITY
 
 # Build optimized or debug version ?
 # First check for gcc and g++
 if test "$GCC" = "yes"
 then
+
+  dnl Once we can use a modern autoconf, we can replace the std=gnu99 here
+  dnl with using AC_CC_STD_C99 above
+  CC="${CC} -std=gnu99"
+
   CFLAGS="-ggdb3 ${CFLAGS}"
   CXXFLAGS="-ggdb3 ${CXXFLAGS}"
 
@@ -116,10 +120,14 @@ then
 fi
 if test "x$SUNCC" = "xyes"
 then
+  dnl Once we can use a modern autoconf, we can replace the -xc99=all here
+  dnl with using AC_CC_STD_C99 above
+  CC="${CC} -xc99=all"
+
   CFLAGS="-g -mt ${CFLAGS}"
   CXXFLAGS="-xlang=c99 -g -mt -compat=5 -library=stlport4 -template=no%extdef ${CXXFLAGS}"
 
-  OPTIMIZE_FLAGS="-xO4 -xlibmil -xdepend -xbuiltin -lmopt"
+  OPTIMIZE_FLAGS="-xO4 -xlibmil -xdepend -xbuiltin"
   OPTIMIZE_CFLAGS="${OPTIMIZE_FLAGS} -Xa -xstrconst"
   OPTIMIZE_CXXFLAGS="${OPTIMIZE_FLAGS}"
 
@@ -166,6 +174,7 @@ ENABLE_HSIEH_HASH
 REQUIRE_POD2MAN
 PROTOCOL_BINARY_TEST
 WITH_MEMCACHED
+ENABLE_DEPRECATED
 
 dnl TODO: Remove this define once we are using 2.61 across the board.
 # AX_HEADER_ASSERT
@@ -193,9 +202,11 @@ if test "$with_debug" = "yes"
 then
   # Debugging. No optimization.
   CFLAGS="${DEBUG_CFLAGS} -DDEBUG ${CFLAGS}"
+  CXXFLAGS="${DEBUG_CXXFLAGS} -DDEBUG ${CXXFLAGS}"
 else
   # Optimized version. No debug
   CFLAGS="${OPTIMIZE_CFLAGS} ${CFLAGS}"
+  CXXFLAGS="${OPTIMIZE_CXXFLAGS} ${CXXFLAGS}"
 fi
 
 AC_ARG_ENABLE([profiling],
@@ -210,9 +221,6 @@ AC_ARG_ENABLE([coverage],
     [ac_coverage="$enableval"],
     [ac_coverage="no"])
 
-dnl We can't do this warning, so turn off
-W_STRICT_ALIASING="-Wno-strict-aliasing"
-
 if test "$GCC" = "yes"
 then
 
@@ -231,7 +239,6 @@ then
           F_DIAGNOSTICS_SHOW_OPTION="-fdiagnostics-show-option"
         ])
 
-
   AC_CACHE_CHECK([whether it is safe to use -Wconversion],
     [ac_cv_safe_to_use_wconversion_],
     [save_CFLAGS="$CFLAGS"
@@ -249,6 +256,7 @@ foo(0);
        [ac_cv_safe_to_use_wconversion_=yes],
        [ac_cv_safe_to_use_wconversion_=no])
      CFLAGS="$save_CFLAGS"])
+
   AS_IF([test "$ac_cv_safe_to_use_wconversion_" = "yes"],
     [W_CONVERSION="-Wconversion"
     AC_CACHE_CHECK([whether it is safe to use -Wconversion with htons],
@@ -272,8 +280,6 @@ uint16_t x= htons(80);
           ])
     ])
 
-  W_STRICT_ALIASING="-Wno-strict-aliasing"
-
   AS_IF([test "$ac_profiling" = "yes"],
         [CC_PROFILING="-pg"])
 
@@ -281,12 +287,12 @@ uint16_t x= htons(80);
         [CC_COVERAGE="-fprofile-arcs -ftest-coverage"])
 
   AS_IF([test "$building_from_bzr" = "yes"],
-        [W_FAIL="-Werror"])
-
-  BASE_WARNINGS="-pedantic -W -Wall -Wextra ${W_FAIL} -Wundef -Wshadow -Wmissing-declarations ${W_STRICT_ALIASING} ${F_DIAGNOSTICS_SHOW_OPTION} ${W_CONVERSION}"
-  CC_WARNINGS="${BASE_WARNINGS} -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wswitch-default -Wswitch-enum -Wcast-align -Wconversion"
-  CXX_WARNINGS="${BASE_WARNINGS} -Woverloaded-virtual  -Wnon-virtual-dtor -Wctor-dtor-privacy  -Wold-style-cast -Weffc++ -Wno-long-long -Wconversion"
+        [W_FAIL=""])
+        #[W_FAIL="-Werror"])
 
+  BASE_WARNINGS="-pedantic -Wall -Wextra ${W_FAIL} -Wundef -Wshadow -Wmissing-declarations -Wstrict-aliasing -Wformat=2 ${F_DIAGNOSTICS_SHOW_OPTION} ${W_CONVERSION} ${CFLAG_VISIBILITY}"
+  CC_WARNINGS="${BASE_WARNINGS} -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wswitch-default -Wswitch-enum -Wcast-align"
+  CXX_WARNINGS="${BASE_WARNINGS} -Woverloaded-virtual -Wnon-virtual-dtor -Wctor-dtor-privacy -Wold-style-cast -Weffc++ -Wno-long-long"
 
   AC_CACHE_CHECK([whether it is safe to use -Wlogical-op],
     [ac_cv_safe_to_use_Wlogical_op_],
@@ -323,6 +329,7 @@ template <> void C<int>::foo();
         [CXX_WARNINGS="${CXX_WARNINGS} -Wredundant-decls"],
         [CXX_WARNINGS="${CXX_WARNINGS} -Wno-redundant-decls"])
 
+  NO_STRICT_ALIASING="-fno-strict-aliasing -Wno-strict-aliasing"
   NO_REDUNDANT_DECLS="-Wno-redundant-decls"
 fi
 if test "$SUNCC" = "yes"
@@ -358,6 +365,7 @@ fi
 
 AC_SUBST(NO_CONVERSION)
 AC_SUBST(NO_REDUNDANT_DECLS)
+AC_SUBST(NO_STRICT_ALIASING)
 
 AM_CPPFLAGS="-I\$(top_srcdir) -I\$(top_builddir) ${CPPFLAGS}"
 AM_CFLAGS="${CC_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE} ${CFLAGS}"
@@ -378,6 +386,7 @@ AC_CONFIG_FILES([
   tests/Makefile
   docs/Makefile
   libmemcached/Makefile
+  libmemcached/memcached_configure.h
   libmemcachedutil/Makefile
   support/Makefile
   support/libmemcached.pc