2014-03-30 12:09:21 +02:00
|
|
|
# nghttp2 - HTTP/2 C Library
|
2012-09-10 14:39:51 +02:00
|
|
|
|
|
|
|
# Copyright (c) 2012 Tatsuhiro Tsujikawa
|
|
|
|
|
|
|
|
# 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.
|
2014-09-21 11:28:06 +02:00
|
|
|
SUBDIRS = includes
|
2012-09-10 14:39:51 +02:00
|
|
|
|
2013-03-27 17:25:42 +01:00
|
|
|
bin_PROGRAMS =
|
|
|
|
check_PROGRAMS =
|
|
|
|
TESTS =
|
|
|
|
|
2014-12-01 15:06:11 +01:00
|
|
|
AM_CFLAGS = $(WARNCFLAGS)
|
2016-01-30 10:42:48 +01:00
|
|
|
AM_CXXFLAGS = $(WARNCXXFLAGS) $(CXX1XCXXFLAGS)
|
2014-01-10 13:53:48 +01:00
|
|
|
AM_CPPFLAGS = \
|
2015-03-30 16:20:40 +02:00
|
|
|
-DPKGDATADIR='"$(pkgdatadir)"' \
|
2014-01-10 13:53:48 +01:00
|
|
|
-I$(top_srcdir)/lib/includes \
|
|
|
|
-I$(top_builddir)/lib/includes \
|
|
|
|
-I$(top_srcdir)/lib \
|
2014-09-21 11:28:06 +02:00
|
|
|
-I$(top_srcdir)/src/includes \
|
2014-01-10 16:36:20 +01:00
|
|
|
-I$(top_srcdir)/third-party \
|
2013-08-06 14:24:34 +02:00
|
|
|
@LIBSPDYLAY_CFLAGS@ \
|
|
|
|
@XML_CPPFLAGS@ \
|
2014-12-27 18:59:06 +01:00
|
|
|
@LIBEV_CFLAGS@ \
|
2013-08-06 14:24:34 +02:00
|
|
|
@OPENSSL_CFLAGS@ \
|
2014-01-10 13:53:48 +01:00
|
|
|
@JANSSON_CFLAGS@ \
|
2014-05-06 16:10:50 +02:00
|
|
|
@ZLIB_CFLAGS@ \
|
2013-08-06 14:24:34 +02:00
|
|
|
@DEFS@
|
2015-01-24 16:58:30 +01:00
|
|
|
|
|
|
|
LDADD = $(top_builddir)/lib/libnghttp2.la \
|
|
|
|
$(top_builddir)/third-party/libhttp-parser.la \
|
2014-12-23 16:05:45 +01:00
|
|
|
@JEMALLOC_LIBS@ \
|
|
|
|
@LIBSPDYLAY_LIBS@ \
|
|
|
|
@XML_LIBS@ \
|
|
|
|
@LIBEV_LIBS@ \
|
|
|
|
@OPENSSL_LIBS@ \
|
|
|
|
@JANSSON_LIBS@ \
|
|
|
|
@ZLIB_LIBS@ \
|
|
|
|
@APPLDFLAGS@
|
2013-03-07 13:17:55 +01:00
|
|
|
|
2014-01-10 15:19:36 +01:00
|
|
|
if ENABLE_APP
|
|
|
|
|
2014-06-18 07:24:45 +02:00
|
|
|
bin_PROGRAMS += nghttp nghttpd nghttpx
|
2012-09-10 14:39:51 +02:00
|
|
|
|
2014-12-23 16:05:45 +01:00
|
|
|
HELPER_OBJECTS = util.cc \
|
2014-09-21 14:50:12 +02:00
|
|
|
http2.cc timegm.c app_helper.cc nghttp2_gzip.c
|
2014-12-23 16:05:45 +01:00
|
|
|
HELPER_HFILES = util.h \
|
2014-09-21 14:50:12 +02:00
|
|
|
http2.h timegm.h app_helper.h nghttp2_config.h \
|
2016-02-21 07:28:11 +01:00
|
|
|
nghttp2_gzip.h network.h
|
2012-09-10 14:39:51 +02:00
|
|
|
|
|
|
|
HTML_PARSER_OBJECTS =
|
|
|
|
HTML_PARSER_HFILES = HtmlParser.h
|
|
|
|
|
|
|
|
if HAVE_LIBXML2
|
|
|
|
HTML_PARSER_OBJECTS += HtmlParser.cc
|
|
|
|
endif # HAVE_LIBXML2
|
|
|
|
|
2015-01-10 08:44:09 +01:00
|
|
|
nghttp_SOURCES = ${HELPER_OBJECTS} ${HELPER_HFILES} nghttp.cc nghttp.h \
|
2014-12-12 17:37:57 +01:00
|
|
|
${HTML_PARSER_OBJECTS} ${HTML_PARSER_HFILES} \
|
|
|
|
ssl.cc ssl.h
|
2013-07-21 16:49:12 +02:00
|
|
|
|
2013-07-22 14:30:40 +02:00
|
|
|
nghttpd_SOURCES = ${HELPER_OBJECTS} ${HELPER_HFILES} nghttpd.cc \
|
2014-03-04 15:14:26 +01:00
|
|
|
ssl.cc ssl.h \
|
2015-02-06 15:40:34 +01:00
|
|
|
HttpServer.cc HttpServer.h
|
2013-07-22 14:30:40 +02:00
|
|
|
|
2014-06-18 07:24:45 +02:00
|
|
|
bin_PROGRAMS += h2load
|
|
|
|
|
2014-12-27 18:59:06 +01:00
|
|
|
h2load_SOURCES = util.cc util.h \
|
2014-09-21 14:50:12 +02:00
|
|
|
http2.cc http2.h h2load.cc h2load.h \
|
2014-04-06 10:35:00 +02:00
|
|
|
timegm.c timegm.h \
|
2014-03-04 13:29:42 +01:00
|
|
|
ssl.cc ssl.h \
|
2014-02-28 01:10:42 +01:00
|
|
|
h2load_session.h \
|
2015-09-14 15:33:48 +02:00
|
|
|
h2load_http2_session.cc h2load_http2_session.h \
|
|
|
|
h2load_http1_session.cc h2load_http1_session.h
|
2014-02-28 01:10:42 +01:00
|
|
|
|
|
|
|
if HAVE_SPDYLAY
|
|
|
|
h2load_SOURCES += h2load_spdy_session.cc h2load_spdy_session.h
|
|
|
|
endif # HAVE_SPDYLAY
|
|
|
|
|
2013-07-26 14:42:39 +02:00
|
|
|
NGHTTPX_SRCS = \
|
2013-08-27 19:47:22 +02:00
|
|
|
util.cc util.h http2.cc http2.h timegm.c timegm.h base64.h \
|
2014-02-09 10:47:26 +01:00
|
|
|
app_helper.cc app_helper.h \
|
2014-03-04 13:33:43 +01:00
|
|
|
ssl.cc ssl.h \
|
2013-07-26 12:33:25 +02:00
|
|
|
shrpx_config.cc shrpx_config.h \
|
|
|
|
shrpx_error.h \
|
2014-12-27 18:59:06 +01:00
|
|
|
shrpx_accept_handler.cc shrpx_accept_handler.h \
|
2015-01-08 13:48:39 +01:00
|
|
|
shrpx_connection_handler.cc shrpx_connection_handler.h \
|
2013-07-26 12:33:25 +02:00
|
|
|
shrpx_client_handler.cc shrpx_client_handler.h \
|
|
|
|
shrpx_upstream.h \
|
2013-07-26 12:38:54 +02:00
|
|
|
shrpx_http2_upstream.cc shrpx_http2_upstream.h \
|
2013-07-26 12:33:25 +02:00
|
|
|
shrpx_https_upstream.cc shrpx_https_upstream.h \
|
|
|
|
shrpx_downstream.cc shrpx_downstream.h \
|
|
|
|
shrpx_downstream_connection.cc shrpx_downstream_connection.h \
|
|
|
|
shrpx_http_downstream_connection.cc shrpx_http_downstream_connection.h \
|
2013-11-04 09:53:57 +01:00
|
|
|
shrpx_http2_downstream_connection.cc shrpx_http2_downstream_connection.h \
|
|
|
|
shrpx_http2_session.cc shrpx_http2_session.h \
|
2014-12-27 18:59:06 +01:00
|
|
|
shrpx_downstream_queue.cc shrpx_downstream_queue.h \
|
2013-07-26 12:33:25 +02:00
|
|
|
shrpx_log.cc shrpx_log.h \
|
|
|
|
shrpx_http.cc shrpx_http.h \
|
|
|
|
shrpx_io_control.cc shrpx_io_control.h \
|
|
|
|
shrpx_ssl.cc shrpx_ssl.h \
|
|
|
|
shrpx_worker.cc shrpx_worker.h \
|
2015-02-25 16:02:29 +01:00
|
|
|
shrpx_log_config.cc shrpx_log_config.h \
|
2014-10-13 14:09:00 +02:00
|
|
|
shrpx_connect_blocker.cc shrpx_connect_blocker.h \
|
2014-12-27 18:59:06 +01:00
|
|
|
shrpx_downstream_connection_pool.cc shrpx_downstream_connection_pool.h \
|
|
|
|
shrpx_rate_limit.cc shrpx_rate_limit.h \
|
2015-02-04 13:15:58 +01:00
|
|
|
shrpx_connection.cc shrpx_connection.h \
|
2015-07-25 15:22:17 +02:00
|
|
|
shrpx_memcached_dispatcher.cc shrpx_memcached_dispatcher.h \
|
|
|
|
shrpx_memcached_connection.cc shrpx_memcached_connection.h \
|
|
|
|
shrpx_memcached_request.h \
|
|
|
|
shrpx_memcached_result.h \
|
2015-09-17 18:16:49 +02:00
|
|
|
shrpx_worker_process.cc shrpx_worker_process.h \
|
|
|
|
shrpx_process.h \
|
2015-09-24 16:33:28 +02:00
|
|
|
shrpx_signal.cc shrpx_signal.h \
|
2015-09-25 19:38:45 +02:00
|
|
|
shrpx_router.cc shrpx_router.h \
|
2015-02-05 15:21:53 +01:00
|
|
|
buffer.h memchunk.h template.h
|
2013-07-26 12:33:25 +02:00
|
|
|
|
2013-07-26 13:12:55 +02:00
|
|
|
if HAVE_SPDYLAY
|
2013-07-26 14:42:39 +02:00
|
|
|
NGHTTPX_SRCS += shrpx_spdy_upstream.cc shrpx_spdy_upstream.h
|
2013-07-26 13:12:55 +02:00
|
|
|
endif # HAVE_SPDYLAY
|
|
|
|
|
2015-09-03 17:54:41 +02:00
|
|
|
if HAVE_MRUBY
|
|
|
|
NGHTTPX_SRCS += \
|
|
|
|
shrpx_mruby.cc shrpx_mruby.h \
|
|
|
|
shrpx_mruby_module.cc shrpx_mruby_module.h \
|
2015-09-04 16:56:07 +02:00
|
|
|
shrpx_mruby_module_env.cc shrpx_mruby_module_env.h \
|
2015-09-03 17:54:41 +02:00
|
|
|
shrpx_mruby_module_request.cc shrpx_mruby_module_request.h \
|
|
|
|
shrpx_mruby_module_response.cc shrpx_mruby_module_response.h
|
|
|
|
endif # HAVE_MRUBY
|
|
|
|
|
2013-09-08 08:52:41 +02:00
|
|
|
noinst_LIBRARIES = libnghttpx.a
|
|
|
|
libnghttpx_a_SOURCES = ${NGHTTPX_SRCS}
|
2015-09-05 11:03:05 +02:00
|
|
|
libnghttpx_a_CPPFLAGS = ${AM_CPPFLAGS}
|
2013-09-08 08:52:41 +02:00
|
|
|
|
|
|
|
nghttpx_SOURCES = shrpx.cc shrpx.h
|
2015-09-05 10:49:10 +02:00
|
|
|
nghttpx_CPPFLAGS = ${libnghttpx_a_CPPFLAGS}
|
2015-09-05 11:03:05 +02:00
|
|
|
nghttpx_LDADD = libnghttpx.a ${LDADD}
|
|
|
|
|
|
|
|
if HAVE_MRUBY
|
2015-09-05 11:22:46 +02:00
|
|
|
libnghttpx_a_CPPFLAGS += \
|
|
|
|
-I${top_srcdir}/third-party/mruby/include @LIBMRUBY_CFLAGS@
|
2015-09-05 11:03:05 +02:00
|
|
|
nghttpx_LDADD += -L${top_builddir}/third-party/mruby/build/lib @LIBMRUBY_LIBS@
|
|
|
|
endif # HAVE_MRUBY
|
2013-07-12 17:45:42 +02:00
|
|
|
|
2015-09-23 12:45:53 +02:00
|
|
|
if HAVE_NEVERBLEED
|
|
|
|
libnghttpx_a_CPPFLAGS += -I${top_srcdir}/third-party/neverbleed
|
|
|
|
nghttpx_LDADD += ${top_builddir}/third-party/libneverbleed.la
|
|
|
|
endif # HAVE_NEVERBLEED
|
|
|
|
|
2013-08-27 17:09:46 +02:00
|
|
|
if HAVE_CUNIT
|
|
|
|
check_PROGRAMS += nghttpx-unittest
|
|
|
|
nghttpx_unittest_SOURCES = shrpx-unittest.cc \
|
|
|
|
shrpx_ssl_test.cc shrpx_ssl_test.h \
|
|
|
|
shrpx_downstream_test.cc shrpx_downstream_test.h \
|
2014-01-06 08:06:02 +01:00
|
|
|
shrpx_config_test.cc shrpx_config_test.h \
|
2016-01-19 14:27:09 +01:00
|
|
|
shrpx_http_test.cc shrpx_http_test.h \
|
2013-08-27 19:47:22 +02:00
|
|
|
http2_test.cc http2_test.h \
|
2014-05-06 16:10:50 +02:00
|
|
|
util_test.cc util_test.h \
|
2014-05-06 16:42:11 +02:00
|
|
|
nghttp2_gzip_test.c nghttp2_gzip_test.h \
|
2014-12-23 16:05:45 +01:00
|
|
|
nghttp2_gzip.c nghttp2_gzip.h \
|
2015-01-29 14:47:37 +01:00
|
|
|
buffer_test.cc buffer_test.h \
|
2016-01-17 08:32:55 +01:00
|
|
|
memchunk_test.cc memchunk_test.h \
|
2016-01-26 02:39:18 +01:00
|
|
|
template_test.cc template_test.h \
|
|
|
|
base64_test.cc base64_test.h
|
2015-09-05 10:49:10 +02:00
|
|
|
nghttpx_unittest_CPPFLAGS = ${AM_CPPFLAGS} \
|
2015-01-24 16:58:30 +01:00
|
|
|
-DNGHTTP2_TESTS_DIR=\"$(top_srcdir)/tests\"
|
2015-09-05 11:03:05 +02:00
|
|
|
nghttpx_unittest_LDADD = libnghttpx.a ${LDADD} @CUNIT_LIBS@ @TESTLDADD@
|
|
|
|
|
|
|
|
if HAVE_MRUBY
|
|
|
|
nghttpx_unittest_CPPFLAGS += \
|
|
|
|
-I${top_srcdir}/third-party/mruby/include @LIBMRUBY_CFLAGS@
|
|
|
|
nghttpx_unittest_LDADD += \
|
|
|
|
-L${top_builddir}/third-party/mruby/build/lib @LIBMRUBY_LIBS@
|
|
|
|
endif # HAVE_MRUBY
|
2013-09-08 08:52:41 +02:00
|
|
|
|
2015-09-23 12:45:53 +02:00
|
|
|
if HAVE_NEVERBLEED
|
|
|
|
nghttpx_unittest_CPPFLAGS += -I${top_srcdir}/third-party/neverbleed
|
|
|
|
nghttpx_unittest_LDADD += ${top_builddir}/third-party/libneverbleed.la
|
|
|
|
endif # HAVE_NEVERBLEED
|
|
|
|
|
2013-08-27 17:09:46 +02:00
|
|
|
TESTS += nghttpx-unittest
|
|
|
|
endif # HAVE_CUNIT
|
2013-02-06 15:27:05 +01:00
|
|
|
|
2014-01-10 15:19:36 +01:00
|
|
|
endif # ENABLE_APP
|
|
|
|
|
2014-01-10 13:53:48 +01:00
|
|
|
if ENABLE_HPACK_TOOLS
|
|
|
|
|
|
|
|
bin_PROGRAMS += inflatehd deflatehd
|
|
|
|
|
|
|
|
HPACK_TOOLS_COMMON_SRCS = comp_helper.c comp_helper.h
|
|
|
|
|
2014-03-30 15:41:02 +02:00
|
|
|
inflatehd_SOURCES = inflatehd.cc $(HPACK_TOOLS_COMMON_SRCS)
|
2014-01-10 13:53:48 +01:00
|
|
|
|
2014-03-30 15:41:02 +02:00
|
|
|
deflatehd_SOURCES = deflatehd.cc $(HPACK_TOOLS_COMMON_SRCS)
|
2014-01-10 13:53:48 +01:00
|
|
|
|
|
|
|
endif # ENABLE_HPACK_TOOLS
|
2014-09-21 11:28:06 +02:00
|
|
|
|
|
|
|
if ENABLE_ASIO_LIB
|
|
|
|
|
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
|
|
pkgconfig_DATA = libnghttp2_asio.pc
|
|
|
|
DISTCLEANFILES = $(pkgconfig_DATA)
|
|
|
|
|
|
|
|
lib_LTLIBRARIES = libnghttp2_asio.la
|
|
|
|
|
|
|
|
libnghttp2_asio_la_SOURCES = \
|
|
|
|
util.cc util.h http2.cc http2.h \
|
2015-03-01 02:02:49 +01:00
|
|
|
ssl.cc ssl.h \
|
2015-07-16 07:01:18 +02:00
|
|
|
timegm.c timegm.h \
|
2015-03-01 02:02:49 +01:00
|
|
|
asio_common.cc asio_common.h \
|
2015-03-05 13:42:48 +01:00
|
|
|
asio_io_service_pool.cc asio_io_service_pool.h \
|
2015-03-05 17:58:56 +01:00
|
|
|
asio_server_http2.cc \
|
2015-03-05 13:42:48 +01:00
|
|
|
asio_server_http2_impl.cc asio_server_http2_impl.h \
|
|
|
|
asio_server.cc asio_server.h \
|
|
|
|
asio_server_http2_handler.cc asio_server_http2_handler.h \
|
|
|
|
asio_server_connection.h \
|
|
|
|
asio_server_request.cc \
|
|
|
|
asio_server_request_impl.cc asio_server_request_impl.h \
|
|
|
|
asio_server_response.cc \
|
|
|
|
asio_server_response_impl.cc asio_server_response_impl.h \
|
|
|
|
asio_server_stream.cc asio_server_stream.h \
|
2015-03-04 17:52:12 +01:00
|
|
|
asio_server_serve_mux.cc asio_server_serve_mux.h \
|
2015-03-05 15:32:21 +01:00
|
|
|
asio_server_request_handler.cc asio_server_request_handler.h \
|
2015-03-06 15:20:08 +01:00
|
|
|
asio_server_tls_context.cc asio_server_tls_context.h \
|
2015-03-01 02:02:49 +01:00
|
|
|
asio_client_session.cc \
|
|
|
|
asio_client_session_impl.cc asio_client_session_impl.h \
|
|
|
|
asio_client_session_tcp_impl.cc asio_client_session_tcp_impl.h \
|
|
|
|
asio_client_session_tls_impl.cc asio_client_session_tls_impl.h \
|
|
|
|
asio_client_response.cc \
|
|
|
|
asio_client_response_impl.cc asio_client_response_impl.h \
|
|
|
|
asio_client_request.cc \
|
|
|
|
asio_client_request_impl.cc asio_client_request_impl.h \
|
|
|
|
asio_client_stream.cc asio_client_stream.h \
|
|
|
|
asio_client_tls_context.cc asio_client_tls_context.h
|
2014-09-21 11:28:06 +02:00
|
|
|
|
2015-01-24 16:58:30 +01:00
|
|
|
libnghttp2_asio_la_CPPFLAGS = ${AM_CPPFLAGS} ${BOOST_CPPFLAGS}
|
2015-03-14 10:20:00 +01:00
|
|
|
libnghttp2_asio_la_LDFLAGS = -no-undefined -version-info 1:0:0
|
2015-01-24 16:58:30 +01:00
|
|
|
libnghttp2_asio_la_LIBADD = \
|
|
|
|
$(top_builddir)/lib/libnghttp2.la \
|
2015-03-07 07:48:38 +01:00
|
|
|
$(top_builddir)/third-party/libhttp-parser.la \
|
2015-07-11 12:37:04 +02:00
|
|
|
@OPENSSL_LIBS@ \
|
2014-09-21 11:28:06 +02:00
|
|
|
${BOOST_LDFLAGS} \
|
|
|
|
${BOOST_ASIO_LIB} \
|
|
|
|
${BOOST_THREAD_LIB} \
|
2015-07-11 12:37:04 +02:00
|
|
|
${BOOST_SYSTEM_LIB}
|
2014-09-21 11:28:06 +02:00
|
|
|
|
|
|
|
endif # ENABLE_ASIO_LIB
|