mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
Update Erlang.mk
This commit is contained in:
parent
70d393caad
commit
c47f1e5fb8
1 changed files with 113 additions and 17 deletions
130
erlang.mk
vendored
130
erlang.mk
vendored
|
@ -17,7 +17,7 @@
|
||||||
ERLANG_MK_FILENAME := $(realpath $(lastword $(MAKEFILE_LIST)))
|
ERLANG_MK_FILENAME := $(realpath $(lastword $(MAKEFILE_LIST)))
|
||||||
export ERLANG_MK_FILENAME
|
export ERLANG_MK_FILENAME
|
||||||
|
|
||||||
ERLANG_MK_VERSION = 2331c34
|
ERLANG_MK_VERSION = 472c405
|
||||||
ERLANG_MK_WITHOUT =
|
ERLANG_MK_WITHOUT =
|
||||||
|
|
||||||
# Make 3.81 and 3.82 are deprecated.
|
# Make 3.81 and 3.82 are deprecated.
|
||||||
|
@ -1633,6 +1633,14 @@ pkg_escalus_fetch = git
|
||||||
pkg_escalus_repo = https://github.com/esl/escalus
|
pkg_escalus_repo = https://github.com/esl/escalus
|
||||||
pkg_escalus_commit = master
|
pkg_escalus_commit = master
|
||||||
|
|
||||||
|
PACKAGES += esh_mk
|
||||||
|
pkg_esh_mk_name = esh_mk
|
||||||
|
pkg_esh_mk_description = esh template engine plugin for erlang.mk
|
||||||
|
pkg_esh_mk_homepage = https://github.com/crownedgrouse/esh.mk
|
||||||
|
pkg_esh_mk_fetch = git
|
||||||
|
pkg_esh_mk_repo = https://github.com/crownedgrouse/esh.mk.git
|
||||||
|
pkg_esh_mk_commit = master
|
||||||
|
|
||||||
PACKAGES += espec
|
PACKAGES += espec
|
||||||
pkg_espec_name = espec
|
pkg_espec_name = espec
|
||||||
pkg_espec_description = ESpec: Behaviour driven development framework for Erlang
|
pkg_espec_description = ESpec: Behaviour driven development framework for Erlang
|
||||||
|
@ -2327,7 +2335,7 @@ pkg_jsx_description = An Erlang application for consuming, producing and manipul
|
||||||
pkg_jsx_homepage = https://github.com/talentdeficit/jsx
|
pkg_jsx_homepage = https://github.com/talentdeficit/jsx
|
||||||
pkg_jsx_fetch = git
|
pkg_jsx_fetch = git
|
||||||
pkg_jsx_repo = https://github.com/talentdeficit/jsx
|
pkg_jsx_repo = https://github.com/talentdeficit/jsx
|
||||||
pkg_jsx_commit = master
|
pkg_jsx_commit = main
|
||||||
|
|
||||||
PACKAGES += kafka
|
PACKAGES += kafka
|
||||||
pkg_kafka_name = kafka
|
pkg_kafka_name = kafka
|
||||||
|
@ -4826,7 +4834,7 @@ define dep_autopatch_rebar.erl
|
||||||
Write("\npre-app::\n\t@$$\(MAKE) --no-print-directory -f c_src/Makefile.erlang.mk\n"),
|
Write("\npre-app::\n\t@$$\(MAKE) --no-print-directory -f c_src/Makefile.erlang.mk\n"),
|
||||||
PortSpecWrite(io_lib:format("ERL_CFLAGS ?= -finline-functions -Wall -fPIC -I \\"~s/erts-~s/include\\" -I \\"~s\\"\n",
|
PortSpecWrite(io_lib:format("ERL_CFLAGS ?= -finline-functions -Wall -fPIC -I \\"~s/erts-~s/include\\" -I \\"~s\\"\n",
|
||||||
[code:root_dir(), erlang:system_info(version), code:lib_dir(erl_interface, include)])),
|
[code:root_dir(), erlang:system_info(version), code:lib_dir(erl_interface, include)])),
|
||||||
PortSpecWrite(io_lib:format("ERL_LDFLAGS ?= -L \\"~s\\" -lerl_interface -lei\n",
|
PortSpecWrite(io_lib:format("ERL_LDFLAGS ?= -L \\"~s\\" -lei\n",
|
||||||
[code:lib_dir(erl_interface, lib)])),
|
[code:lib_dir(erl_interface, lib)])),
|
||||||
[PortSpecWrite(["\n", E, "\n"]) || E <- OsEnv],
|
[PortSpecWrite(["\n", E, "\n"]) || E <- OsEnv],
|
||||||
FilterEnv = fun(Env) ->
|
FilterEnv = fun(Env) ->
|
||||||
|
@ -5374,11 +5382,16 @@ define makedep.erl
|
||||||
string:join(DirSubname ++ [atom_to_list(Target)], "/")
|
string:join(DirSubname ++ [atom_to_list(Target)], "/")
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
ok = file:write_file("$(1)", unicode:characters_to_binary([
|
Output0 = [
|
||||||
"# Generated by Erlang.mk. Edit at your own risk!\n\n",
|
"# Generated by Erlang.mk. Edit at your own risk!\n\n",
|
||||||
[[F, "::", [[" ", D] || D <- Deps], "; @touch \$$@\n"] || {F, Deps} <- Depend],
|
[[F, "::", [[" ", D] || D <- Deps], "; @touch \$$@\n"] || {F, Deps} <- Depend],
|
||||||
"\nCOMPILE_FIRST +=", [[" ", TargetPath(CF)] || CF <- CompileFirst], "\n"
|
"\nCOMPILE_FIRST +=", [[" ", TargetPath(CF)] || CF <- CompileFirst], "\n"
|
||||||
])),
|
],
|
||||||
|
Output = case "é" of
|
||||||
|
[233] -> unicode:characters_to_binary(Output0);
|
||||||
|
_ -> Output0
|
||||||
|
end,
|
||||||
|
ok = file:write_file("$(1)", Output),
|
||||||
halt()
|
halt()
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -5538,9 +5551,23 @@ test-deps: $(ALL_TEST_DEPS_DIRS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(wildcard $(TEST_DIR)),)
|
ifneq ($(wildcard $(TEST_DIR)),)
|
||||||
test-dir:
|
test-dir: $(ERLANG_MK_TMP)/$(PROJECT).last-testdir-build
|
||||||
$(gen_verbose) erlc -v $(TEST_ERLC_OPTS) -o $(TEST_DIR) \
|
@:
|
||||||
-pa ebin/ -I include/ $(call core_find,$(TEST_DIR)/,*.erl)
|
|
||||||
|
test_erlc_verbose_0 = @echo " ERLC " $(filter-out $(patsubst %,%.erl,$(ERLC_EXCLUDE)),\
|
||||||
|
$(filter %.erl %.core,$(notdir $(FILES_TO_COMPILE))));
|
||||||
|
test_erlc_verbose_2 = set -x;
|
||||||
|
test_erlc_verbose = $(test_erlc_verbose_$(V))
|
||||||
|
|
||||||
|
define compile_test_erl
|
||||||
|
$(test_erlc_verbose) erlc -v $(TEST_ERLC_OPTS) -o $(TEST_DIR) \
|
||||||
|
-pa ebin/ -I include/ $(1)
|
||||||
|
endef
|
||||||
|
|
||||||
|
ERL_TEST_FILES = $(call core_find,$(TEST_DIR)/,*.erl)
|
||||||
|
$(ERLANG_MK_TMP)/$(PROJECT).last-testdir-build: $(ERL_TEST_FILES) $(MAKEFILE_LIST)
|
||||||
|
$(eval FILES_TO_COMPILE := $(if $(filter $(MAKEFILE_LIST),$?),$(filter $(ERL_TEST_FILES),$^),$?))
|
||||||
|
$(if $(strip $(FILES_TO_COMPILE)),$(call compile_test_erl,$(FILES_TO_COMPILE)) && touch $@)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test-build:: IS_TEST=1
|
test-build:: IS_TEST=1
|
||||||
|
@ -5548,14 +5575,14 @@ test-build:: ERLC_OPTS=$(TEST_ERLC_OPTS)
|
||||||
test-build:: $(if $(wildcard src),$(if $(wildcard ebin/test),,clean)) $(if $(IS_APP),,deps test-deps)
|
test-build:: $(if $(wildcard src),$(if $(wildcard ebin/test),,clean)) $(if $(IS_APP),,deps test-deps)
|
||||||
# We already compiled everything when IS_APP=1.
|
# We already compiled everything when IS_APP=1.
|
||||||
ifndef IS_APP
|
ifndef IS_APP
|
||||||
ifneq ($(wildcard $(TEST_DIR)),)
|
|
||||||
$(verbose) $(MAKE) --no-print-directory test-dir ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
|
||||||
endif
|
|
||||||
ifneq ($(wildcard src),)
|
ifneq ($(wildcard src),)
|
||||||
$(verbose) $(MAKE) --no-print-directory $(PROJECT).d ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
$(verbose) $(MAKE) --no-print-directory $(PROJECT).d ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
||||||
$(verbose) $(MAKE) --no-print-directory app-build ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
$(verbose) $(MAKE) --no-print-directory app-build ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
||||||
$(gen_verbose) touch ebin/test
|
$(gen_verbose) touch ebin/test
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(wildcard $(TEST_DIR)),)
|
||||||
|
$(verbose) $(MAKE) --no-print-directory test-dir ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Roughly the same as test-build, but when IS_APP=1.
|
# Roughly the same as test-build, but when IS_APP=1.
|
||||||
|
@ -5563,21 +5590,21 @@ endif
|
||||||
ifdef IS_APP
|
ifdef IS_APP
|
||||||
test-build-app:: ERLC_OPTS=$(TEST_ERLC_OPTS)
|
test-build-app:: ERLC_OPTS=$(TEST_ERLC_OPTS)
|
||||||
test-build-app:: deps test-deps
|
test-build-app:: deps test-deps
|
||||||
ifneq ($(wildcard $(TEST_DIR)),)
|
|
||||||
$(verbose) $(MAKE) --no-print-directory test-dir ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
|
||||||
endif
|
|
||||||
ifneq ($(wildcard src),)
|
ifneq ($(wildcard src),)
|
||||||
$(verbose) $(MAKE) --no-print-directory $(PROJECT).d ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
$(verbose) $(MAKE) --no-print-directory $(PROJECT).d ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
||||||
$(verbose) $(MAKE) --no-print-directory app-build ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
$(verbose) $(MAKE) --no-print-directory app-build ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
||||||
$(gen_verbose) touch ebin/test
|
$(gen_verbose) touch ebin/test
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(wildcard $(TEST_DIR)),)
|
||||||
|
$(verbose) $(MAKE) --no-print-directory test-dir ERLC_OPTS="$(call escape_dquotes,$(TEST_ERLC_OPTS))"
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
clean:: clean-test-dir
|
clean:: clean-test-dir
|
||||||
|
|
||||||
clean-test-dir:
|
clean-test-dir:
|
||||||
ifneq ($(wildcard $(TEST_DIR)/*.beam),)
|
ifneq ($(wildcard $(TEST_DIR)/*.beam),)
|
||||||
$(gen_verbose) rm -f $(TEST_DIR)/*.beam
|
$(gen_verbose) rm -f $(TEST_DIR)/*.beam $(ERLANG_MK_TMP)/$(PROJECT).last-testdir-build
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Copyright (c) 2015-2016, Loïc Hoguin <essen@ninenines.eu>
|
# Copyright (c) 2015-2016, Loïc Hoguin <essen@ninenines.eu>
|
||||||
|
@ -6265,10 +6292,10 @@ LDLIBS += -L"$(ERL_INTERFACE_LIB_DIR)" -lei
|
||||||
|
|
||||||
# Verbosity.
|
# Verbosity.
|
||||||
|
|
||||||
c_verbose_0 = @echo " C " $(?F);
|
c_verbose_0 = @echo " C " $(filter-out $(notdir $(MAKEFILE_LIST) $(C_SRC_ENV)),$(^F));
|
||||||
c_verbose = $(c_verbose_$(V))
|
c_verbose = $(c_verbose_$(V))
|
||||||
|
|
||||||
cpp_verbose_0 = @echo " CPP " $(?F);
|
cpp_verbose_0 = @echo " CPP " $(filter-out $(notdir $(MAKEFILE_LIST) $(C_SRC_ENV)),$(^F));
|
||||||
cpp_verbose = $(cpp_verbose_$(V))
|
cpp_verbose = $(cpp_verbose_$(V))
|
||||||
|
|
||||||
link_verbose_0 = @echo " LD " $(@F);
|
link_verbose_0 = @echo " LD " $(@F);
|
||||||
|
@ -6514,6 +6541,74 @@ help::
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Copyright (c) 2020, Loïc Hoguin <essen@ninenines.eu>
|
||||||
|
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
||||||
|
|
||||||
|
ifdef CONCUERROR_TESTS
|
||||||
|
|
||||||
|
.PHONY: concuerror distclean-concuerror
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
|
||||||
|
CONCUERROR_LOGS_DIR ?= $(CURDIR)/logs
|
||||||
|
CONCUERROR_OPTS ?=
|
||||||
|
|
||||||
|
# Core targets.
|
||||||
|
|
||||||
|
check:: concuerror
|
||||||
|
|
||||||
|
ifndef KEEP_LOGS
|
||||||
|
distclean:: distclean-concuerror
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Plugin-specific targets.
|
||||||
|
|
||||||
|
$(ERLANG_MK_TMP)/Concuerror/bin/concuerror: | $(ERLANG_MK_TMP)
|
||||||
|
$(verbose) git clone https://github.com/parapluu/Concuerror $(ERLANG_MK_TMP)/Concuerror
|
||||||
|
$(verbose) $(MAKE) -C $(ERLANG_MK_TMP)/Concuerror
|
||||||
|
|
||||||
|
$(CONCUERROR_LOGS_DIR):
|
||||||
|
$(verbose) mkdir -p $(CONCUERROR_LOGS_DIR)
|
||||||
|
|
||||||
|
define concuerror_html_report
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Concuerror HTML report</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Concuerror HTML report</h1>
|
||||||
|
<p>Generated on $(concuerror_date)</p>
|
||||||
|
<ul>
|
||||||
|
$(foreach t,$(concuerror_targets),<li><a href="$(t).txt">$(t)</a></li>)
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
endef
|
||||||
|
|
||||||
|
concuerror: $(addprefix concuerror-,$(subst :,-,$(CONCUERROR_TESTS)))
|
||||||
|
$(eval concuerror_date := $(shell date))
|
||||||
|
$(eval concuerror_targets := $^)
|
||||||
|
$(verbose) $(call core_render,concuerror_html_report,$(CONCUERROR_LOGS_DIR)/concuerror.html)
|
||||||
|
|
||||||
|
define concuerror_target
|
||||||
|
.PHONY: concuerror-$1-$2
|
||||||
|
|
||||||
|
concuerror-$1-$2: test-build | $(ERLANG_MK_TMP)/Concuerror/bin/concuerror $(CONCUERROR_LOGS_DIR)
|
||||||
|
$(ERLANG_MK_TMP)/Concuerror/bin/concuerror \
|
||||||
|
--pa $(CURDIR)/ebin --pa $(TEST_DIR) \
|
||||||
|
-o $(CONCUERROR_LOGS_DIR)/concuerror-$1-$2.txt \
|
||||||
|
$$(CONCUERROR_OPTS) -m $1 -t $2
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach test,$(CONCUERROR_TESTS),$(eval $(call concuerror_target,$(firstword $(subst :, ,$(test))),$(lastword $(subst :, ,$(test))))))
|
||||||
|
|
||||||
|
distclean-concuerror:
|
||||||
|
$(gen_verbose) rm -rf $(CONCUERROR_LOGS_DIR)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
# Copyright (c) 2013-2016, Loïc Hoguin <essen@ninenines.eu>
|
# Copyright (c) 2013-2016, Loïc Hoguin <essen@ninenines.eu>
|
||||||
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
||||||
|
|
||||||
|
@ -7636,6 +7731,7 @@ $(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST): | $(ERLANG_MK_TMP)
|
||||||
ifeq ($(IS_APP)$(IS_DEP),)
|
ifeq ($(IS_APP)$(IS_DEP),)
|
||||||
$(verbose) rm -f $(ERLANG_MK_RECURSIVE_TMP_LIST)
|
$(verbose) rm -f $(ERLANG_MK_RECURSIVE_TMP_LIST)
|
||||||
endif
|
endif
|
||||||
|
$(verbose) touch $(ERLANG_MK_RECURSIVE_TMP_LIST)
|
||||||
$(verbose) set -e; for dep in $^ ; do \
|
$(verbose) set -e; for dep in $^ ; do \
|
||||||
if ! grep -qs ^$$dep$$ $(ERLANG_MK_RECURSIVE_TMP_LIST); then \
|
if ! grep -qs ^$$dep$$ $(ERLANG_MK_RECURSIVE_TMP_LIST); then \
|
||||||
echo $$dep >> $(ERLANG_MK_RECURSIVE_TMP_LIST); \
|
echo $$dep >> $(ERLANG_MK_RECURSIVE_TMP_LIST); \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue