mirror of
https://github.com/tmate-io/tmate.git
synced 2024-12-12 01:40:54 +01:00
101 lines
2.7 KiB
Plaintext
101 lines
2.7 KiB
Plaintext
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 <bits/atomicity.h>
|
|
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])
|
|
|