diff --git a/configure.ac b/configure.ac index 1b970952..806eeca7 100644 --- a/configure.ac +++ b/configure.ac @@ -137,12 +137,13 @@ fi AX_CXX_COMPILE_STDCXX_11([noext], [optional]) +AC_LANG_PUSH(C++) + # Check that std::chrono::steady_clock is available. In particular, # gcc 4.6 does not have one, but has monotonic_clock which is the old # name existed in the pre-standard draft. If steady_clock is not # available, don't define HAVE_STEADY_CLOCK and replace steady_clock # with monotonic_clock. -AC_LANG_PUSH(C++) AC_MSG_CHECKING([whether std::chrono::steady_clock is available]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[ @@ -155,6 +156,24 @@ auto tp = std::chrono::steady_clock::now(); [Define to 1 if you have the `std::chrono::steady_clock`.]) AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) + +# Check that std::future is available. +AC_MSG_CHECKING([whether std::future is available]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM( +[[ +#include +#include +]], +[[ +std::vector> v; +]])], + [AC_DEFINE([HAVE_STD_FUTURE], [1], + [Define to 1 if you have the `std::future`.]) + have_std_future=yes + AC_MSG_RESULT([yes])], + [have_std_future=no + AC_MSG_RESULT([no])]) + AC_LANG_POP() # Checks for libraries. @@ -324,6 +343,7 @@ if test "x${request_app}" = "xyes" && fi AM_CONDITIONAL([ENABLE_APP], [ test "x${enable_app}" = "xyes" ]) +AM_CONDITIONAL([ENABLE_H2LOAD], [ test "x${have_std_future}" = "xyes" ]) enable_hpack_tools=no # HPACK tools requires jansson diff --git a/src/Makefile.am b/src/Makefile.am index bd62a6fd..97488022 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -54,7 +54,7 @@ LDADD = \ if ENABLE_APP -bin_PROGRAMS += nghttp nghttpd nghttpx h2load +bin_PROGRAMS += nghttp nghttpd nghttpx HELPER_OBJECTS = util.cc http2.cc timegm.c app_helper.cc nghttp2_gzip.c HELPER_HFILES = util.h http2.h timegm.h app_helper.h nghttp2_config.h \ @@ -74,6 +74,10 @@ nghttpd_SOURCES = ${HELPER_OBJECTS} ${HELPER_HFILES} nghttpd.cc \ ssl.cc ssl.h \ HttpServer.cc HttpServer.h +if ENABLE_H2LOAD + +bin_PROGRAMS += h2load + h2load_SOURCES = util.cc util.h http2.cc http2.h h2load.cc h2load.h \ timegm.c timegm.h \ ssl.cc ssl.h \ @@ -84,6 +88,8 @@ if HAVE_SPDYLAY h2load_SOURCES += h2load_spdy_session.cc h2load_spdy_session.h endif # HAVE_SPDYLAY +endif # ENABLE_H2LOAD + NGHTTPX_SRCS = \ util.cc util.h http2.cc http2.h timegm.c timegm.h base64.h \ app_helper.cc app_helper.h \