diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 76 |
1 files changed, 56 insertions, 20 deletions
@@ -2,13 +2,14 @@ PROJECT = cowboy PROJECT_DESCRIPTION = Small, fast, modern HTTP server. -PROJECT_VERSION = 2.8.0 +PROJECT_VERSION = 2.13.0 PROJECT_REGISTERED = cowboy_clock # Options. -PLT_APPS = public_key ssl +PLT_APPS = public_key ssl # ct_helper gun common_test inets CT_OPTS += -ct_hooks cowboy_ct_hook [] # -boot start_sasl +#CT_OPTS += +JPperf true +S 1 # Dependencies. @@ -16,7 +17,12 @@ LOCAL_DEPS = crypto DEPS = cowlib ranch dep_cowlib = git https://github.com/ninenines/cowlib master -dep_ranch = git https://github.com/ninenines/ranch 1.7.1 +dep_ranch = git https://github.com/ninenines/ranch 1.8.1 + +ifeq ($(COWBOY_QUICER),1) +DEPS += quicer +dep_quicer = git https://github.com/emqx/quic main +endif DOC_DEPS = asciideck @@ -29,19 +35,40 @@ dep_gun = git https://github.com/ninenines/gun master dep_ci.erlang.mk = git https://github.com/ninenines/ci.erlang.mk master DEP_EARLY_PLUGINS = ci.erlang.mk -AUTO_CI_OTP ?= OTP-LATEST-22+ -AUTO_CI_HIPE ?= OTP-LATEST -# AUTO_CI_ERLLVM ?= OTP-LATEST -AUTO_CI_WINDOWS ?= OTP-LATEST-22+ +AUTO_CI_OTP ?= OTP-LATEST-24+ +AUTO_CI_WINDOWS ?= OTP-LATEST-24+ + +# Hex configuration. + +define HEX_TARBALL_EXTRA_METADATA +#{ + licenses => [<<"ISC">>], + links => #{ + <<"User guide">> => <<"https://ninenines.eu/docs/en/cowboy/2.13/guide/">>, + <<"Function reference">> => <<"https://ninenines.eu/docs/en/cowboy/2.13/manual/">>, + <<"GitHub">> => <<"https://github.com/ninenines/cowboy">>, + <<"Sponsor">> => <<"https://github.com/sponsors/essen">> + } +} +endef + +hex_req_ranch = >= 1.8.0 and < 3.0.0 +hex_req_cowlib = >= 2.14.0 and < 3.0.0 # Standard targets. include erlang.mk -# Don't run the examples test suite by default. +# Don't run the examples/autobahn test suites by default. ifndef FULL -CT_SUITES := $(filter-out examples ws_autobahn,$(CT_SUITES)) +CT_SUITES := $(filter-out examples http_perf ws_autobahn ws_perf,$(CT_SUITES)) +endif + +# Don't run HTTP/3 test suites on Windows. + +ifeq ($(PLATFORM),msys2) +CT_SUITES := $(filter-out rfc9114 rfc9204 rfc9220,$(CT_SUITES)) endif # Compile options. @@ -49,13 +76,23 @@ endif ERLC_OPTS += +warn_missing_spec +warn_untyped_record # +bin_opt_info TEST_ERLC_OPTS += +'{parse_transform, eunit_autoexport}' +ifeq ($(COWBOY_QUICER),1) +ERLC_OPTS += -D COWBOY_QUICER=1 +TEST_ERLC_OPTS += -D COWBOY_QUICER=1 +endif + # Generate rebar.config on build. app:: rebar.config +# Fix quicer compilation for HTTP/3. + +autopatch-quicer:: + $(verbose) printf "%s\n" "all: ;" > $(DEPS_DIR)/quicer/c_src/Makefile.erlang.mk + # Dialyze the tests. -DIALYZER_OPTS += --src -r test +#DIALYZER_OPTS += --src -r test # h2spec setup. @@ -74,19 +111,14 @@ $(H2SPEC): $(verbose) git clone --depth 1 https://github.com/summerwind/h2spec $(dir $(H2SPEC)) || true $(verbose) $(MAKE) -C $(dir $(H2SPEC)) build MAKEFLAGS= || true -# Use erl_make_certs from the tested release during CI -# and ensure that ct_helper is always recompiled. - -ci-setup:: clean deps test-deps - $(gen_verbose) cp ~/.kerl/builds/$(CI_OTP_RELEASE)/otp_src_git/lib/ssl/test/erl_make_certs.erl deps/ct_helper/src/ || true - $(gen_verbose) $(MAKE) -C $(DEPS_DIR)/ct_helper clean app - # Prepare for the release. prepare_tag: + $(verbose) $(warning Hex metadata: $(HEX_TARBALL_EXTRA_METADATA)) + $(verbose) echo $(verbose) echo -n "Most recent tag: " - $(verbose) git tag | tail -n1 - $(verbose) git verify-tag `git tag | tail -n1` + $(verbose) git tag --sort taggerdate | tail -n1 + $(verbose) git verify-tag `git tag --sort taggerdate | tail -n1` $(verbose) echo -n "MAKEFILE: " $(verbose) grep -m1 PROJECT_VERSION Makefile $(verbose) echo -n "APP: " @@ -94,8 +126,11 @@ prepare_tag: $(verbose) echo -n "GUIDE: " $(verbose) grep -h dep_$(PROJECT)_commit doc/src/guide/*.asciidoc || true $(verbose) echo + $(verbose) echo "Links in the README:" + $(verbose) grep http.*:// README.asciidoc + $(verbose) echo $(verbose) echo "Titles in most recent CHANGELOG:" - $(verbose) for f in `ls -r doc/src/guide/migrating_from_*.asciidoc | head -n1`; do \ + $(verbose) for f in `ls -rv doc/src/guide/migrating_from_*.asciidoc | head -n1`; do \ echo $$f:; \ grep == $$f; \ done @@ -103,6 +138,7 @@ prepare_tag: $(verbose) echo "Dependencies:" $(verbose) grep ^DEPS Makefile || echo "DEPS =" $(verbose) grep ^dep_ Makefile || true + $(verbose) grep ^hex_req_ Makefile || true $(verbose) echo $(verbose) echo "rebar.config:" $(verbose) cat rebar.config || true |