2016-02-11 13:46:59 +01:00
# nghttp2 - HTTP/2 C Library
#
# Copyright (c) 2012, 2013, 2014, 2015 Tatsuhiro Tsujikawa
# Copyright (c) 2016 Peter Wu <peter@lekensteyn.nl>
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
cmake_minimum_required ( VERSION 3.0 )
# XXX using 1.7.90 instead of 1.8.0-DEV
project ( nghttp2 VERSION 1.7.90 )
set ( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" )
include ( Version )
set ( PACKAGE_VERSION "${PROJECT_VERSION}" )
HexVersion ( PACKAGE_VERSION_NUM ${ PROJECT_VERSION_MAJOR } ${ PROJECT_VERSION_MINOR } ${ PROJECT_VERSION_PATCH } )
option ( ENABLE_WERROR "Turn on compile time warnings" )
option ( ENABLE_DEBUG "Turn on debug output" )
option ( ENABLE_THREADS "Turn on threading in apps" ON )
option ( ENABLE_APP "Build applications (nghttp, nghttpd, nghttpx and h2load)"
c h e c k )
option ( ENABLE_HPACK_TOOLS "Build HPACK tools" check )
option ( ENABLE_ASIO_LIB "Build C++ libnghttp2_asio library" )
option ( ENABLE_EXAMPLES "Build examples" check )
option ( ENABLE_PYTHON_BINDINGS "Build Python bindings" check )
option ( ENABLE_FAILMALLOC "Build failmalloc test program" ON )
option ( ENABLE_LIB_ONLY "Build libnghttp2 only. This is a short hand for -DENABLE_APP=0 -DENABLE_EXAMPLES=0 -DENABLE_HPACK_TOOLS=0 -DENABLE_PYTHON_BINDINGS=0" )
option ( WITH_LIBXML2 "Use libxml2" check )
option ( WITH_JEMALLOC "Use jemalloc" check )
option ( WITH_SPDYLAY "Use spdylay" check )
option ( WITH_MRUBY "Use mruby" )
option ( WITH_NEVERBLEED "Use neverbleed" )
set ( CYTHON_PATH "" CACHE PATH "Use cython in given path" )
set ( CYTHON "" CACHE FILEPATH "The Cython executable" )
find_package ( PkgConfig 0.20 )
# XXX fail only when "ON" instead of "CHECK"?
if ( ENABLE_PYTHON_BINDINGS )
find_package ( PythonInterp REQUIRED )
endif ( )
# AM_PATH_PYTHON([2.7],, [:])
if ( ENABLE_LIB_ONLY )
set ( ENABLE_APP OFF )
set ( ENABLE_HPACK_TOOLS OFF )
set ( ENABLE_EXAMPLES OFF )
set ( ENABLE_PYTHON_BINDINGS OFF )
endif ( )
if ( ENABLE_PYTHON_BINDINGS )
find_package ( PythonLibs 2.7 REQUIRED )
# XXX find cython
endif ( )
# if [test "x$request_python_bindings" != "xno"]; then
# AX_PYTHON_DEVEL([>= '2.7'])
# fi
#
# if test "x${cython_path}" = "x"; then
# AC_CHECK_PROGS([CYTHON], [cython.py cython])
# else
# CYTHON=${cython_path}
# AC_SUBST([CYTHON])
# fi
#
# If we're running GCC or clang define _U_ to be "__attribute__((unused))"
# so we can use _U_ to flag unused function parameters and not get warnings
# about them. Otherwise, define _U_ to be an empty string so that _U_ used
# to flag an unused function parameters will compile with other compilers.
#
# XXX - similar hints for other compilers?
#
if ( CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang" )
add_definitions (
" - D _ U _ = __attribute__ ( ( unused ) ) "
" - D N G H T T P 2 _ N O R E T U R N = __attribute__ ( ( noreturn ) ) "
)
else ( )
add_definitions ( -D_U_ -DNGHTTP2_NORETURN )
endif ( )
include ( CheckCXXCompilerFlag )
2016-02-11 15:49:39 +01:00
foreach ( _std gnu++11 gnu++0x )
set ( _cxx1x_flag -std= ${ _std } )
CHECK_CXX_COMPILER_FLAG ( ${ _cxx1x_flag } CXX_STD_ ${ _std } )
if ( CXX_STD_ ${ _std } )
2016-02-11 13:46:59 +01:00
set ( CXX1XCXXFLAGS ${ _cxx1x_flag } )
break ( )
endif ( )
endforeach ( )
include ( CMakePushCheckState )
include ( CheckCXXSourceCompiles )
cmake_push_check_state ( )
set ( CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} ${CXX1XCXXFLAGS}" )
# Check that std::future is available.
CHECK_CXX_SOURCE_COMPILES ( "
#include <vector>
#include <future>
i n t main ( ) { s t d : : v e c t o r < s t d : : f u t u r e < i n t > > v ; } " H A V E _ S T D _ F U T U R E )
# Check that std::map::emplace is available for g++-4.7.
CHECK_CXX_SOURCE_COMPILES ( "
#include <map>
i n t main ( ) { s t d : : m a p < i n t , i n t > ( ) . emplace ( 1, 2 ) ; } " H A V E _ S T D _ M A P _ E M P L A C E )
cmake_pop_check_state ( )
# Checks for libraries.
#
# # Additional libraries required for tests.
# TESTLDADD=
#
# # Additional libraries required for programs under src directory.
# APPLDFLAGS=
#
# case "$host" in
# *android*)
# android_build=yes
# # android does not need -pthread, but needs followng 3 libs for C++
# APPLDFLAGS="$APPLDFLAGS -lstdc++ -latomic -lsupc++"
# ;;
# *)
# PTHREAD_LDFLAGS="-pthread"
# APPLDFLAGS="$APPLDFLAGS $PTHREAD_LDFLAGS"
# ;;
# esac
pkg_check_modules ( ZLIB zlib>=1.2.3 )
# # dl: openssl requires libdl when it is statically linked.
# case "${host_os}" in
# *bsd*)
# # dlopen is in libc on *BSD
# ;;
# *)
# save_LIBS=$LIBS
# AC_SEARCH_LIBS([dlopen], [dl], [APPLDFLAGS="-ldl $APPLDFLAGS"], [], [])
# LIBS=$save_LIBS
# ;;
# esac
# XXX put this in FindCUNIT.cmake
pkg_check_modules ( CUNIT cunit>=2.1 )
# # If pkg-config does not find cunit, check it using AC_CHECK_LIB. We
# # do this because Debian (Ubuntu) lacks pkg-config file for cunit.
# if test "x${have_cunit}" = "xno"; then
# AC_MSG_WARN([${CUNIT_PKG_ERRORS}])
# AC_CHECK_LIB([cunit], [CU_initialize_registry],
# [have_cunit=yes], [have_cunit=no])
# if test "x${have_cunit}" = "xyes"; then
# CUNIT_LIBS="-lcunit"
# CUNIT_CFLAGS=""
# AC_SUBST([CUNIT_LIBS])
# AC_SUBST([CUNIT_CFLAGS])
# fi
# fi
# if test "x${have_cunit}" = "xyes"; then
# # cunit in Mac OS X requires ncurses. Note that in Mac OS X, test
# # program can be built without -lncurses, but it emits runtime
# # error.
# case "${build}" in
# *-apple-darwin*)
# CUNIT_LIBS="$CUNIT_LIBS -lncurses"
# AC_SUBST([CUNIT_LIBS])
# ;;
# esac
# fi
#
# AM_CONDITIONAL([HAVE_CUNIT], [ test "x${have_cunit}" = "xyes" ])
2016-02-11 15:49:39 +01:00
# libev (for src)
find_package ( Libev )
2016-02-11 13:46:59 +01:00
# openssl (for src)
pkg_check_modules ( OPENSSL openssl>=1.0.1 )
# libevent_openssl (for examples)
# 2.0.8 is required because we use evconnlistener_set_error_cb()
pkg_check_modules ( LIBEVENT_OPENSSL libevent_openssl>=2.0.8 )
# jansson (for src/nghttp, src/deflatehd and src/inflatehd)
pkg_check_modules ( JANSSON jansson>=2.5 )
if ( JANSSON_FOUND )
set ( HAVE_JANSSON 1 )
endif ( )
# libxml2 (for src/nghttp)
if ( WITH_LIBXML2 )
find_package ( LibXml2 2.7.7 REQUIRED )
set ( HAVE_LIBXML2 1 )
# XXX fail if WITH_LIBXML2=ON
endif ( )
# jemalloc
if ( WITH_JEMALLOC )
2016-02-11 15:49:39 +01:00
pkg_check_modules ( JEMALLOC jemalloc )
if ( NOT JEMALLOC_FOUND )
find_package ( jemalloc REQUIRED )
endif ( )
2016-02-11 13:46:59 +01:00
endif ( )
# spdylay (for src/nghttpx and src/h2load)
if ( WITH_SPDYLAY )
pkg_check_modules ( LIBSPDYLAY libspdylay>=1.3.2 )
if ( LIBSPDYLAY_FOUND )
set ( HAVE_SPDYLAY 1 )
else ( )
message ( STATUS "The SPDY support in nghttpx and h2load will be disabled." )
endif ( )
# XXX fail if WITH_SPDYLAY=ON
endif ( )
2016-02-11 15:49:39 +01:00
if ( ENABLE_ASIO_LIB )
find_package ( Boost 1.54.0 REQUIRED system thread )
endif ( )
# The nghttp, nghttpd and nghttpx under src depend on zlib, OpenSSL and libev
if ( ENABLE_APP AND NOT ( ZLIB_FOUND AND OPENSSL_FOUND AND LIBEV_FOUND ) )
message ( FATAL_ERROR "Applications were requested (ENABLE_APP=1) but dependencies are not met." )
endif ( )
# HPACK tools requires jansson
if ( ENABLE_HPACK_TOOLS AND NOT HAVE_JANSSON )
message ( FATAL_ERROR "HPACK tools were requested (ENABLE_HPACK_TOOLS=1) but dependencies are not met." )
endif ( )
# C++ library libnghttp2_asio
if ( ENABLE_EXAMPLES AND NOT ( OPENSSL_FOUND AND LIBEVENT_OPENSSL_FOUND ) )
message ( FATAL_ERROR "examples were requested (--enable-examples) but dependencies are not met." )
endif ( )
# third-party http-parser only be built when needed
if ( ENABLE_EXAMPLES OR ENABLE_APP OR ENABLE_HPACK_TOOLS OR ENABLE_ASIO_LIB )
set ( ENABLE_THIRD_PARTY 1 )
# mruby (for src/nghttpx)
if ( WITH_MRUBY )
set ( HAVE_MRUBY 1 )
# XXX add -lmruby and -lm libs
endif ( )
if ( WITH_NEVERBLEED )
set ( HAVE_NEVERBLEED 1 )
endif ( )
endif ( )
# Python bindings
if ( ENABLE_PYTHON_BINDINGS AND NOT CYTHON AND NOT PYTHONLIBS_FOUND )
# XXX PythonInterp and PythonLibs are looked up before, unreachable check?
2016-02-11 13:46:59 +01:00
# if test "x${request_python_bindings}" != "xno" &&
# test "x${CYTHON}" != "x" &&
# test "x${PYTHON}" != "x:" &&
# test "x${have_python_dev}" = "xyes"; then
2016-02-11 15:49:39 +01:00
message ( FATAL_ERROR "python bindings were requested (ENABLE_PYTHON_BINDINGS=1) but dependencies are not met." )
endif ( )
2016-02-11 16:08:07 +01:00
# Checks for header files.
# XXX AC_HEADER_ASSERT adds --disable-assert which sets -DNDEBUG
check_include_file ( "arpa/inet.h" HAVE_ARPA_INET_H )
check_include_file ( "fcntl.h" HAVE_FCNTL_H )
check_include_file ( "inttypes.h" HAVE_INTTYPES_H )
check_include_file ( "limits.h" HAVE_LIMITS_H )
check_include_file ( "netdb.h" HAVE_NETDB_H )
check_include_file ( "netinet/in.h" HAVE_NETINET_IN_H )
check_include_file ( "pwd.h" HAVE_PWD_H )
check_include_file ( "stddef.h" HAVE_STDDEF_H )
check_include_file ( "stdint.h" HAVE_STDINT_H )
check_include_file ( "stdlib.h" HAVE_STDLIB_H )
check_include_file ( "string.h" HAVE_STRING_H )
check_include_file ( "sys/socket.h" HAVE_SYS_SOCKET_H )
check_include_file ( "sys/time.h" HAVE_SYS_TIME_H )
check_include_file ( "syslog.h" HAVE_SYSLOG_H )
check_include_file ( "time.h" HAVE_TIME_H )
check_include_file ( "unistd.h" HAVE_UNISTD_H )
# Checks for typedefs, structures, and compiler characteristics.
2016-02-11 13:46:59 +01:00
# AC_TYPE_SIZE_T
# AC_TYPE_SSIZE_T
# AC_TYPE_UINT8_T
# AC_TYPE_UINT16_T
# AC_TYPE_UINT32_T
# AC_TYPE_UINT64_T
# AC_TYPE_INT8_T
# AC_TYPE_INT16_T
# AC_TYPE_INT32_T
# AC_TYPE_INT64_T
# AC_TYPE_OFF_T
# AC_TYPE_PID_T
# AC_TYPE_UID_T
# AC_CHECK_TYPES([ptrdiff_t])
# AC_C_BIGENDIAN
# AC_C_INLINE
# AC_SYS_LARGEFILE
2016-02-11 16:08:07 +01:00
include ( CheckStructHasMember )
CHECK_STRUCT_HAS_MEMBER ( "struct tm" tm_gmtoff time.h HAVE_STRUCT_TM_TM_GMTOFF )
# Check size of pointer to decide we need 8 bytes alignment adjustment.
include ( CheckTypeSize )
check_type_size ( "int *" SIZEOF_INT_P )
check_type_size ( "time_t" SIZEOF_TIME_T )
2016-02-11 13:46:59 +01:00
# # Checks for library functions.
#
# # Don't check malloc, since it does not play nicely with C++ stdlib
# # AC_FUNC_MALLOC
#
# AC_FUNC_CHOWN
# AC_FUNC_ERROR_AT_LINE
# AC_FUNC_FORK
# # Don't check realloc, since LeakSanitizer detects memory leak during check
# # AC_FUNC_REALLOC
# AC_FUNC_STRERROR_R
# AC_FUNC_STRNLEN
#
# AC_CHECK_FUNCS([ \
# _Exit \
# accept4 \
# dup2 \
# getcwd \
# getpwnam \
# localtime_r \
# memchr \
# memmove \
# memset \
# socket \
# sqrt \
# strchr \
# strdup \
# strerror \
# strndup \
# strstr \
# strtol \
# strtoul \
# timegm \
# ])
#
# # timerfd_create was added in linux kernel 2.6.25
#
# AC_CHECK_FUNC([timerfd_create],
# [have_timerfd_create=yes], [have_timerfd_create=no])
#
# # For cygwin: we can link initgroups, so AC_CHECK_FUNCS succeeds, but
# # cygwin disables initgroups due to feature test macro magic with our
# # configuration.
# AC_CHECK_DECLS([initgroups], [], [], [[#include <grp.h>]])
#
# # Checks for epoll availability, primarily for examples/tiny-nghttpd
# AX_HAVE_EPOLL([have_epoll=yes], [have_epoll=no])
#
# AM_CONDITIONAL([ENABLE_TINY_NGHTTPD],
# [ test "x${have_epoll}" = "xyes" &&
# test "x${have_timerfd_create}" = "xyes"])
#
# save_CFLAGS=$CFLAGS
# save_CXXFLAGS=$CXXFLAGS
#
# CFLAGS=
# CXXFLAGS=
#
# if test "x$werror" != "xno"; then
# # For C compiler
# AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"])
# AX_CHECK_COMPILE_FLAG([-Wextra], [CFLAGS="$CFLAGS -Wextra"])
# AX_CHECK_COMPILE_FLAG([-Werror], [CFLAGS="$CFLAGS -Werror"])
# AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [CFLAGS="$CFLAGS -Wmissing-prototypes"])
# AX_CHECK_COMPILE_FLAG([-Wstrict-prototypes], [CFLAGS="$CFLAGS -Wstrict-prototypes"])
# AX_CHECK_COMPILE_FLAG([-Wmissing-declarations], [CFLAGS="$CFLAGS -Wmissing-declarations"])
# AX_CHECK_COMPILE_FLAG([-Wpointer-arith], [CFLAGS="$CFLAGS -Wpointer-arith"])
# AX_CHECK_COMPILE_FLAG([-Wdeclaration-after-statement], [CFLAGS="$CFLAGS -Wdeclaration-after-statement"])
# AX_CHECK_COMPILE_FLAG([-Wformat-security], [CFLAGS="$CFLAGS -Wformat-security"])
# AX_CHECK_COMPILE_FLAG([-Wwrite-strings], [CFLAGS="$CFLAGS -Wwrite-strings"])
# AX_CHECK_COMPILE_FLAG([-Wshadow], [CFLAGS="$CFLAGS -Wshadow"])
# AX_CHECK_COMPILE_FLAG([-Winline], [CFLAGS="$CFLAGS -Winline"])
# AX_CHECK_COMPILE_FLAG([-Wnested-externs], [CFLAGS="$CFLAGS -Wnested-externs"])
# AX_CHECK_COMPILE_FLAG([-Wfloat-equal], [CFLAGS="$CFLAGS -Wfloat-equal"])
# AX_CHECK_COMPILE_FLAG([-Wundef], [CFLAGS="$CFLAGS -Wundef"])
# AX_CHECK_COMPILE_FLAG([-Wendif-labels], [CFLAGS="$CFLAGS -Wendif-labels"])
# AX_CHECK_COMPILE_FLAG([-Wempty-body], [CFLAGS="$CFLAGS -Wempty-body"])
# AX_CHECK_COMPILE_FLAG([-Wcast-align], [CFLAGS="$CFLAGS -Wcast-align"])
# AX_CHECK_COMPILE_FLAG([-Wclobbered], [CFLAGS="$CFLAGS -Wclobbered"])
# AX_CHECK_COMPILE_FLAG([-Wvla], [CFLAGS="$CFLAGS -Wvla"])
# AX_CHECK_COMPILE_FLAG([-Wpragmas], [CFLAGS="$CFLAGS -Wpragmas"])
# AX_CHECK_COMPILE_FLAG([-Wunreachable-code], [CFLAGS="$CFLAGS -Wunreachable-code"])
# AX_CHECK_COMPILE_FLAG([-Waddress], [CFLAGS="$CFLAGS -Waddress"])
# AX_CHECK_COMPILE_FLAG([-Wattributes], [CFLAGS="$CFLAGS -Wattributes"])
# AX_CHECK_COMPILE_FLAG([-Wdiv-by-zero], [CFLAGS="$CFLAGS -Wdiv-by-zero"])
# AX_CHECK_COMPILE_FLAG([-Wshorten-64-to-32], [CFLAGS="$CFLAGS -Wshorten-64-to-32"])
#
# AX_CHECK_COMPILE_FLAG([-Wconversion], [CFLAGS="$CFLAGS -Wconversion"])
# AX_CHECK_COMPILE_FLAG([-Wextended-offsetof], [CFLAGS="$CFLAGS -Wextended-offsetof"])
# AX_CHECK_COMPILE_FLAG([-Wformat-nonliteral], [CFLAGS="$CFLAGS -Wformat-nonliteral"])
# AX_CHECK_COMPILE_FLAG([-Wlanguage-extension-token], [CFLAGS="$CFLAGS -Wlanguage-extension-token"])
# AX_CHECK_COMPILE_FLAG([-Wmissing-field-initializers], [CFLAGS="$CFLAGS -Wmissing-field-initializers"])
# AX_CHECK_COMPILE_FLAG([-Wmissing-noreturn], [CFLAGS="$CFLAGS -Wmissing-noreturn"])
# AX_CHECK_COMPILE_FLAG([-Wmissing-variable-declarations], [CFLAGS="$CFLAGS -Wmissing-variable-declarations"])
# # Not used because we cannot change public structs
# # AX_CHECK_COMPILE_FLAG([-Wpadded], [CFLAGS="$CFLAGS -Wpadded"])
# AX_CHECK_COMPILE_FLAG([-Wsign-conversion], [CFLAGS="$CFLAGS -Wsign-conversion"])
# # Not used because this basically disallows default case
# # AX_CHECK_COMPILE_FLAG([-Wswitch-enum], [CFLAGS="$CFLAGS -Wswitch-enum"])
# AX_CHECK_COMPILE_FLAG([-Wunreachable-code-break], [CFLAGS="$CFLAGS -Wunreachable-code-break"])
# AX_CHECK_COMPILE_FLAG([-Wunused-macros], [CFLAGS="$CFLAGS -Wunused-macros"])
# AX_CHECK_COMPILE_FLAG([-Wunused-parameter], [CFLAGS="$CFLAGS -Wunused-parameter"])
# AX_CHECK_COMPILE_FLAG([-Wredundant-decls], [CFLAGS="$CFLAGS -Wredundant-decls"])
# # Only work with Clang for the moment
# AX_CHECK_COMPILE_FLAG([-Wheader-guard], [CFLAGS="$CFLAGS -Wheader-guard"])
#
# # For C++ compiler
# AC_LANG_PUSH(C++)
# AX_CHECK_COMPILE_FLAG([-Wall], [CXXFLAGS="$CXXFLAGS -Wall"])
# AX_CHECK_COMPILE_FLAG([-Werror], [CXXFLAGS="$CXXFLAGS -Werror"])
# AX_CHECK_COMPILE_FLAG([-Wformat-security], [CXXFLAGS="$CXXFLAGS -Wformat-security"])
# AC_LANG_POP()
# fi
#
# WARNCFLAGS=$CFLAGS
# WARNCXXFLAGS=$CXXFLAGS
#
# CFLAGS=$save_CFLAGS
# CXXFLAGS=$save_CXXFLAGS
#
# AC_SUBST([WARNCFLAGS])
# AC_SUBST([WARNCXXFLAGS])
#
# EXTRACFLAG=
# AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [EXTRACFLAG="-fvisibility=hidden"])
#
# AC_SUBST([EXTRACFLAG])
#
# if test "x$debug" != "xno"; then
# AC_DEFINE([DEBUGBUILD], [1], [Define to 1 to enable debug output.])
# fi
#
# enable_threads=yes
# # Some platform does not have working std::future. We disable
# # threading for those platforms.
# if test "x$threads" != "xyes" ||
# test "x$have_std_future" != "xyes"; then
# enable_threads=no
# AC_DEFINE([NOTHREADS], [1], [Define to 1 if you want to disable threads.])
# fi
#
# # propagate $enable_static to tests/Makefile.am
# AM_CONDITIONAL([ENABLE_STATIC], [test "x$enable_static" = "xyes"])
#
# AC_SUBST([TESTLDADD])
# AC_SUBST([APPLDFLAGS])
#
# AC_CONFIG_FILES([
# Makefile
# lib/Makefile
# lib/libnghttp2.pc
# lib/includes/Makefile
# lib/includes/nghttp2/nghttp2ver.h
# tests/Makefile
# tests/testdata/Makefile
# third-party/Makefile
# src/Makefile
# src/includes/Makefile
# src/libnghttp2_asio.pc
# examples/Makefile
# python/Makefile
# python/setup.py
# integration-tests/Makefile
# integration-tests/config.go
# integration-tests/setenv
# doc/Makefile
# doc/conf.py
# doc/index.rst
# doc/package_README.rst
# doc/tutorial-client.rst
# doc/tutorial-server.rst
# doc/tutorial-hpack.rst
# doc/nghttpx-howto.rst
# doc/h2load-howto.rst
# doc/libnghttp2_asio.rst
# doc/python-apiref.rst
# doc/building-android-binary.rst
# doc/nghttp2.h.rst
# doc/nghttp2ver.h.rst
# doc/asio_http2.h.rst
# doc/asio_http2_server.h.rst
# doc/asio_http2_client.h.rst
# doc/contribute.rst
# contrib/Makefile
# script/Makefile
# ])
# AC_OUTPUT
#
# AC_MSG_NOTICE([summary of build options:
#
# Package version: ${VERSION}
# Library version: $LT_CURRENT:$LT_REVISION:$LT_AGE
# Install prefix: ${prefix}
# System types:
# Build: ${build}
# Host: ${host}
# Target: ${target}
# Compiler:
# C compiler: ${CC}
# CFLAGS: ${CFLAGS}
# LDFLAGS: ${LDFLAGS}
# C++ compiler: ${CXX}
# CXXFLAGS: ${CXXFLAGS}
# CXXCPP: ${CXXCPP}
# C preprocessor: ${CPP}
# CPPFLAGS: ${CPPFLAGS}
# WARNCFLAGS: ${WARNCFLAGS}
# CXX1XCXXFLAGS: ${CXX1XCXXFLAGS}
# EXTRACFLAG: ${EXTRACFLAG}
# LIBS: ${LIBS}
# Library:
# Shared: ${enable_shared}
# Static: ${enable_static}
# Python:
# Python: ${PYTHON}
# PYTHON_VERSION: ${PYTHON_VERSION}
# pyexecdir: ${pyexecdir}
# Python-dev: ${have_python_dev}
# PYTHON_CPPFLAGS:${PYTHON_CPPFLAGS}
# PYTHON_LDFLAGS: ${PYTHON_LDFLAGS}
# Cython: ${CYTHON}
# Test:
# CUnit: ${have_cunit} (CFLAGS='${CUNIT_CFLAGS}' LIBS='${CUNIT_LIBS}')
# Failmalloc: ${enable_failmalloc}
# Libs:
# OpenSSL: ${have_openssl} (CFLAGS='${OPENSSL_CFLAGS}' LIBS='${OPENSSL_LIBS}')
# Libxml2: ${have_libxml2} (CFLAGS='${XML_CPPFLAGS}' LIBS='${XML_LIBS}')
# Libev: ${have_libev} (CFLAGS='${LIBEV_CFLAGS}' LIBS='${LIBEV_LIBS}')
# Libevent(SSL): ${have_libevent_openssl} (CFLAGS='${LIBEVENT_OPENSSL_CFLAGS}' LIBS='${LIBEVENT_OPENSSL_LIBS}')
# Spdylay: ${have_spdylay} (CFLAGS='${LIBSPDYLAY_CFLAGS}' LIBS='${LIBSPDYLAY_LIBS}')
# Jansson: ${have_jansson} (CFLAGS='${JANSSON_CFLAGS}' LIBS='${JANSSON_LIBS}')
# Jemalloc: ${have_jemalloc} (LIBS='${JEMALLOC_LIBS}')
# Zlib: ${have_zlib} (CFLAGS='${ZLIB_CFLAGS}' LIBS='${ZLIB_LIBS}')
# Boost CPPFLAGS: ${BOOST_CPPFLAGS}
# Boost LDFLAGS: ${BOOST_LDFLAGS}
# Boost::ASIO: ${BOOST_ASIO_LIB}
# Boost::System: ${BOOST_SYSTEM_LIB}
# Boost::Thread: ${BOOST_THREAD_LIB}
# Third-party:
# http-parser: ${enable_third_party}
# MRuby: ${have_mruby} (CFLAGS='${LIBMRUBY_CFLAGS}' LIBS='${LIBMRUBY_LIBS}')
# Neverbleed: ${have_neverbleed}
# Features:
# Applications: ${enable_app}
# HPACK tools: ${enable_hpack_tools}
# Libnghttp2_asio:${enable_asio_lib}
# Examples: ${enable_examples}
# Python bindings:${enable_python_bindings}
# Threading: ${enable_threads}
# ])