X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=configure.ac;h=86700a5e027ab569d8a84ce9f7d722635d2d302c;hb=3f51531eb36bb7bbc485fb7cb9d22752ab19eff5;hp=8a462aa5d4a56bd2b3bede8ea62cb06d3219fbb3;hpb=ded836f0acf518b9011b7344658d45b9e46309ef;p=awesomized%2Flibmemcached diff --git a/configure.ac b/configure.ac index 8a462aa5..86700a5e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# Gearman server and library +# libmemcached # Copyright (C) 2008 Brian Aker # All rights reserved. # @@ -10,6 +10,7 @@ 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) +AC_CONFIG_MACRO_DIR([m4]) #shared library versioning MEMCACHED_LIBRARY_VERSION=2:0:0 @@ -54,7 +55,6 @@ fi AC_PROG_CC AC_PROG_CC_C99 -AM_PROG_CC_STDC AC_PROG_CXX ACX_USE_SYSTEM_EXTENSIONS @@ -97,22 +97,35 @@ 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}"]) + # 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 @@ -144,15 +157,15 @@ LIBS="$save_LIBS" 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 @@ -180,9 +193,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], @@ -197,20 +212,66 @@ AC_ARG_ENABLE([coverage], [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 +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 + ]],[[ +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"]) @@ -221,38 +282,9 @@ then 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 -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_], @@ -322,6 +354,7 @@ then 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}" @@ -350,3 +383,17 @@ AC_CONFIG_FILES([ 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 "---" +