12c593315Sopenharmony_ci# nghttp2 - HTTP/2 C Library 22c593315Sopenharmony_ci 32c593315Sopenharmony_ci# Copyright (c) 2012 Tatsuhiro Tsujikawa 42c593315Sopenharmony_ci 52c593315Sopenharmony_ci# Permission is hereby granted, free of charge, to any person obtaining 62c593315Sopenharmony_ci# a copy of this software and associated documentation files (the 72c593315Sopenharmony_ci# "Software"), to deal in the Software without restriction, including 82c593315Sopenharmony_ci# without limitation the rights to use, copy, modify, merge, publish, 92c593315Sopenharmony_ci# distribute, sublicense, and/or sell copies of the Software, and to 102c593315Sopenharmony_ci# permit persons to whom the Software is furnished to do so, subject to 112c593315Sopenharmony_ci# the following conditions: 122c593315Sopenharmony_ci 132c593315Sopenharmony_ci# The above copyright notice and this permission notice shall be 142c593315Sopenharmony_ci# included in all copies or substantial portions of the Software. 152c593315Sopenharmony_ci 162c593315Sopenharmony_ci# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 172c593315Sopenharmony_ci# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 182c593315Sopenharmony_ci# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 192c593315Sopenharmony_ci# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 202c593315Sopenharmony_ci# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 212c593315Sopenharmony_ci# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 222c593315Sopenharmony_ci# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 232c593315Sopenharmony_ciSUBDIRS = testdata 242c593315Sopenharmony_ci 252c593315Sopenharmony_ciEXTRA_DIST = \ 262c593315Sopenharmony_ci CMakeLists.txt \ 272c593315Sopenharmony_ci test.example.com.pem \ 282c593315Sopenharmony_ci test.nghttp2.org.pem 292c593315Sopenharmony_ci 302c593315Sopenharmony_cibin_PROGRAMS = 312c593315Sopenharmony_cicheck_PROGRAMS = 322c593315Sopenharmony_ciTESTS = 332c593315Sopenharmony_ci 342c593315Sopenharmony_ciAM_CFLAGS = $(WARNCFLAGS) 352c593315Sopenharmony_ciAM_CXXFLAGS = $(WARNCXXFLAGS) $(CXX1XCXXFLAGS) 362c593315Sopenharmony_ciAM_CPPFLAGS = \ 372c593315Sopenharmony_ci -DPKGDATADIR='"$(pkgdatadir)"' \ 382c593315Sopenharmony_ci -DPKGLIBDIR='"$(pkglibdir)"' \ 392c593315Sopenharmony_ci -I$(top_srcdir)/lib/includes \ 402c593315Sopenharmony_ci -I$(top_builddir)/lib/includes \ 412c593315Sopenharmony_ci -I$(top_srcdir)/lib \ 422c593315Sopenharmony_ci -I$(top_srcdir)/third-party \ 432c593315Sopenharmony_ci -I$(top_srcdir)/third-party/llhttp/include \ 442c593315Sopenharmony_ci @JEMALLOC_CFLAGS@ \ 452c593315Sopenharmony_ci @LIBXML2_CFLAGS@ \ 462c593315Sopenharmony_ci @LIBEV_CFLAGS@ \ 472c593315Sopenharmony_ci @LIBNGHTTP3_CFLAGS@ \ 482c593315Sopenharmony_ci @LIBNGTCP2_CRYPTO_QUICTLS_CFLAGS@ \ 492c593315Sopenharmony_ci @LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS@ \ 502c593315Sopenharmony_ci @LIBNGTCP2_CFLAGS@ \ 512c593315Sopenharmony_ci @OPENSSL_CFLAGS@ \ 522c593315Sopenharmony_ci @LIBCARES_CFLAGS@ \ 532c593315Sopenharmony_ci @JANSSON_CFLAGS@ \ 542c593315Sopenharmony_ci @LIBBPF_CFLAGS@ \ 552c593315Sopenharmony_ci @ZLIB_CFLAGS@ \ 562c593315Sopenharmony_ci @EXTRA_DEFS@ \ 572c593315Sopenharmony_ci @DEFS@ 582c593315Sopenharmony_ciAM_LDFLAGS = @LIBTOOL_LDFLAGS@ 592c593315Sopenharmony_ci 602c593315Sopenharmony_ciLDADD = $(top_builddir)/lib/libnghttp2.la \ 612c593315Sopenharmony_ci $(top_builddir)/third-party/liburl-parser.la \ 622c593315Sopenharmony_ci $(top_builddir)/third-party/libllhttp.la \ 632c593315Sopenharmony_ci @JEMALLOC_LIBS@ \ 642c593315Sopenharmony_ci @LIBXML2_LIBS@ \ 652c593315Sopenharmony_ci @LIBEV_LIBS@ \ 662c593315Sopenharmony_ci @LIBNGHTTP3_LIBS@ \ 672c593315Sopenharmony_ci @LIBNGTCP2_CRYPTO_QUICTLS_LIBS@ \ 682c593315Sopenharmony_ci @LIBNGTCP2_CRYPTO_BORINGSSL_LIBS@ \ 692c593315Sopenharmony_ci @LIBNGTCP2_LIBS@ \ 702c593315Sopenharmony_ci @OPENSSL_LIBS@ \ 712c593315Sopenharmony_ci @LIBCARES_LIBS@ \ 722c593315Sopenharmony_ci @SYSTEMD_LIBS@ \ 732c593315Sopenharmony_ci @JANSSON_LIBS@ \ 742c593315Sopenharmony_ci @LIBBPF_LIBS@ \ 752c593315Sopenharmony_ci @ZLIB_LIBS@ \ 762c593315Sopenharmony_ci @APPLDFLAGS@ 772c593315Sopenharmony_ci 782c593315Sopenharmony_ciif ENABLE_APP 792c593315Sopenharmony_ci 802c593315Sopenharmony_cibin_PROGRAMS += nghttp nghttpd nghttpx 812c593315Sopenharmony_ci 822c593315Sopenharmony_ciHELPER_OBJECTS = util.cc \ 832c593315Sopenharmony_ci http2.cc timegm.c app_helper.cc nghttp2_gzip.c 842c593315Sopenharmony_ciHELPER_HFILES = util.h \ 852c593315Sopenharmony_ci http2.h timegm.h app_helper.h nghttp2_config.h \ 862c593315Sopenharmony_ci nghttp2_gzip.h network.h 872c593315Sopenharmony_ci 882c593315Sopenharmony_ciHTML_PARSER_OBJECTS = 892c593315Sopenharmony_ciHTML_PARSER_HFILES = HtmlParser.h 902c593315Sopenharmony_ci 912c593315Sopenharmony_ciif HAVE_LIBXML2 922c593315Sopenharmony_ciHTML_PARSER_OBJECTS += HtmlParser.cc 932c593315Sopenharmony_ciendif # HAVE_LIBXML2 942c593315Sopenharmony_ci 952c593315Sopenharmony_cinghttp_SOURCES = ${HELPER_OBJECTS} ${HELPER_HFILES} nghttp.cc nghttp.h \ 962c593315Sopenharmony_ci ${HTML_PARSER_OBJECTS} ${HTML_PARSER_HFILES} \ 972c593315Sopenharmony_ci tls.cc tls.h ssl_compat.h 982c593315Sopenharmony_ci 992c593315Sopenharmony_cinghttpd_SOURCES = ${HELPER_OBJECTS} ${HELPER_HFILES} nghttpd.cc \ 1002c593315Sopenharmony_ci tls.cc tls.h ssl_compat.h \ 1012c593315Sopenharmony_ci HttpServer.cc HttpServer.h 1022c593315Sopenharmony_ci 1032c593315Sopenharmony_cibin_PROGRAMS += h2load 1042c593315Sopenharmony_ci 1052c593315Sopenharmony_cih2load_SOURCES = util.cc util.h \ 1062c593315Sopenharmony_ci http2.cc http2.h h2load.cc h2load.h \ 1072c593315Sopenharmony_ci timegm.c timegm.h \ 1082c593315Sopenharmony_ci tls.cc tls.h ssl_compat.h \ 1092c593315Sopenharmony_ci h2load_session.h \ 1102c593315Sopenharmony_ci h2load_http2_session.cc h2load_http2_session.h \ 1112c593315Sopenharmony_ci h2load_http1_session.cc h2load_http1_session.h 1122c593315Sopenharmony_ci 1132c593315Sopenharmony_ciif ENABLE_HTTP3 1142c593315Sopenharmony_cih2load_SOURCES += \ 1152c593315Sopenharmony_ci h2load_http3_session.cc h2load_http3_session.h \ 1162c593315Sopenharmony_ci h2load_quic.cc h2load_quic.h \ 1172c593315Sopenharmony_ci quic.cc quic.h 1182c593315Sopenharmony_ciendif # ENABLE_HTTP3 1192c593315Sopenharmony_ci 1202c593315Sopenharmony_ciNGHTTPX_SRCS = \ 1212c593315Sopenharmony_ci util.cc util.h http2.cc http2.h timegm.c timegm.h base64.h \ 1222c593315Sopenharmony_ci app_helper.cc app_helper.h \ 1232c593315Sopenharmony_ci tls.cc tls.h ssl_compat.h \ 1242c593315Sopenharmony_ci shrpx_config.cc shrpx_config.h \ 1252c593315Sopenharmony_ci shrpx_error.h \ 1262c593315Sopenharmony_ci shrpx_accept_handler.cc shrpx_accept_handler.h \ 1272c593315Sopenharmony_ci shrpx_connection_handler.cc shrpx_connection_handler.h \ 1282c593315Sopenharmony_ci shrpx_client_handler.cc shrpx_client_handler.h \ 1292c593315Sopenharmony_ci shrpx_upstream.h \ 1302c593315Sopenharmony_ci shrpx_http2_upstream.cc shrpx_http2_upstream.h \ 1312c593315Sopenharmony_ci shrpx_https_upstream.cc shrpx_https_upstream.h \ 1322c593315Sopenharmony_ci shrpx_downstream.cc shrpx_downstream.h \ 1332c593315Sopenharmony_ci shrpx_downstream_connection.cc shrpx_downstream_connection.h \ 1342c593315Sopenharmony_ci shrpx_http_downstream_connection.cc shrpx_http_downstream_connection.h \ 1352c593315Sopenharmony_ci shrpx_http2_downstream_connection.cc shrpx_http2_downstream_connection.h \ 1362c593315Sopenharmony_ci shrpx_http2_session.cc shrpx_http2_session.h \ 1372c593315Sopenharmony_ci shrpx_downstream_queue.cc shrpx_downstream_queue.h \ 1382c593315Sopenharmony_ci shrpx_log.cc shrpx_log.h \ 1392c593315Sopenharmony_ci shrpx_http.cc shrpx_http.h \ 1402c593315Sopenharmony_ci shrpx_io_control.cc shrpx_io_control.h \ 1412c593315Sopenharmony_ci shrpx_tls.cc shrpx_tls.h \ 1422c593315Sopenharmony_ci shrpx_worker.cc shrpx_worker.h \ 1432c593315Sopenharmony_ci shrpx_log_config.cc shrpx_log_config.h \ 1442c593315Sopenharmony_ci shrpx_connect_blocker.cc shrpx_connect_blocker.h \ 1452c593315Sopenharmony_ci shrpx_live_check.cc shrpx_live_check.h \ 1462c593315Sopenharmony_ci shrpx_downstream_connection_pool.cc shrpx_downstream_connection_pool.h \ 1472c593315Sopenharmony_ci shrpx_rate_limit.cc shrpx_rate_limit.h \ 1482c593315Sopenharmony_ci shrpx_connection.cc shrpx_connection.h \ 1492c593315Sopenharmony_ci shrpx_memcached_dispatcher.cc shrpx_memcached_dispatcher.h \ 1502c593315Sopenharmony_ci shrpx_memcached_connection.cc shrpx_memcached_connection.h \ 1512c593315Sopenharmony_ci shrpx_memcached_request.h \ 1522c593315Sopenharmony_ci shrpx_memcached_result.h \ 1532c593315Sopenharmony_ci shrpx_worker_process.cc shrpx_worker_process.h \ 1542c593315Sopenharmony_ci shrpx_process.h \ 1552c593315Sopenharmony_ci shrpx_signal.cc shrpx_signal.h \ 1562c593315Sopenharmony_ci shrpx_router.cc shrpx_router.h \ 1572c593315Sopenharmony_ci shrpx_api_downstream_connection.cc shrpx_api_downstream_connection.h \ 1582c593315Sopenharmony_ci shrpx_health_monitor_downstream_connection.cc \ 1592c593315Sopenharmony_ci shrpx_health_monitor_downstream_connection.h \ 1602c593315Sopenharmony_ci shrpx_null_downstream_connection.cc shrpx_null_downstream_connection.h \ 1612c593315Sopenharmony_ci shrpx_exec.cc shrpx_exec.h \ 1622c593315Sopenharmony_ci shrpx_dns_resolver.cc shrpx_dns_resolver.h \ 1632c593315Sopenharmony_ci shrpx_dual_dns_resolver.cc shrpx_dual_dns_resolver.h \ 1642c593315Sopenharmony_ci shrpx_dns_tracker.cc shrpx_dns_tracker.h \ 1652c593315Sopenharmony_ci buffer.h memchunk.h template.h allocator.h \ 1662c593315Sopenharmony_ci xsi_strerror.c xsi_strerror.h 1672c593315Sopenharmony_ci 1682c593315Sopenharmony_ciif HAVE_MRUBY 1692c593315Sopenharmony_ciNGHTTPX_SRCS += \ 1702c593315Sopenharmony_ci shrpx_mruby.cc shrpx_mruby.h \ 1712c593315Sopenharmony_ci shrpx_mruby_module.cc shrpx_mruby_module.h \ 1722c593315Sopenharmony_ci shrpx_mruby_module_env.cc shrpx_mruby_module_env.h \ 1732c593315Sopenharmony_ci shrpx_mruby_module_request.cc shrpx_mruby_module_request.h \ 1742c593315Sopenharmony_ci shrpx_mruby_module_response.cc shrpx_mruby_module_response.h 1752c593315Sopenharmony_ciendif # HAVE_MRUBY 1762c593315Sopenharmony_ci 1772c593315Sopenharmony_ciif ENABLE_HTTP3 1782c593315Sopenharmony_ciNGHTTPX_SRCS += \ 1792c593315Sopenharmony_ci shrpx_quic.cc shrpx_quic.h \ 1802c593315Sopenharmony_ci shrpx_quic_listener.cc shrpx_quic_listener.h \ 1812c593315Sopenharmony_ci shrpx_quic_connection_handler.cc shrpx_quic_connection_handler.h \ 1822c593315Sopenharmony_ci shrpx_http3_upstream.cc shrpx_http3_upstream.h \ 1832c593315Sopenharmony_ci http3.cc http3.h \ 1842c593315Sopenharmony_ci quic.cc quic.h 1852c593315Sopenharmony_ciendif # ENABLE_HTTP3 1862c593315Sopenharmony_ci 1872c593315Sopenharmony_cinoinst_LIBRARIES = libnghttpx.a 1882c593315Sopenharmony_cilibnghttpx_a_SOURCES = ${NGHTTPX_SRCS} 1892c593315Sopenharmony_cilibnghttpx_a_CPPFLAGS = ${AM_CPPFLAGS} 1902c593315Sopenharmony_ci 1912c593315Sopenharmony_cinghttpx_SOURCES = shrpx.cc shrpx.h 1922c593315Sopenharmony_cinghttpx_CPPFLAGS = ${libnghttpx_a_CPPFLAGS} 1932c593315Sopenharmony_cinghttpx_LDADD = libnghttpx.a ${LDADD} 1942c593315Sopenharmony_ci 1952c593315Sopenharmony_ciif HAVE_MRUBY 1962c593315Sopenharmony_cilibnghttpx_a_CPPFLAGS += \ 1972c593315Sopenharmony_ci -I${top_srcdir}/third-party/mruby/include @LIBMRUBY_CFLAGS@ 1982c593315Sopenharmony_cinghttpx_LDADD += -L${top_builddir}/third-party/mruby/build/lib @LIBMRUBY_LIBS@ 1992c593315Sopenharmony_ciendif # HAVE_MRUBY 2002c593315Sopenharmony_ci 2012c593315Sopenharmony_ciif HAVE_NEVERBLEED 2022c593315Sopenharmony_cilibnghttpx_a_CPPFLAGS += -I${top_srcdir}/third-party/neverbleed 2032c593315Sopenharmony_cinghttpx_LDADD += ${top_builddir}/third-party/libneverbleed.la 2042c593315Sopenharmony_ciendif # HAVE_NEVERBLEED 2052c593315Sopenharmony_ci 2062c593315Sopenharmony_ciif HAVE_CUNIT 2072c593315Sopenharmony_cicheck_PROGRAMS += nghttpx-unittest 2082c593315Sopenharmony_cinghttpx_unittest_SOURCES = shrpx-unittest.cc \ 2092c593315Sopenharmony_ci shrpx_tls_test.cc shrpx_tls_test.h \ 2102c593315Sopenharmony_ci shrpx_downstream_test.cc shrpx_downstream_test.h \ 2112c593315Sopenharmony_ci shrpx_config_test.cc shrpx_config_test.h \ 2122c593315Sopenharmony_ci shrpx_worker_test.cc shrpx_worker_test.h \ 2132c593315Sopenharmony_ci shrpx_http_test.cc shrpx_http_test.h \ 2142c593315Sopenharmony_ci shrpx_router_test.cc shrpx_router_test.h \ 2152c593315Sopenharmony_ci http2_test.cc http2_test.h \ 2162c593315Sopenharmony_ci util_test.cc util_test.h \ 2172c593315Sopenharmony_ci nghttp2_gzip_test.c nghttp2_gzip_test.h \ 2182c593315Sopenharmony_ci nghttp2_gzip.c nghttp2_gzip.h \ 2192c593315Sopenharmony_ci buffer_test.cc buffer_test.h \ 2202c593315Sopenharmony_ci memchunk_test.cc memchunk_test.h \ 2212c593315Sopenharmony_ci template_test.cc template_test.h \ 2222c593315Sopenharmony_ci base64_test.cc base64_test.h 2232c593315Sopenharmony_cinghttpx_unittest_CPPFLAGS = ${AM_CPPFLAGS} \ 2242c593315Sopenharmony_ci -DNGHTTP2_SRC_DIR=\"$(top_srcdir)/src\" 2252c593315Sopenharmony_cinghttpx_unittest_LDADD = libnghttpx.a ${LDADD} @CUNIT_LIBS@ @TESTLDADD@ 2262c593315Sopenharmony_ci 2272c593315Sopenharmony_ciif HAVE_MRUBY 2282c593315Sopenharmony_cinghttpx_unittest_CPPFLAGS += \ 2292c593315Sopenharmony_ci -I${top_srcdir}/third-party/mruby/include @LIBMRUBY_CFLAGS@ 2302c593315Sopenharmony_cinghttpx_unittest_LDADD += \ 2312c593315Sopenharmony_ci -L${top_builddir}/third-party/mruby/build/lib @LIBMRUBY_LIBS@ 2322c593315Sopenharmony_ciendif # HAVE_MRUBY 2332c593315Sopenharmony_ci 2342c593315Sopenharmony_ciif HAVE_NEVERBLEED 2352c593315Sopenharmony_cinghttpx_unittest_CPPFLAGS += -I${top_srcdir}/third-party/neverbleed 2362c593315Sopenharmony_cinghttpx_unittest_LDADD += ${top_builddir}/third-party/libneverbleed.la 2372c593315Sopenharmony_ciendif # HAVE_NEVERBLEED 2382c593315Sopenharmony_ci 2392c593315Sopenharmony_ciTESTS += nghttpx-unittest 2402c593315Sopenharmony_ciendif # HAVE_CUNIT 2412c593315Sopenharmony_ci 2422c593315Sopenharmony_ciendif # ENABLE_APP 2432c593315Sopenharmony_ci 2442c593315Sopenharmony_ciif ENABLE_HPACK_TOOLS 2452c593315Sopenharmony_ci 2462c593315Sopenharmony_cibin_PROGRAMS += inflatehd deflatehd 2472c593315Sopenharmony_ci 2482c593315Sopenharmony_ciHPACK_TOOLS_COMMON_SRCS = \ 2492c593315Sopenharmony_ci comp_helper.c comp_helper.h \ 2502c593315Sopenharmony_ci util.cc util.h \ 2512c593315Sopenharmony_ci timegm.c timegm.h 2522c593315Sopenharmony_ci 2532c593315Sopenharmony_ciinflatehd_SOURCES = inflatehd.cc $(HPACK_TOOLS_COMMON_SRCS) 2542c593315Sopenharmony_ci 2552c593315Sopenharmony_cideflatehd_SOURCES = deflatehd.cc $(HPACK_TOOLS_COMMON_SRCS) 2562c593315Sopenharmony_ci 2572c593315Sopenharmony_ciendif # ENABLE_HPACK_TOOLS 258