AC_INIT(src/object.cpp) AC_CONFIG_AUX_DIR(ac) AM_INIT_AUTOMAKE(msgpack, 0.5.7) AC_CONFIG_HEADER(config.h) AC_SUBST(CFLAGS) CFLAGS="-O3 -Wall $CFLAGS" AC_SUBST(CXXFLAGS) CXXFLAGS="-O3 -Wall $CXXFLAGS" AC_PROG_CC AC_MSG_CHECKING([if C++ API is enabled]) AC_ARG_ENABLE(cxx, AS_HELP_STRING([--disable-cxx], [don't build C++ API]) ) #' AC_MSG_RESULT([$enable_cxx]) if test "$enable_cxx" != "no"; then AC_PROG_CXX AM_PROG_CC_C_O fi AM_CONDITIONAL(ENABLE_CXX, test "$enable_cxx" != "no") AC_PROG_LIBTOOL AM_PROG_AS AC_MSG_CHECKING([if debug option is enabled]) AC_ARG_ENABLE(debug, AS_HELP_STRING([--disable-debug], [disable assert macros and omit -g option]) ) AC_MSG_RESULT([$enable_debug]) if test "$enable_debug" != "no"; then CXXFLAGS="$CXXFLAGS -g" CFLAGS="$CFLAGS -g" else CXXFLAGS="$CXXFLAGS -DNDEBUG" CFLAGS="$CFLAGS -DNDEBUG" fi AC_CACHE_CHECK([for __sync_* atomic operations], msgpack_cv_atomic_ops, [ AC_TRY_LINK([ int atomic_sub(int i) { return __sync_sub_and_fetch(&i, 1); } int atomic_add(int i) { return __sync_add_and_fetch(&i, 1); } ], [atomic_sub(1); atomic_add(1);], msgpack_cv_atomic_ops="yes") ]) if test "$msgpack_cv_atomic_ops" != "yes"; then if test "$enable_cxx" = "no"; then AC_MSG_ERROR([__sync_* atomic operations are not found. Try to enable C++ support. If you are using gcc >= 4.1 and the default target CPU architecture is "i386", try to add CFLAGS="-march=i686" and CXXFLAGS="-march=i686" options to ./configure as follows: $ ./configure CFLAGS="-march=i686" CXXFLAGS="-march=i686" ]) fi AC_LANG_PUSH([C++]) AC_CACHE_CHECK([for __gnu_cxx::__exchange_and_add], msgpack_cv_gcc_cxx_atomic_ops, [ AC_TRY_LINK([ #include int atomic_sub(int i) { return __gnu_cxx::__exchange_and_add(&i, -1) - 1; } int atomic_add(int i) { return __gnu_cxx::__exchange_and_add(&i, 1) + 1; } ], [atomic_sub(1); atomic_add(1);], msgpack_cv_gcc_cxx_atomic_ops="yes") ]) AC_LANG_POP([C++]) if test "$msgpack_cv_gcc_cxx_atomic_ops" != "yes"; then AC_MSG_ERROR([__sync_* atomic operations nor __gnu_cxx::__exchange_and_add are not found. If you are using gcc >= 4.1 and the default target CPU architecture is "i386", try to add CFLAGS="-march=i686" and CXXFLAGS="-march=i686" options to ./configure as follows: $ ./configure CFLAGS="-march=i686" CXXFLAGS="-march=i686" ]) else enable_gcc_cxx_atomic=yes fi fi AM_CONDITIONAL(ENABLE_GCC_CXX_ATOMIC, test "$enable_gcc_cxx_atomic" = "yes") major=`echo $VERSION | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` minor=`echo $VERSION | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` AC_SUBST(VERSION_MAJOR, $major) AC_SUBST(VERSION_MINOR, $minor) AC_OUTPUT([Makefile msgpack.pc src/Makefile src/msgpack/version.h test/Makefile])