LOCALBASE?= /usr/local CXXFLAGS+= -std=c++17 -Wall -Wextra -Wno-deprecated-declarations \ -Wno-unused-parameter CPPFLAGS+= -DBUILD_SCM_REVISION=\"c7e8e73\" \ -DBUILD_SCM_STATUS=\"Modified\" \ -DNDEBUG -DENVOY_SSL_VERSION=\"BoringSSL\" \ -DSPDLOG_FMT_EXTERNAL -DENVOY_ENABLE_QUIC \ -DENVOY_ADMIN_HTML \ -I.. -I../api -I../bazel/external/http_parser \ -I../../cel-cpp-11f9d66 \ -I../../quiche-37de4f7 \ -I../../quiche-37de4f7/quiche/common/platform/default \ -I../.. -I$(LOCALBASE)/include LDFLAGS+= -L$(LOCALBASE)/lib CCACHE?= $(shell command -v ccache) api_OBJS= envoy/admin/v2alpha/certs.pb.o \ envoy/admin/v2alpha/clusters.pb.o \ envoy/admin/v2alpha/config_dump.pb.o \ envoy/admin/v2alpha/memory.pb.o \ envoy/admin/v2alpha/metrics.pb.o \ envoy/admin/v2alpha/mutex_stats.pb.o \ envoy/admin/v2alpha/server_info.pb.o \ envoy/admin/v3/certs.pb.o \ envoy/admin/v3/clusters.pb.o \ envoy/admin/v3/config_dump.pb.o \ envoy/admin/v3/config_dump_shared.pb.o \ envoy/admin/v3/init_dump.pb.o \ envoy/admin/v3/listeners.pb.o \ envoy/admin/v3/memory.pb.o \ envoy/admin/v3/metrics.pb.o \ envoy/admin/v3/mutex_stats.pb.o \ envoy/admin/v3/server_info.pb.o \ envoy/admin/v3/tap.pb.o \ envoy/annotations/deprecation.pb.o \ envoy/annotations/resource.pb.o \ envoy/api/v2/auth/cert.pb.o \ envoy/api/v2/auth/common.pb.o \ envoy/api/v2/auth/secret.pb.o \ envoy/api/v2/auth/tls.pb.o \ envoy/api/v2/cds.pb.o \ envoy/api/v2/cluster.pb.o \ envoy/api/v2/cluster/circuit_breaker.pb.o \ envoy/api/v2/cluster/filter.pb.o \ envoy/api/v2/cluster/outlier_detection.pb.o \ envoy/api/v2/core/address.pb.o \ envoy/api/v2/core/backoff.pb.o \ envoy/api/v2/core/base.pb.o \ envoy/api/v2/core/config_source.pb.o \ envoy/api/v2/core/event_service_config.pb.o \ envoy/api/v2/core/grpc_service.pb.o \ envoy/api/v2/core/health_check.pb.o \ envoy/api/v2/core/http_uri.pb.o \ envoy/api/v2/core/protocol.pb.o \ envoy/api/v2/core/socket_option.pb.o \ envoy/api/v2/discovery.pb.o \ envoy/api/v2/eds.pb.o \ envoy/api/v2/endpoint.pb.o \ envoy/api/v2/endpoint/endpoint.pb.o \ envoy/api/v2/endpoint/endpoint_components.pb.o \ envoy/api/v2/endpoint/load_report.pb.o \ envoy/api/v2/lds.pb.o \ envoy/api/v2/listener.pb.o \ envoy/api/v2/listener/listener.pb.o \ envoy/api/v2/listener/listener_components.pb.o \ envoy/api/v2/listener/udp_listener_config.pb.o \ envoy/api/v2/ratelimit/ratelimit.pb.o \ envoy/api/v2/rds.pb.o \ envoy/api/v2/route.pb.o \ envoy/api/v2/route/route.pb.o \ envoy/api/v2/route/route_components.pb.o \ envoy/api/v2/scoped_route.pb.o \ envoy/config/accesslog/v2/als.pb.o \ envoy/config/accesslog/v2/file.pb.o \ envoy/config/accesslog/v3/accesslog.pb.o \ envoy/config/bootstrap/v2/bootstrap.pb.o \ envoy/config/bootstrap/v3/bootstrap.pb.o \ envoy/config/cluster/v3/circuit_breaker.pb.o \ envoy/config/cluster/v3/cluster.pb.o \ envoy/config/cluster/v3/filter.pb.o \ envoy/config/cluster/v3/outlier_detection.pb.o \ envoy/config/common/key_value/v3/config.pb.o \ envoy/config/common/matcher/v3/matcher.pb.o \ envoy/config/common/mutation_rules/v3/mutation_rules.pb.o \ envoy/config/core/v3/address.pb.o \ envoy/config/core/v3/backoff.pb.o \ envoy/config/core/v3/base.pb.o \ envoy/config/core/v3/config_source.pb.o \ envoy/config/core/v3/event_service_config.pb.o \ envoy/config/core/v3/extension.pb.o \ envoy/config/core/v3/grpc_service.pb.o \ envoy/config/core/v3/health_check.pb.o \ envoy/config/core/v3/http_uri.pb.o \ envoy/config/core/v3/protocol.pb.o \ envoy/config/core/v3/proxy_protocol.pb.o \ envoy/config/core/v3/resolver.pb.o \ envoy/config/core/v3/socket_option.pb.o \ envoy/config/core/v3/substitution_format_string.pb.o \ envoy/config/core/v3/udp_socket_config.pb.o \ envoy/config/endpoint/v3/endpoint.pb.o \ envoy/config/endpoint/v3/endpoint_components.pb.o \ envoy/config/endpoint/v3/load_report.pb.o \ envoy/config/filter/accesslog/v2/accesslog.pb.o \ envoy/config/filter/fault/v2/fault.pb.o \ envoy/config/filter/http/fault/v2/fault.pb.o \ envoy/config/filter/http/transcoder/v2/transcoder.pb.o \ envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.pb.o \ envoy/config/filter/network/redis_proxy/v2/redis_proxy.pb.o \ envoy/config/filter/network/tcp_proxy/v2/tcp_proxy.pb.o \ envoy/config/grpc_credential/v3/aws_iam.pb.o \ envoy/config/grpc_credential/v3/file_based_metadata.pb.o \ envoy/config/listener/v2/api_listener.pb.o \ envoy/config/listener/v3/api_listener.pb.o \ envoy/config/listener/v3/listener.pb.o \ envoy/config/listener/v3/listener_components.pb.o \ envoy/config/listener/v3/quic_config.pb.o \ envoy/config/listener/v3/udp_listener_config.pb.o \ envoy/config/metrics/v2/metrics_service.pb.o \ envoy/config/metrics/v2/stats.pb.o \ envoy/config/metrics/v3/metrics_service.pb.o \ envoy/config/metrics/v3/stats.pb.o \ envoy/config/overload/v2alpha/overload.pb.o \ envoy/config/overload/v3/overload.pb.o \ envoy/config/ratelimit/v3/rls.pb.o \ envoy/config/rbac/v3/rbac.pb.o \ envoy/config/route/v3/route.pb.o \ envoy/config/route/v3/route_components.pb.o \ envoy/config/route/v3/scoped_route.pb.o \ envoy/config/tap/v3/common.pb.o \ envoy/config/trace/v2/datadog.pb.o \ envoy/config/trace/v2/dynamic_ot.pb.o \ envoy/config/trace/v2/http_tracer.pb.o \ envoy/config/trace/v2/lightstep.pb.o \ envoy/config/trace/v2/opencensus.pb.o \ envoy/config/trace/v2/service.pb.o \ envoy/config/trace/v2/trace.pb.o \ envoy/config/trace/v2/zipkin.pb.o \ envoy/config/trace/v3/dynamic_ot.pb.o \ envoy/config/trace/v3/http_tracer.pb.o \ envoy/config/trace/v3/opentelemetry.pb.o \ envoy/data/accesslog/v2/accesslog.pb.o \ envoy/data/accesslog/v3/accesslog.pb.o \ envoy/data/cluster/v2alpha/outlier_detection_event.pb.o \ envoy/data/cluster/v3/outlier_detection_event.pb.o \ envoy/data/core/v2alpha/health_check_event.pb.o \ envoy/data/core/v3/health_check_event.pb.o \ envoy/data/dns/v3/dns_table.pb.o \ envoy/data/tap/v3/common.pb.o \ envoy/data/tap/v3/http.pb.o \ envoy/data/tap/v3/transport.pb.o \ envoy/data/tap/v3/wrapper.pb.o \ envoy/extensions/access_loggers/file/v3/file.pb.o \ envoy/extensions/access_loggers/filters/cel/v3/cel.pb.o \ envoy/extensions/access_loggers/grpc/v3/als.pb.o \ envoy/extensions/access_loggers/open_telemetry/v3/logs_service.pb.o \ envoy/extensions/access_loggers/stream/v3/stream.pb.o \ envoy/extensions/bootstrap/internal_listener/v3/internal_listener.pb.o \ envoy/extensions/clusters/aggregate/v3/cluster.pb.o \ envoy/extensions/clusters/dynamic_forward_proxy/v3/cluster.pb.o \ envoy/extensions/clusters/redis/v3/redis_cluster.pb.o \ envoy/extensions/common/async_files/v3/async_file_manager.pb.o \ envoy/extensions/common/dynamic_forward_proxy/v3/dns_cache.pb.o \ envoy/extensions/common/ratelimit/v3/ratelimit.pb.o \ envoy/extensions/common/tap/v3/common.pb.o \ envoy/extensions/compression/brotli/compressor/v3/brotli.pb.o \ envoy/extensions/compression/brotli/decompressor/v3/brotli.pb.o \ envoy/extensions/compression/gzip/compressor/v3/gzip.pb.o \ envoy/extensions/compression/gzip/decompressor/v3/gzip.pb.o \ envoy/extensions/compression/zstd/compressor/v3/zstd.pb.o \ envoy/extensions/compression/zstd/decompressor/v3/zstd.pb.o \ envoy/extensions/config/validators/minimum_clusters/v3/minimum_clusters.pb.o \ envoy/extensions/early_data/v3/default_early_data_policy.pb.o \ envoy/extensions/filters/common/dependency/v3/dependency.pb.o \ envoy/extensions/filters/common/fault/v3/fault.pb.o \ envoy/extensions/filters/http/upstream_codec/v3/upstream_codec.pb.o \ envoy/extensions/filters/listener/http_inspector/v3/http_inspector.pb.o \ envoy/extensions/filters/listener/local_ratelimit/v3/local_ratelimit.pb.o \ envoy/extensions/filters/listener/original_dst/v3/original_dst.pb.o \ envoy/extensions/filters/listener/original_src/v3/original_src.pb.o \ envoy/extensions/filters/listener/proxy_protocol/v3/proxy_protocol.pb.o \ envoy/extensions/filters/listener/tls_inspector/v3/tls_inspector.pb.o \ envoy/extensions/filters/network/connection_limit/v3/connection_limit.pb.o \ envoy/extensions/filters/network/direct_response/v3/config.pb.o \ envoy/extensions/filters/network/echo/v3/echo.pb.o \ envoy/extensions/filters/network/ext_authz/v3/ext_authz.pb.o \ envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.o \ envoy/extensions/filters/network/local_ratelimit/v3/local_rate_limit.pb.o \ envoy/extensions/filters/network/mongo_proxy/v3/mongo_proxy.pb.o \ envoy/extensions/filters/network/ratelimit/v3/rate_limit.pb.o \ envoy/extensions/filters/network/rbac/v3/rbac.pb.o \ envoy/extensions/filters/network/redis_proxy/v3/redis_proxy.pb.o \ envoy/extensions/filters/network/sni_cluster/v3/sni_cluster.pb.o \ envoy/extensions/filters/network/sni_dynamic_forward_proxy/v3/sni_dynamic_forward_proxy.pb.o \ envoy/extensions/filters/network/tcp_proxy/v3/tcp_proxy.pb.o \ envoy/extensions/filters/network/thrift_proxy/v3/route.pb.o \ envoy/extensions/filters/network/thrift_proxy/v3/thrift_proxy.pb.o \ envoy/extensions/filters/network/zookeeper_proxy/v3/zookeeper_proxy.pb.o \ envoy/extensions/filters/udp/dns_filter/v3/dns_filter.pb.o \ envoy/extensions/filters/udp/udp_proxy/v3/route.pb.o \ envoy/extensions/filters/udp/udp_proxy/v3/udp_proxy.pb.o \ envoy/extensions/formatter/metadata/v3/metadata.pb.o \ envoy/extensions/formatter/req_without_query/v3/req_without_query.pb.o \ envoy/extensions/health_checkers/redis/v3/redis.pb.o \ envoy/extensions/health_checkers/thrift/v3/thrift.pb.o \ envoy/extensions/http/custom_response/local_response_policy/v3/local_response_policy.pb.o \ envoy/extensions/http/custom_response/redirect_policy/v3/redirect_policy.pb.o \ envoy/extensions/http/early_header_mutation/header_mutation/v3/header_mutation.pb.o \ envoy/extensions/http/header_formatters/preserve_case/v3/preserve_case.pb.o \ envoy/extensions/http/header_validators/envoy_default/v3/header_validator.pb.o \ envoy/extensions/http/original_ip_detection/custom_header/v3/custom_header.pb.o \ envoy/extensions/http/original_ip_detection/xff/v3/xff.pb.o \ envoy/extensions/http/stateful_session/cookie/v3/cookie.pb.o \ envoy/extensions/http/stateful_session/header/v3/header.pb.o \ envoy/extensions/internal_redirect/allow_listed_routes/v3/allow_listed_routes_config.pb.o \ envoy/extensions/internal_redirect/previous_routes/v3/previous_routes_config.pb.o \ envoy/extensions/internal_redirect/safe_cross_scheme/v3/safe_cross_scheme_config.pb.o \ envoy/extensions/key_value/file_based/v3/config.pb.o \ envoy/extensions/load_balancing_policies/common/v3/common.pb.o \ envoy/extensions/load_balancing_policies/least_request/v3/least_request.pb.o \ envoy/extensions/load_balancing_policies/maglev/v3/maglev.pb.o \ envoy/extensions/load_balancing_policies/random/v3/random.pb.o \ envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.pb.o \ envoy/extensions/load_balancing_policies/round_robin/v3/round_robin.pb.o \ envoy/extensions/matching/common_inputs/environment_variable/v3/input.pb.o \ envoy/extensions/matching/common_inputs/network/v3/network_inputs.pb.o \ envoy/extensions/matching/common_inputs/ssl/v3/ssl_inputs.pb.o \ envoy/extensions/matching/input_matchers/consistent_hashing/v3/consistent_hashing.pb.o \ envoy/extensions/matching/input_matchers/ip/v3/ip.pb.o \ envoy/extensions/network/dns_resolver/apple/v3/apple_dns_resolver.pb.o \ envoy/extensions/network/dns_resolver/cares/v3/cares_dns_resolver.pb.o \ envoy/extensions/network/dns_resolver/getaddrinfo/v3/getaddrinfo_dns_resolver.pb.o \ envoy/extensions/network/socket_interface/v3/default_socket_interface.pb.o \ envoy/extensions/path/match/uri_template/v3/uri_template_match.pb.o \ envoy/extensions/path/rewrite/uri_template/v3/uri_template_rewrite.pb.o \ envoy/extensions/quic/connection_id_generator/v3/envoy_deterministic_connection_id_generator.pb.o \ envoy/extensions/quic/crypto_stream/v3/crypto_stream.pb.o \ envoy/extensions/quic/proof_source/v3/proof_source.pb.o \ envoy/extensions/quic/server_preferred_address/v3/fixed_server_preferred_address_config.pb.o \ envoy/extensions/rate_limit_descriptors/expr/v3/expr.pb.o \ envoy/extensions/regex_engines/v3/google_re2.pb.o \ envoy/extensions/request_id/uuid/v3/uuid.pb.o \ envoy/extensions/resource_monitors/downstream_connections/v3/downstream_connections.pb.o \ envoy/extensions/resource_monitors/fixed_heap/v3/fixed_heap.pb.o \ envoy/extensions/resource_monitors/injected_resource/v3/injected_resource.pb.o \ envoy/extensions/retry/host/omit_host_metadata/v3/omit_host_metadata_config.pb.o \ envoy/extensions/retry/priority/previous_priorities/v3/previous_priorities_config.pb.o \ envoy/extensions/stat_sinks/graphite_statsd/v3/graphite_statsd.pb.o \ envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.pb.o \ envoy/extensions/transport_sockets/internal_upstream/v3/internal_upstream.pb.o \ envoy/extensions/transport_sockets/proxy_protocol/v3/upstream_proxy_protocol.pb.o \ envoy/extensions/transport_sockets/quic/v3/quic_transport.pb.o \ envoy/extensions/transport_sockets/raw_buffer/v3/raw_buffer.pb.o \ envoy/extensions/transport_sockets/starttls/v3/starttls.pb.o \ envoy/extensions/transport_sockets/tap/v3/tap.pb.o \ envoy/extensions/transport_sockets/tcp_stats/v3/tcp_stats.pb.o \ envoy/extensions/transport_sockets/tls/v3/common.pb.o \ envoy/extensions/transport_sockets/tls/v3/secret.pb.o \ envoy/extensions/transport_sockets/tls/v3/tls.pb.o \ envoy/extensions/udp_packet_writer/v3/udp_default_writer_factory.pb.o \ envoy/extensions/upstreams/http/generic/v3/generic_connection_pool.pb.o \ envoy/extensions/upstreams/http/http/v3/http_connection_pool.pb.o \ envoy/extensions/upstreams/http/tcp/v3/tcp_connection_pool.pb.o \ envoy/extensions/upstreams/http/v3/http_protocol_options.pb.o \ envoy/extensions/upstreams/tcp/generic/v3/generic_connection_pool.pb.o \ envoy/extensions/upstreams/tcp/v3/tcp_protocol_options.pb.o \ envoy/extensions/watchdog/profile_action/v3/profile_action.pb.o \ envoy/service/accesslog/v2/als.pb.o \ envoy/service/accesslog/v3/als.pb.o \ envoy/service/auth/v3/attribute_context.pb.o \ envoy/service/auth/v3/external_auth.pb.o \ envoy/service/cluster/v3/cds.pb.o \ envoy/service/discovery/v2/ads.pb.o \ envoy/service/discovery/v2/hds.pb.o \ envoy/service/discovery/v2/sds.pb.o \ envoy/service/discovery/v3/ads.pb.o \ envoy/service/discovery/v3/discovery.pb.o \ envoy/service/endpoint/v3/eds.pb.o \ envoy/service/endpoint/v3/leds.pb.o \ envoy/service/extension/v3/config_discovery.pb.o \ envoy/service/health/v3/hds.pb.o \ envoy/service/listener/v3/lds.pb.o \ envoy/service/load_stats/v2/lrs.pb.o \ envoy/service/load_stats/v3/lrs.pb.o \ envoy/service/metrics/v2/metrics_service.pb.o \ envoy/service/metrics/v3/metrics_service.pb.o \ envoy/service/ratelimit/v2/rls.pb.o \ envoy/service/ratelimit/v3/rls.pb.o \ envoy/service/route/v3/rds.pb.o \ envoy/service/route/v3/srds.pb.o \ envoy/service/runtime/v3/rtds.pb.o \ envoy/service/secret/v3/sds.pb.o \ envoy/type/hash_policy.pb.o \ envoy/type/http.pb.o \ envoy/type/http/v3/cookie.pb.o \ envoy/type/http/v3/path_transformation.pb.o \ envoy/type/matcher/metadata.pb.o \ envoy/type/matcher/number.pb.o \ envoy/type/matcher/regex.pb.o \ envoy/type/matcher/string.pb.o \ envoy/type/matcher/v3/filter_state.pb.o \ envoy/type/matcher/v3/http_inputs.pb.o \ envoy/type/matcher/v3/metadata.pb.o \ envoy/type/matcher/v3/number.pb.o \ envoy/type/matcher/v3/path.pb.o \ envoy/type/matcher/v3/regex.pb.o \ envoy/type/matcher/v3/string.pb.o \ envoy/type/matcher/v3/value.pb.o \ envoy/type/matcher/value.pb.o \ envoy/type/metadata/v2/metadata.pb.o \ envoy/type/metadata/v3/metadata.pb.o \ envoy/type/percent.pb.o \ envoy/type/range.pb.o \ envoy/type/semantic_version.pb.o \ envoy/type/tracing/v2/custom_tag.pb.o \ envoy/type/tracing/v3/custom_tag.pb.o \ envoy/type/v3/hash_policy.pb.o \ envoy/type/v3/http.pb.o \ envoy/type/v3/http_status.pb.o \ envoy/type/v3/percent.pb.o \ envoy/type/v3/range.pb.o \ envoy/type/v3/ratelimit_unit.pb.o \ envoy/type/v3/semantic_version.pb.o \ envoy/type/v3/token_bucket.pb.o \ envoy/watchdog/v3/abort_action.pb.o \ google/api/annotations.pb.o \ google/api/expr/v1alpha1/checked.pb.o \ google/api/expr/v1alpha1/syntax.pb.o \ google/api/http.pb.o \ google/rpc/status.pb.o \ io/prometheus/client/metrics.pb.o \ opencensus/proto/trace/v1/trace_config.pb.o \ opentelemetry/proto/collector/logs/v1/logs_service.pb.o \ opentelemetry/proto/collector/trace/v1/trace_service.pb.o \ opentelemetry/proto/common/v1/common.pb.o \ opentelemetry/proto/logs/v1/logs.pb.o \ opentelemetry/proto/resource/v1/resource.pb.o \ opentelemetry/proto/trace/v1/trace.pb.o \ src/proto/grpc/health/v1/health.pb.o \ udpa/annotations/migrate.pb.o \ udpa/annotations/security.pb.o \ udpa/annotations/sensitive.pb.o \ udpa/annotations/status.pb.o \ udpa/annotations/versioning.pb.o \ udpa/type/v1/typed_struct.pb.o \ validate/validate.pb.o \ xds/annotations/v3/status.pb.o \ xds/core/v3/authority.pb.o \ xds/core/v3/cidr.pb.o \ xds/core/v3/collection_entry.pb.o \ xds/core/v3/context_params.pb.o \ xds/core/v3/extension.pb.o \ xds/core/v3/resource_locator.pb.o \ xds/core/v3/resource_name.pb.o \ xds/type/matcher/v3/ip.pb.o \ xds/type/matcher/v3/matcher.pb.o \ xds/type/matcher/v3/regex.pb.o \ xds/type/matcher/v3/string.pb.o \ xds/type/v3/typed_struct.pb.o source_OBJS= $(common_SRCS:.cc=.o) \ $(exe_SRCS:.cc=.o) \ $(extensions_SRCS:.cc=.o) \ $(server_SRCS:.cc=.o) external_OBJS= ../bazel/external/http_parser/http_parser.o \ $(addprefix ../../cel-cpp-11f9d66/,$(cel_cpp_SRCS:.cc=.o)) \ $(addprefix ../../,$(googleurl_SRCS:.cc=.o)) \ $(quiche_SRCS:.cc=.o) common_SRCS= $(wildcard common/access_log/*.cc) \ common/api/api_impl.cc \ common/api/posix/os_sys_calls_impl.cc \ $(wildcard common/buffer/*.cc) \ $(wildcard common/chromium_url/*.cc) \ $(wildcard common/common/*.cc) \ common/common/posix/thread_impl.cc \ $(wildcard common/config/*.cc) \ $(wildcard common/config/xds_mux/*.cc) \ common/conn_pool/conn_pool_base.cc \ $(wildcard common/event/*.cc) \ common/event/posix/signal_impl.cc \ $(wildcard common/filesystem/*.cc) \ common/filesystem/kqueue/watcher_impl.cc \ $(wildcard common/filesystem/posix/*.cc) \ common/filter/config_discovery_impl.cc \ $(wildcard common/formatter/*.cc) \ $(wildcard common/grpc/*.cc) \ common/html/utility.cc \ $(wildcard common/http/*.cc) \ $(wildcard common/http/http1/*.cc) \ $(wildcard common/http/http2/*.cc) \ $(wildcard common/http/http3/*.cc) \ $(wildcard common/init/*.cc) \ $(wildcard common/json/*.cc) \ common/local_reply/local_reply.cc \ $(wildcard common/memory/*.cc) \ $(wildcard common/network/*.cc) \ common/network/dns_resolver/dns_factory_util.cc \ common/profiler/profiler.cc \ $(wildcard common/protobuf/*.cc) \ common/quic/active_quic_listener.cc \ common/quic/client_codec_impl.cc \ common/quic/client_connection_factory_impl.cc \ $(wildcard common/quic/envoy_quic_*.cc) \ $(wildcard common/quic/platform/*.cc) \ $(wildcard common/quic/quic_*.cc) \ common/quic/send_buffer_monitor.cc \ $(wildcard common/rds/*.cc) \ $(wildcard common/router/*.cc) \ $(wildcard common/runtime/*.cc) \ $(wildcard common/secret/*.cc) \ $(wildcard common/signal/*.cc) \ $(wildcard common/singleton/*.cc) \ $(wildcard common/ssl/*.cc) \ $(wildcard common/stats/*.cc) \ $(wildcard common/stream_info/*.cc) \ $(wildcard common/tcp*/*.cc) \ common/thread_local/thread_local_impl.cc \ $(wildcard common/tracing/*.cc) \ $(wildcard common/upstream/*.cc) \ $(wildcard common/version/*.cc) exe_SRCS= $(wildcard exe/*.cc) \ exe/posix/platform_impl.cc extensions_SRCS=\ $(wildcard extensions/access_loggers/[^w]*/*.cc) \ $(wildcard extensions/access_loggers/filters/cel/*.cc) \ $(wildcard extensions/bootstrap/internal_listener/*.cc) \ $(wildcard extensions/clusters/*/*.cc) \ $(wildcard extensions/common/async_files/*.cc) \ $(wildcard extensions/common/aws/*.cc) \ $(wildcard extensions/common/dynamic_forward_proxy/*.cc) \ $(wildcard extensions/common/matcher/*.cc) \ extensions/common/proxy_protocol/proxy_protocol_header.cc \ $(wildcard extensions/common/redis/*.cc) \ $(wildcard extensions/common/tap/*.cc) \ $(wildcard extensions/compression/*/*/*.cc) \ $(wildcard extensions/config/validators/minimum_clusters/*.cc) \ $(wildcard extensions/config_subscription/*/*.cc) \ extensions/early_data/default_early_data_policy.cc \ $(wildcard extensions/filters/common/expr/*.cc) \ extensions/filters/common/ext_authz/check_request_utils.cc \ extensions/filters/common/ext_authz/ext_authz_grpc_impl.cc \ extensions/filters/common/fault/fault_config.cc \ $(wildcard extensions/filters/common/*ratelimit/*.cc) \ extensions/filters/common/mutation_rules/mutation_rules.cc \ $(wildcard extensions/filters/common/original_src/*.cc) \ $(wildcard extensions/filters/common/rbac/*.cc) \ $(wildcard extensions/filters/listener/*/*.cc) \ $(wildcard extensions/filters/network/common/redis/*.cc) \ $(wildcard extensions/filters/network/connection_limit/*.cc) \ $(wildcard extensions/filters/network/direct_response/*.cc) \ $(wildcard extensions/filters/network/echo/*.cc) \ $(wildcard extensions/filters/network/ext_authz/*.cc) \ extensions/filters/network/http_connection_manager/config.cc \ $(wildcard extensions/filters/network/*ratelimit/*.cc) \ $(wildcard extensions/filters/network/mongo_proxy/*.cc) \ $(wildcard extensions/filters/network/rbac/*.cc) \ $(wildcard extensions/filters/network/redis_proxy/*.cc) \ $(wildcard extensions/filters/network/sni_*/*.cc) \ $(wildcard extensions/filters/network/tcp_proxy/*.cc) \ extensions/filters/network/thrift_proxy/app_exception_impl.cc \ extensions/filters/network/thrift_proxy/decoder.cc \ $(wildcard extensions/filters/network/zookeeper_proxy/*.cc) \ $(wildcard extensions/filters/udp/*/*.cc) \ extensions/filters/udp/udp_proxy/router/router_impl.cc \ $(wildcard extensions/formatter/*/*.cc) \ $(wildcard extensions/grpc_credentials/*/*.cc) \ $(wildcard extensions/health_checkers/*/*.cc) \ $(wildcard extensions/http/custom_response/*/*.cc) \ $(wildcard extensions/http/early_header_mutation/header_mutation/*.cc) \ $(wildcard extensions/http/header_formatters/preserve_case/*.cc) \ $(wildcard extensions/http/header_validators/envoy_default/*.cc) \ $(wildcard extensions/http/original_ip_detection/*/*.cc) \ $(wildcard extensions/http/stateful_session/*/*.cc) \ $(wildcard extensions/internal_redirect/*/*.cc) \ $(wildcard extensions/io_socket/user_space/*.cc) \ extensions/key_value/file_based/config.cc \ $(wildcard extensions/listener_managers/*/*.cc) \ $(wildcard extensions/load_balancing_policies/*/config.cc) \ $(wildcard extensions/matching/*/*/*.cc) \ $(wildcard extensions/network/dns_resolver/[^a]*/*.cc) \ $(wildcard extensions/path/*/uri_template/*.cc) \ $(wildcard extensions/path/uri_template_lib/*.cc) \ $(wildcard extensions/quic/connection_id_generator/*.cc) \ $(wildcard extensions/quic/crypto_stream/*.cc) \ extensions/quic/proof_source/envoy_quic_proof_source_factory_impl.cc \ extensions/quic/server_preferred_address/fixed_server_preferred_address_config.cc \ extensions/rate_limit_descriptors/expr/config.cc \ extensions/request_id/uuid/config.cc \ $(wildcard extensions/resource_monitors/*/*.cc) \ $(wildcard extensions/retry/host/omit_host_metadata/*.cc) \ $(wildcard extensions/retry/priority/*/*.cc) \ $(wildcard extensions/stat_sinks/common/statsd/*.cc) \ $(wildcard extensions/stat_sinks/hystrix/*.cc) \ $(wildcard extensions/stat_sinks/metrics_service/*.cc) \ $(wildcard extensions/stat_sinks/*statsd/*.cc) \ extensions/tracers/common/ot/opentracing_driver_impl.cc \ $(wildcard extensions/tracers/dynamic_ot/*.cc) \ $(wildcard extensions/tracers/opentelemetry/*.cc) \ extensions/transport_sockets/common/passthrough.cc \ $(wildcard extensions/transport_sockets/http_11_proxy/*.cc) \ $(wildcard extensions/transport_sockets/internal_upstream/*.cc) \ $(wildcard extensions/transport_sockets/proxy_protocol/*.cc) \ extensions/transport_sockets/raw_buffer/config.cc \ $(wildcard extensions/transport_sockets/starttls/*.cc) \ $(wildcard extensions/transport_sockets/tap/*.cc) \ $(wildcard extensions/transport_sockets/tcp_stats/*.cc) \ $(wildcard extensions/transport_sockets/tls/*.cc) \ extensions/transport_sockets/tls/cert_validator/factory.cc \ $(wildcard extensions/transport_sockets/tls/ocsp/*.cc) \ extensions/transport_sockets/tls/private_key/private_key_manager_impl.cc \ $(wildcard extensions/udp_packet_writer/*/*.cc) \ $(wildcard extensions/upstreams/*/*/*.cc) \ $(wildcard extensions/upstreams/*/config.cc) \ $(wildcard extensions/watchdog/profile_action/*.cc) skiptests = $(filter-out %_fuzzer.cc %_test.cc,$(wildcard $(1))) quiche_SRCS= $(call skiptests,quiche/balsa/*.cc) \ $(call skiptests,quiche/common/*.cc) \ quiche/common/platform/api/quiche_file_utils.cc \ quiche/common/platform/api/quiche_hostname_utils.cc \ quiche/common/platform/api/quiche_mutex.cc \ quiche/common/platform/default/quiche_platform_impl/quiche_file_utils_impl.cc \ quiche/common/platform/default/quiche_platform_impl/quiche_mutex_impl.cc \ quiche/common/platform/default/quiche_platform_impl/quiche_time_utils_impl.cc \ quiche/http2/adapter/callback_visitor.cc \ quiche/http2/adapter/event_forwarder.cc \ quiche/http2/adapter/header_validator.cc \ quiche/http2/adapter/http2_protocol.cc \ quiche/http2/adapter/http2_util.cc \ quiche/http2/adapter/nghttp2_adapter.cc \ quiche/http2/adapter/nghttp2_callbacks.cc \ quiche/http2/adapter/nghttp2_data_provider.cc \ quiche/http2/adapter/nghttp2_session.cc \ quiche/http2/adapter/nghttp2_util.cc \ quiche/http2/adapter/noop_header_validator.cc \ quiche/http2/adapter/oghttp2_adapter.cc \ quiche/http2/adapter/oghttp2_session.cc \ quiche/http2/adapter/oghttp2_util.cc \ quiche/http2/adapter/window_manager.cc \ quiche/http2/core/http2_trace_logging.cc \ $(call skiptests,quiche/http2/decoder/*.cc) \ $(wildcard quiche/http2/decoder/payload_decoders/*_payload_decoder.cc) \ $(call skiptests,quiche/http2/hpack/decoder/hpack_*.cc) \ quiche/http2/hpack/http2_hpack_constants.cc \ quiche/http2/hpack/huffman/hpack_huffman_decoder.cc \ quiche/http2/hpack/huffman/hpack_huffman_encoder.cc \ quiche/http2/hpack/huffman/huffman_spec_tables.cc \ quiche/http2/hpack/varint/hpack_varint_decoder.cc \ quiche/http2/hpack/varint/hpack_varint_encoder.cc \ quiche/http2/http2_constants.cc \ quiche/http2/http2_structures.cc \ quiche/quic/core/chlo_extractor.cc \ $(call skiptests,quiche/quic/core/congestion_control/*.cc) \ $(call skiptests,quiche/quic/core/crypto/*.cc) \ quiche/quic/core/deterministic_connection_id_generator.cc \ $(wildcard quiche/quic/core/frames/quic_*frame.cc) \ $(call skiptests,quiche/quic/core/http/*.cc) \ quiche/quic/core/legacy_quic_stream_id_manager.cc \ quiche/quic/core/proto/cached_network_parameters.pb.cc \ quiche/quic/core/proto/crypto_server_config.pb.cc \ quiche/quic/core/proto/source_address_token.pb.cc \ $(call skiptests,quiche/quic/core/qpack/*.cc) \ quiche/quic/core/quic_ack_listener_interface.cc \ quiche/quic/core/quic_alarm.cc \ quiche/quic/core/quic_bandwidth.cc \ quiche/quic/core/quic_buffered_packet_store.cc \ $(call skiptests,quiche/quic/core/quic_c*.cc) \ quiche/quic/core/quic_data_reader.cc \ quiche/quic/core/quic_data_writer.cc \ quiche/quic/core/quic_datagram_queue.cc \ quiche/quic/core/quic_dispatcher.cc \ quiche/quic/core/quic_error_codes.cc \ quiche/quic/core/quic_flow_controller.cc \ quiche/quic/core/quic_framer.cc \ quiche/quic/core/quic_idle_network_detector.cc \ quiche/quic/core/quic_mtu_discovery.cc \ quiche/quic/core/quic_network_blackhole_detector.cc \ quiche/quic/core/quic_packet_creator.cc \ quiche/quic/core/quic_packet_number.cc \ quiche/quic/core/quic_packets.cc \ quiche/quic/core/quic_path_validator.cc \ quiche/quic/core/quic_ping_manager.cc \ quiche/quic/core/quic_received_packet_manager.cc \ $(call skiptests,quiche/quic/core/quic_s*.cc) \ quiche/quic/core/quic_tag.cc \ quiche/quic/core/quic_time.cc \ quiche/quic/core/quic_time_wait_list_manager.cc \ quiche/quic/core/quic_transmission_info.cc \ quiche/quic/core/quic_types.cc \ quiche/quic/core/quic_unacked_packet_map.cc \ quiche/quic/core/quic_utils.cc \ quiche/quic/core/quic_version_manager.cc \ quiche/quic/core/quic_versions.cc \ quiche/quic/core/quic_write_blocked_list.cc \ quiche/quic/core/tls_chlo_extractor.cc \ quiche/quic/core/tls_client_handshaker.cc \ quiche/quic/core/tls_handshaker.cc \ quiche/quic/core/tls_server_handshaker.cc \ quiche/quic/core/uber_quic_stream_id_manager.cc \ quiche/quic/core/uber_received_packet_manager.cc \ quiche/quic/platform/api/quic_socket_address.cc \ $(call skiptests,quiche/spdy/core/hpack/*.cc) \ quiche/spdy/core/http2_frame_decoder_adapter.cc \ quiche/spdy/core/http2_header_block.cc \ quiche/spdy/core/http2_header_storage.cc \ quiche/spdy/core/recording_headers_handler.cc \ quiche/spdy/core/spdy_alt_svc_wire_format.cc \ quiche/spdy/core/spdy_frame_builder.cc \ quiche/spdy/core/spdy_framer.cc \ quiche/spdy/core/spdy_protocol.cc \ quiche/spdy/core/spdy_simple_arena.cc server_SRCS= server/active_udp_listener.cc \ $(filter-out %_no_html.cc,$(wildcard server/admin/*.cc)) \ server/api_listener_impl.cc \ server/backtrace.cc \ $(wildcard server/config_validation/*.cc) \ server/configuration_impl.cc \ server/drain_manager_impl.cc \ server/factory_context_impl.cc \ server/guarddog_impl.cc \ server/options_impl.cc \ server/options_impl_platform_default.cc \ server/overload_manager_impl.cc \ server/proto_descriptors.cc \ server/regex_engine.cc \ server/server.cc \ server/ssl_context_manager.cc \ server/utils.cc \ server/worker_impl.cc cel_cpp_SRCS= base/ast.cc \ base/internal/managed_memory.cc \ eval/compiler/constant_folding.cc \ eval/compiler/flat_expr_builder.cc \ eval/compiler/qualified_reference_resolver.cc \ eval/compiler/resolver.cc \ eval/eval/attribute_trail.cc \ eval/eval/attribute_utility.cc \ eval/eval/comprehension_step.cc \ eval/eval/const_value_step.cc \ eval/eval/container_access_step.cc \ eval/eval/create_list_step.cc \ eval/eval/create_struct_step.cc \ eval/eval/evaluator_core.cc \ eval/eval/evaluator_stack.cc \ eval/eval/expression_build_warning.cc \ eval/eval/function_step.cc \ eval/eval/ident_step.cc \ eval/eval/jump_step.cc \ eval/eval/logic_step.cc \ eval/eval/select_step.cc \ eval/eval/shadowable_value_step.cc \ eval/eval/ternary_step.cc \ eval/public/ast_rewrite.cc \ eval/public/ast_traverse.cc \ eval/public/ast_traverse_native.cc \ eval/public/builtin_func_registrar.cc \ eval/public/cel_attribute.cc \ eval/public/cel_expr_builder_factory.cc \ eval/public/cel_function.cc \ eval/public/cel_function_registry.cc \ eval/public/cel_number.cc \ eval/public/cel_type_registry.cc \ eval/public/cel_value.cc \ eval/public/comparison_functions.cc \ eval/public/containers/container_backed_map_impl.cc \ eval/public/containers/field_access.cc \ eval/public/containers/internal_field_backed_list_impl.cc \ eval/public/containers/internal_field_backed_map_impl.cc \ eval/public/portable_cel_expr_builder_factory.cc \ eval/public/structs/cel_proto_wrap_util.cc \ eval/public/structs/cel_proto_wrapper.cc \ eval/public/structs/field_access_impl.cc \ eval/public/structs/proto_message_type_adapter.cc \ eval/public/structs/protobuf_descriptor_type_provider.cc \ eval/public/unknown_function_result_set.cc \ extensions/protobuf/memory_manager.cc \ internal/overflow.cc \ internal/proto_time_encoding.cc \ internal/proto_util.cc \ internal/utf8.cc \ tools/flatbuffers_backed_impl.cc googleurl_SRCS= base/debug/crash_logging.cc \ base/strings/string_piece.cc \ base/strings/string_util.cc \ base/strings/string_util_constants.cc \ base/strings/utf_string_conversion_utils.cc \ base/strings/utf_string_conversions.cc \ url/gurl.cc \ url/third_party/mozilla/url_parse.cc \ url/url_canon.cc \ url/url_canon_etc.cc \ url/url_canon_filesystemurl.cc \ url/url_canon_fileurl.cc \ url/url_canon_host.cc \ url/url_canon_internal.cc \ url/url_canon_ip.cc \ url/url_canon_mailtourl.cc \ url/url_canon_path.cc \ url/url_canon_pathurl.cc \ url/url_canon_query.cc \ url/url_canon_relative.cc \ url/url_canon_stdstring.cc \ url/url_canon_stdurl.cc \ url/url_constants.cc \ url/url_idna_icu.cc \ url/url_parse_file.cc \ url/url_util.cc server/admin/admin_html_util.o: server/admin/html/admin_html_gen.h server/admin/html/admin_html_gen.h: cd server/admin/html && $(SHELL) generate_admin_html.sh \ admin_head_start.html admin.css active_stats.js \ active_params.html > admin_html_gen.h # XXX: $@ does not play well with VPATH :( %.o: %.cc $(CCACHE) $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(<:.cc=.o) -c $< maybe_city = $(if $(shell nm -C common/access_log/access_log_impl.o \ | grep ::hash_internal::CityHash),city) ABSEIL_LIBS=\ base $(maybe_city) cord cordz_functions cordz_info flags_commandlineflag \ flags_internal flags_marshalling flags_parse flags_reflection \ hash raw_hash_set spinlock_wait stacktrace status statusor \ str_format_internal strings symbolize synchronization \ throw_delegate time time_zone LIBS= $(addprefix -labsl_,$(ABSEIL_LIBS)) \ -lbrotlidec -lbrotlienc -lcares -lcircllhist -lcrypto -lcurl \ -levent -levent_pthreads -lfmt -lgpr -lgrpc -lgrpc++ -licuuc \ -lnghttp2 -lopentracing -lprotobuf -lpthread -lre2 -lssl \ -lupb -lxxhash -lyaml-cpp -lz -lzstd VPATH= ../.. envoy: $(addprefix ../api/,$(api_OBJS)) $(source_OBJS) $(external_OBJS) $(CCACHE) $(CXX) $(LDFLAGS) -o $@ $^ $(LIBS) -Wl,-error-limit=0 ./$@ --version all: envoy .PHONY: all install