LT_VERSION=folly_version_str:0
AC_SUBST([LT_VERSION])
+#declare pkg-config variables
+PKG_VERSION=m4_join([.], m4_reverse(m4_translit(folly_version_str, [:], [,])))
+AC_SUBST([PKG_VERSION])
+AC_SUBST([PKG_CXXFLAGS])
+AC_SUBST([PKG_DEPS])
+AC_SUBST([PKG_LIBS])
+
AC_CONFIG_SRCDIR([Likely.h])
AC_CONFIG_HEADERS([config.h])
AX_PREFIX_CONFIG_H([folly-config.h], [folly], [config.h])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
-AC_CXX_COMPILE_STDCXX_0X
+
+AC_CXX_COMPILE_STDCXX_1Y
# Be sure to add any -std option to CXXFLAGS before we invoke any
# AC_COMPILE_IFELSE() or similar macros. Any such macros that are invoked
# before we update CXXFLAGS will not be run with the same options that we use
# during the real build.
STD=""
-if test "x$ac_cv_cxx_compile_cxx0x_cxx" = xyes; then
- STD="-std=c++0x"
+if test "x$ac_cv_cxx_compile_cxx1y_cxx" = xyes; then
+ STD="-std=c++1y"
fi
-if test "x$ac_cv_cxx_compile_cxx0x_gxx" = xyes; then
- STD="-std=gnu++0x"
+if test "x$ac_cv_cxx_compile_cxx1y_gxx" = xyes; then
+ STD="-std=gnu++1y"
fi
CXXFLAGS="$STD $CXXFLAGS"
+# expose required -std option via pkg-config
+PKG_CXXFLAGS=$STD
+
# Checks for glog and gflags
# There are no symbols with C linkage, so we do a try-run
AC_HAVE_LIBRARY([gflags],[],[AC_MSG_ERROR(
if test "$folly_cv_prog_cc_gflags" != "yes"; then
AC_MSG_ERROR(["libgflags invalid, see config.log for details"])
fi
+FB_CHECK_PKG_CONFIG([GFLAGS], [libgflags])
AC_HAVE_LIBRARY([glog],[],[AC_MSG_ERROR(
[Please install google-glog library])])
if test "$folly_cv_prog_cc_glog" != "yes"; then
AC_MSG_ERROR(["libglog invalid, see config.log for details"])
fi
+FB_CHECK_PKG_CONFIG([GLOG], [libglog])
AC_CHECK_LIB(ssl,
SSL_ctrl,
[],
[AC_MSG_ERROR(["Error: libssl required"])])
+FB_CHECK_PKG_CONFIG([OPENSSL], [openssl])
# check for boost libs
AX_BOOST_BASE([1.51.0], [], [AC_MSG_ERROR(
[Please install double-conversion library])])
AC_CHECK_LIB([event], [event_set], [], [AC_MSG_ERROR([Unable to find libevent])])
+FB_CHECK_PKG_CONFIG([EVENT], [libevent])
AC_CHECK_LIB([jemalloc], [xallocx])
[Define to 1 if the linker supports weak symbols.])
fi
+
+# Figure out if we support wchar well
+AC_CACHE_CHECK(
+ [for wchar support],
+ [folly_cv_prog_cc_wchar_support],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE[
+ #include <cstddef>
+ #include <cwchar>
+
+ int main(int argc, char** argv) {
+ return wcstol(L"01", nullptr, 10) == 1 ? 0 : 1;
+ }
+ ]],
+ [folly_cv_prog_cc_wchar_support=yes],
+ [folly_cv_prog_cc_wchar_support=no])])
+
+if test "$folly_cv_prog_cc_wchar_support" = "yes"; then
+ AC_DEFINE([HAVE_WCHAR_SUPPORT], [1], [Define to 1 if the libc supports wchar well])
+fi
+
# Figure out whether the architecture supports unaligned accesses
AC_CACHE_CHECK(
[for unaligned access support],
malloc_size \
malloc_usable_size \
memrchr \
- pipe2])
+ pipe2 \
+ preadv \
+ pwritev \
+ ])
AC_CHECK_HEADER([lz4.h], AC_CHECK_LIB([lz4], [LZ4_decompress_safe]))
AC_CHECK_HEADER([snappy.h], AC_CHECK_LIB([snappy], [main]))
AM_CONDITIONAL([HAVE_EXTRANDOM_SFMT19937],
[test "$folly_cv_prog_cc_have_extrandom_sfmt19937" = "yes"])
AM_CONDITIONAL([FOLLY_TESTMAIN], [test "x${use_follytestmain}" = "xyes"])
+AM_CONDITIONAL([HAVE_BOOST_CONTEXT], [test "x${ax_cv_boost_context}" = "xyes"])
+
+# remove pkg-config deps from dependent libraries
+# (at least for pkg-config file purposes)
+FB_FILTER_PKG_LIBS([$AM_LDFLAGS $LIBS])
# Output
AC_CONFIG_FILES([Makefile
+ libfolly.pc
test/Makefile
test/function_benchmark/Makefile
experimental/Makefile