-# Gearman server and library
+# libmemcached
# Copyright (C) 2008 Brian Aker
# All rights reserved.
#
AC_CONFIG_SRCDIR([libmemcached/memcached.c])
AC_CONFIG_AUX_DIR(config)
AM_CONFIG_HEADER(libmemcached/libmemcached_config.h)
+AC_CONFIG_MACRO_DIR([m4])
#shared library versioning
MEMCACHED_LIBRARY_VERSION=2:0:0
AC_PROG_CC
AC_PROG_CC_C99
-AM_PROG_CC_STDC
AC_PROG_CXX
ACX_USE_SYSTEM_EXTENSIONS
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}"])
+
# Build optimized or debug version ?
# First check for gcc and g++
if test "$GCC" = "yes"
then
- CFLAGS="-ggdb3 -std=gnu99 ${CFLAGS}"
+ CFLAGS="-ggdb3 ${CFLAGS}"
+ CXXFLAGS="-ggdb3 ${CXXFLAGS}"
+
DEBUG_CFLAGS="-O0"
+ DEBUG_CXXFLAGS="-O0"
+
OPTIMIZE_CFLAGS="-O3"
+ OPTIMIZE_CXXFLAGS="-O3"
fi
if test "x$SUNCC" = "xyes"
then
- CFLAGS="-g -mt -xc99=all $CFLAGS"
- CXXFLAGS="-g -mt -xlang=c99 $CXXFLAGS"
- OPTIMIZE_CFLAGS="-xO4 -xlibmil -xdepend -Xa -xstrconst"
+ CFLAGS="-g -mt ${CFLAGS}"
+ CXXFLAGS="-xlang=c99 -g -mt -compat=5 -library=stlport4 -template=no%extdef ${CXXFLAGS}"
+
+ OPTIMIZE_FLAGS="-xO4 -xlibmil -xdepend -xbuiltin"
+ OPTIMIZE_CFLAGS="${OPTIMIZE_FLAGS} -Xa -xstrconst"
+ OPTIMIZE_CXXFLAGS="${OPTIMIZE_FLAGS}"
+
fi
-SOLARIS_64BIT
+ENABLE_64BIT
#--------------------------------------------------------------------
# Check for libpthread
AC_SEARCH_LIBS(floorf, m)
+dnl Specialty checks
DETECT_BYTEORDER
ENABLE_UTILLIB
-
-sinclude(m4/pod2man.m4)
-sinclude(m4/dtrace.m4)
-sinclude(m4/protocol_binary.m4)
-sinclude(m4/memcached.m4)
-sinclude(m4/setsockopt.m4)
-sinclude(m4/hsieh.m4)
+ENABLE_DTRACE
+SETSOCKOPT_SANITY
+ENABLE_HSIEH_HASH
+REQUIRE_POD2MAN
+PROTOCOL_BINARY_TEST
+WITH_MEMCACHED
dnl TODO: Remove this define once we are using 2.61 across the board.
# AX_HEADER_ASSERT
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],
[ac_coverage="$enableval"],
[ac_coverage="no"])
-AC_ARG_ENABLE([unreachable],
- [AS_HELP_STRING([--enable-unreachable],
- [Enable warnings about unreachable code @<:@default=no@:>@])],
- [ac_warn_unreachable="$enableval"],
- [ac_warn_unreachable="no"])
+if test "$GCC" = "yes"
+then
+ AC_CACHE_CHECK([whether it is safe to use -fdiagnostics-show-option],
+ [ac_cv_safe_to_use_fdiagnostics_show_option_],
+ [save_CFLAGS="$CFLAGS"
+ CFLAGS="-fdiagnostics-show-option ${CFLAGS}"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([],[])],
+ [ac_cv_safe_to_use_fdiagnostics_show_option_=yes],
+ [ac_cv_safe_to_use_fdiagnostics_show_option_=no])
+ CFLAGS="$save_CFLAGS"])
-dnl We can't do these two warnings, so turn them off
-W_STRICT_ALIASING="-Wno-strict-aliasing"
-ac_cv_safe_to_use_Wconversion_=no
+ AS_IF([test "$ac_cv_safe_to_use_fdiagnostics_show_option_" = "yes"],
+ [
+ F_DIAGNOSTICS_SHOW_OPTION="-fdiagnostics-show-option"
+ ])
-if test "$GCC" = "yes"
-then
+ AC_CACHE_CHECK([whether it is safe to use -Wconversion],
+ [ac_cv_safe_to_use_wconversion_],
+ [save_CFLAGS="$CFLAGS"
+ CFLAGS="-Werror -Wconversion ${CFLAGS}"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+#include <stdbool.h>
+void foo(bool a)
+{
+ (void)a;
+}
+ ]],[[
+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],
+ [ac_cv_safe_to_use_Wconversion_],
+ [save_CFLAGS="$CFLAGS"
+ CFLAGS="-Werror -Wconversion ${CFLAGS}"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <netinet/in.h>
+ ]],[[
+uint16_t x= htons(80);
+ ]])],
+ [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_" = "no"],
+ [
+ NO_CONVERSION="-Wno-conversion"
+ ])
+ ])
+ W_STRICT_ALIASING="-Wno-strict-aliasing"
AS_IF([test "$ac_profiling" = "yes"],
[CC_PROFILING="-pg"])
AS_IF([test "$building_from_bzr" = "yes"],
[W_FAIL="-Werror"])
- AS_IF([test "$ac_warn_unreachable" = "yes"],
- [W_UNREACHABLE="-Wunreachable-code"])
-
- BASE_WARNINGS="-pedantic -W -Wall -Wextra ${W_FAIL} -Wundef -Wshadow -Wmissing-declarations ${W_STRICT_ALIASING}"
+ 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"
- 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 -Wconversion],
- [ac_cv_safe_to_use_Wconversion_],
- [save_CFLAGS="$CFLAGS"
- CFLAGS="-Werror -Wconversion"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#include <netinet/in.h>
-void foo(in_port_t port)
-{
- return;
-}
- ]],[[
-in_port_t x= 0;
-foo(x);
- ]])],
- [ac_cv_safe_to_use_Wconversion_=yes],
- [ac_cv_safe_to_use_Wconversion_=no])
- CFLAGS="$save_CFLAGS"])
- dnl disable -Wconversion for now. Will fix later
- AS_IF([test "$ac_cv_safe_to_use_Wconversion_" = "yes"],
- [
- CC_WARNINGS="${CC_WARNINGS} -Wconversion"
- CXX_WARNINGS="${CXX_WARNINGS} -Wconversion"
- ])
+ 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_],
CXX_WARNINGS="+w +w2 -xwe -xport64 -errtags=yes ${W_FAIL}"
fi
+AC_SUBST(NO_CONVERSION)
AC_SUBST(NO_REDUNDANT_DECLS)
AM_CPPFLAGS="-I\$(top_srcdir) -I\$(top_builddir) ${CPPFLAGS}"
support/libmemcached-fc.spec
])
AC_OUTPUT
+
+echo "---"
+echo "Configuration summary for $PACKAGE_NAME version $VERSION"
+echo ""
+echo " * Installation prefix: $prefix"
+echo " * System type: $host_vendor-$host_os"
+echo " * Host CPU: $host_cpu"
+echo " * C Compiler: $CC_VERSION"
+echo " * Assertions enabled: $ac_cv_assert"
+echo " * Debug enabled: $with_debug"
+echo " * Warnings as failure: $building_from_bzr"
+echo ""
+echo "---"
+