Update erlang.mk
This commit is contained in:
parent
69bcf597e6
commit
ce0d906c3e
|
@ -17,7 +17,7 @@
|
|||
ERLANG_MK_FILENAME := $(realpath $(lastword $(MAKEFILE_LIST)))
|
||||
export ERLANG_MK_FILENAME
|
||||
|
||||
ERLANG_MK_VERSION = 2.0.0-pre.2-256-g2cce185
|
||||
ERLANG_MK_VERSION = 2.0.0-pre.2-278-gd9a9158
|
||||
ERLANG_MK_WITHOUT =
|
||||
|
||||
# Make 3.81 and 3.82 are deprecated.
|
||||
|
@ -2023,6 +2023,14 @@ pkg_ibrowse_fetch = git
|
|||
pkg_ibrowse_repo = https://github.com/cmullaparthi/ibrowse
|
||||
pkg_ibrowse_commit = master
|
||||
|
||||
PACKAGES += idna
|
||||
pkg_idna_name = idna
|
||||
pkg_idna_description = Erlang IDNA lib
|
||||
pkg_idna_homepage = https://github.com/benoitc/erlang-idna
|
||||
pkg_idna_fetch = git
|
||||
pkg_idna_repo = https://github.com/benoitc/erlang-idna
|
||||
pkg_idna_commit = master
|
||||
|
||||
PACKAGES += ierlang
|
||||
pkg_ierlang_name = ierlang
|
||||
pkg_ierlang_description = An Erlang language kernel for IPython.
|
||||
|
@ -2298,9 +2306,9 @@ pkg_kvs_commit = master
|
|||
PACKAGES += lager
|
||||
pkg_lager_name = lager
|
||||
pkg_lager_description = A logging framework for Erlang/OTP.
|
||||
pkg_lager_homepage = https://github.com/basho/lager
|
||||
pkg_lager_homepage = https://github.com/erlang-lager/lager
|
||||
pkg_lager_fetch = git
|
||||
pkg_lager_repo = https://github.com/basho/lager
|
||||
pkg_lager_repo = https://github.com/erlang-lager/lager
|
||||
pkg_lager_commit = master
|
||||
|
||||
PACKAGES += lager_amqp_backend
|
||||
|
@ -2314,9 +2322,9 @@ pkg_lager_amqp_backend_commit = master
|
|||
PACKAGES += lager_syslog
|
||||
pkg_lager_syslog_name = lager_syslog
|
||||
pkg_lager_syslog_description = Syslog backend for lager
|
||||
pkg_lager_syslog_homepage = https://github.com/basho/lager_syslog
|
||||
pkg_lager_syslog_homepage = https://github.com/erlang-lager/lager_syslog
|
||||
pkg_lager_syslog_fetch = git
|
||||
pkg_lager_syslog_repo = https://github.com/basho/lager_syslog
|
||||
pkg_lager_syslog_repo = https://github.com/erlang-lager/lager_syslog
|
||||
pkg_lager_syslog_commit = master
|
||||
|
||||
PACKAGES += lambdapad
|
||||
|
@ -3786,9 +3794,9 @@ pkg_trie_commit = master
|
|||
PACKAGES += triq
|
||||
pkg_triq_name = triq
|
||||
pkg_triq_description = Trifork QuickCheck
|
||||
pkg_triq_homepage = https://github.com/krestenkrab/triq
|
||||
pkg_triq_homepage = https://github.com/triqng/triq
|
||||
pkg_triq_fetch = git
|
||||
pkg_triq_repo = https://github.com/krestenkrab/triq
|
||||
pkg_triq_repo = https://github.com/triqng/triq.git
|
||||
pkg_triq_commit = master
|
||||
|
||||
PACKAGES += tunctl
|
||||
|
@ -4280,7 +4288,7 @@ endef
|
|||
# if given. Do it for all 3 possible Makefile file names.
|
||||
ifeq ($(NO_AUTOPATCH_ERLANG_MK),)
|
||||
define dep_autopatch_erlang_mk
|
||||
$t for f in Makefile makefile GNUmakefile; do \
|
||||
for f in Makefile makefile GNUmakefile; do \
|
||||
if [ -f $(DEPS_DIR)/$1/$$f ]; then \
|
||||
sed -i.bak s/'include *erlang.mk'/'include $$(if $$(ERLANG_MK_FILENAME),$$(ERLANG_MK_FILENAME),erlang.mk)'/ $(DEPS_DIR)/$1/$$f; \
|
||||
fi \
|
||||
|
@ -4357,6 +4365,8 @@ define dep_autopatch_rebar.erl
|
|||
lists:foreach(fun
|
||||
({d, D}) ->
|
||||
Write("ERLC_OPTS += -D" ++ atom_to_list(D) ++ "=1\n");
|
||||
({d, DKey, DVal}) ->
|
||||
Write("ERLC_OPTS += -D" ++ atom_to_list(DKey) ++ "=" ++ atom_to_list(DVal) ++ "\n");
|
||||
({i, I}) ->
|
||||
Write(["ERLC_OPTS += -I ", I, "\n"]);
|
||||
({platform_define, Regex, D}) ->
|
||||
|
@ -4579,7 +4589,7 @@ define dep_autopatch_appsrc_script.erl
|
|||
AppSrc = "$(call core_native_path,$(DEPS_DIR)/$1/src/$1.app.src)",
|
||||
AppSrcScript = AppSrc ++ ".script",
|
||||
Bindings = erl_eval:new_bindings(),
|
||||
{ok, Conf} = file:script(AppSrcScript, Bindings),
|
||||
{ok, [Conf]} = file:script(AppSrcScript, Bindings),
|
||||
ok = file:write_file(AppSrc, io_lib:format("~p.~n", [Conf])),
|
||||
halt()
|
||||
endef
|
||||
|
@ -4731,6 +4741,87 @@ ERLANG_MK_RECURSIVE_REL_DEPS_LIST = $(ERLANG_MK_TMP)/recursive-rel-deps-list.log
|
|||
ERLANG_MK_RECURSIVE_TEST_DEPS_LIST = $(ERLANG_MK_TMP)/recursive-test-deps-list.log
|
||||
ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST = $(ERLANG_MK_TMP)/recursive-shell-deps-list.log
|
||||
|
||||
# Copyright (c) 2015-2017, Loïc Hoguin <essen@ninenines.eu>
|
||||
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
||||
|
||||
.PHONY: distclean-kerl
|
||||
|
||||
KERL_INSTALL_DIR ?= $(HOME)/erlang
|
||||
|
||||
ifeq ($(strip $(KERL)),)
|
||||
KERL := $(ERLANG_MK_TMP)/kerl/kerl
|
||||
endif
|
||||
|
||||
export KERL
|
||||
|
||||
KERL_GIT ?= https://github.com/kerl/kerl
|
||||
KERL_COMMIT ?= master
|
||||
|
||||
KERL_MAKEFLAGS ?=
|
||||
|
||||
OTP_GIT ?= https://github.com/erlang/otp
|
||||
|
||||
define kerl_otp_target
|
||||
ifeq ($(wildcard $(KERL_INSTALL_DIR)/$(1)),)
|
||||
$(KERL_INSTALL_DIR)/$(1): $(KERL)
|
||||
MAKEFLAGS="$(KERL_MAKEFLAGS)" $(KERL) build git $(OTP_GIT) $(1) $(1)
|
||||
$(KERL) install $(1) $(KERL_INSTALL_DIR)/$(1)
|
||||
endif
|
||||
endef
|
||||
|
||||
define kerl_hipe_target
|
||||
ifeq ($(wildcard $(KERL_INSTALL_DIR)/$1-native),)
|
||||
$(KERL_INSTALL_DIR)/$1-native: $(KERL)
|
||||
KERL_CONFIGURE_OPTIONS=--enable-native-libs \
|
||||
MAKEFLAGS="$(KERL_MAKEFLAGS)" $(KERL) build git $(OTP_GIT) $1 $1-native
|
||||
$(KERL) install $1-native $(KERL_INSTALL_DIR)/$1-native
|
||||
endif
|
||||
endef
|
||||
|
||||
$(KERL):
|
||||
$(verbose) mkdir -p $(ERLANG_MK_TMP)
|
||||
$(gen_verbose) git clone --depth 1 $(KERL_GIT) $(ERLANG_MK_TMP)/kerl
|
||||
$(verbose) cd $(ERLANG_MK_TMP)/kerl && git checkout $(KERL_COMMIT)
|
||||
$(verbose) chmod +x $(KERL)
|
||||
|
||||
distclean:: distclean-kerl
|
||||
|
||||
distclean-kerl:
|
||||
$(gen_verbose) rm -rf $(KERL)
|
||||
|
||||
# Allow users to select which version of Erlang/OTP to use for a project.
|
||||
|
||||
ERLANG_OTP ?=
|
||||
ERLANG_HIPE ?=
|
||||
|
||||
# Use kerl to enforce a specific Erlang/OTP version for a project.
|
||||
ifneq ($(strip $(ERLANG_OTP)),)
|
||||
export PATH := $(KERL_INSTALL_DIR)/$(ERLANG_OTP)/bin:$(PATH)
|
||||
SHELL := env PATH=$(PATH) $(SHELL)
|
||||
$(eval $(call kerl_otp_target,$(ERLANG_OTP)))
|
||||
|
||||
# Build Erlang/OTP only if it doesn't already exist.
|
||||
ifeq ($(wildcard $(KERL_INSTALL_DIR)/$(ERLANG_OTP))$(BUILD_ERLANG_OTP),)
|
||||
$(info Building Erlang/OTP $(ERLANG_OTP)... Please wait...)
|
||||
$(shell $(MAKE) $(KERL_INSTALL_DIR)/$(ERLANG_OTP) ERLANG_OTP=$(ERLANG_OTP) BUILD_ERLANG_OTP=1 >&2)
|
||||
endif
|
||||
|
||||
else
|
||||
# Same for a HiPE enabled VM.
|
||||
ifneq ($(strip $(ERLANG_HIPE)),)
|
||||
export PATH := $(KERL_INSTALL_DIR)/$(ERLANG_HIPE)-native/bin:$(PATH)
|
||||
SHELL := env PATH=$(PATH) $(SHELL)
|
||||
$(eval $(call kerl_hipe_target,$(ERLANG_HIPE)))
|
||||
|
||||
# Build Erlang/OTP only if it doesn't already exist.
|
||||
ifeq ($(wildcard $(KERL_INSTALL_DIR)/$(ERLANG_HIPE))$(BUILD_ERLANG_OTP),)
|
||||
$(info Building HiPE-enabled Erlang/OTP $(ERLANG_OTP)... Please wait...)
|
||||
$(shell $(MAKE) $(KERL_INSTALL_DIR)/$(ERLANG_HIPE) ERLANG_HIPE=$(ERLANG_HIPE) BUILD_ERLANG_OTP=1 >&2)
|
||||
endif
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
# Copyright (c) 2015-2016, Loïc Hoguin <essen@ninenines.eu>
|
||||
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
||||
|
||||
|
@ -5966,10 +6057,10 @@ else
|
|||
$(call render_template,bs_erl_nif,src/$n.erl)
|
||||
endif
|
||||
|
||||
# Copyright (c) 2015-2016, Loïc Hoguin <essen@ninenines.eu>
|
||||
# Copyright (c) 2015-2017, Loïc Hoguin <essen@ninenines.eu>
|
||||
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
||||
|
||||
.PHONY: ci ci-prepare ci-setup distclean-kerl
|
||||
.PHONY: ci ci-prepare ci-setup
|
||||
|
||||
CI_OTP ?=
|
||||
CI_HIPE ?=
|
||||
|
@ -5987,24 +6078,9 @@ ifeq ($(strip $(CI_OTP) $(CI_HIPE) $(CI_ERLLVM)),)
|
|||
ci::
|
||||
else
|
||||
|
||||
ifeq ($(strip $(KERL)),)
|
||||
KERL := $(ERLANG_MK_TMP)/kerl/kerl
|
||||
endif
|
||||
|
||||
export KERL
|
||||
|
||||
KERL_GIT ?= https://github.com/kerl/kerl
|
||||
KERL_COMMIT ?= master
|
||||
|
||||
KERL_MAKEFLAGS ?=
|
||||
|
||||
OTP_GIT ?= https://github.com/erlang/otp
|
||||
|
||||
CI_INSTALL_DIR ?= $(HOME)/erlang
|
||||
|
||||
ci:: $(addprefix ci-,$(CI_OTP) $(addsuffix -native,$(CI_HIPE)) $(addsuffix -erllvm,$(CI_ERLLVM)))
|
||||
|
||||
ci-prepare: $(addprefix $(CI_INSTALL_DIR)/,$(CI_OTP) $(addsuffix -native,$(CI_HIPE)))
|
||||
ci-prepare: $(addprefix $(KERL_INSTALL_DIR)/,$(CI_OTP) $(addsuffix -native,$(CI_HIPE)))
|
||||
|
||||
ci-setup::
|
||||
|
||||
|
@ -6014,10 +6090,10 @@ ci_verbose_0 = @echo " CI " $(1);
|
|||
ci_verbose = $(ci_verbose_$(V))
|
||||
|
||||
define ci_target
|
||||
ci-$1: $(CI_INSTALL_DIR)/$2
|
||||
ci-$1: $(KERL_INSTALL_DIR)/$2
|
||||
$(verbose) $(MAKE) --no-print-directory clean
|
||||
$(ci_verbose) \
|
||||
PATH="$(CI_INSTALL_DIR)/$2/bin:$(PATH)" \
|
||||
PATH="$(KERL_INSTALL_DIR)/$2/bin:$(PATH)" \
|
||||
CI_OTP_RELEASE="$1" \
|
||||
CT_OPTS="-label $1" \
|
||||
CI_VM="$3" \
|
||||
|
@ -6029,32 +6105,8 @@ $(foreach otp,$(CI_OTP),$(eval $(call ci_target,$(otp),$(otp),otp)))
|
|||
$(foreach otp,$(CI_HIPE),$(eval $(call ci_target,$(otp)-native,$(otp)-native,native)))
|
||||
$(foreach otp,$(CI_ERLLVM),$(eval $(call ci_target,$(otp)-erllvm,$(otp)-native,erllvm)))
|
||||
|
||||
define ci_otp_target
|
||||
ifeq ($(wildcard $(CI_INSTALL_DIR)/$(1)),)
|
||||
$(CI_INSTALL_DIR)/$(1): $(KERL)
|
||||
MAKEFLAGS="$(KERL_MAKEFLAGS)" $(KERL) build git $(OTP_GIT) $(1) $(1)
|
||||
$(KERL) install $(1) $(CI_INSTALL_DIR)/$(1)
|
||||
endif
|
||||
endef
|
||||
|
||||
$(foreach otp,$(CI_OTP),$(eval $(call ci_otp_target,$(otp))))
|
||||
|
||||
define ci_hipe_target
|
||||
ifeq ($(wildcard $(CI_INSTALL_DIR)/$1-native),)
|
||||
$(CI_INSTALL_DIR)/$1-native: $(KERL)
|
||||
KERL_CONFIGURE_OPTIONS=--enable-native-libs \
|
||||
MAKEFLAGS="$(KERL_MAKEFLAGS)" $(KERL) build git $(OTP_GIT) $1 $1-native
|
||||
$(KERL) install $1-native $(CI_INSTALL_DIR)/$1-native
|
||||
endif
|
||||
endef
|
||||
|
||||
$(foreach otp,$(sort $(CI_HIPE) $(CI_ERLLLVM)),$(eval $(call ci_hipe_target,$(otp))))
|
||||
|
||||
$(KERL):
|
||||
$(verbose) mkdir -p $(ERLANG_MK_TMP)
|
||||
$(gen_verbose) git clone --depth 1 $(KERL_GIT) $(ERLANG_MK_TMP)/kerl
|
||||
$(verbose) cd $(ERLANG_MK_TMP)/kerl && git checkout $(KERL_COMMIT)
|
||||
$(verbose) chmod +x $(KERL)
|
||||
$(foreach otp,$(CI_OTP),$(eval $(call kerl_otp_target,$(otp))))
|
||||
$(foreach otp,$(sort $(CI_HIPE) $(CI_ERLLLVM)),$(eval $(call kerl_hipe_target,$(otp))))
|
||||
|
||||
help::
|
||||
$(verbose) printf "%s\n" "" \
|
||||
|
@ -6064,10 +6116,6 @@ help::
|
|||
"The CI_OTP variable must be defined with the Erlang versions" \
|
||||
"that must be tested. For example: CI_OTP = OTP-17.3.4 OTP-17.5.3"
|
||||
|
||||
distclean:: distclean-kerl
|
||||
|
||||
distclean-kerl:
|
||||
$(gen_verbose) rm -rf $(KERL)
|
||||
endif
|
||||
|
||||
# Copyright (c) 2013-2016, Loïc Hoguin <essen@ninenines.eu>
|
||||
|
@ -6433,6 +6481,60 @@ apps-eunit:
|
|||
endif
|
||||
endif
|
||||
|
||||
# Copyright (c) 2015-2017, Loïc Hoguin <essen@ninenines.eu>
|
||||
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
||||
|
||||
ifeq ($(filter proper,$(DEPS) $(TEST_DEPS)),proper)
|
||||
.PHONY: proper
|
||||
|
||||
# Targets.
|
||||
|
||||
tests:: proper
|
||||
|
||||
define proper_check.erl
|
||||
code:add_pathsa(["$(call core_native_path,$(CURDIR)/ebin)", "$(call core_native_path,$(DEPS_DIR)/*/ebin)"]),
|
||||
Module = fun(M) ->
|
||||
[true] =:= lists:usort([
|
||||
case atom_to_list(F) of
|
||||
"prop_" ++ _ ->
|
||||
io:format("Testing ~p:~p/0~n", [M, F]),
|
||||
proper:quickcheck(M:F());
|
||||
_ ->
|
||||
true
|
||||
end
|
||||
|| {F, 0} <- M:module_info(exports)])
|
||||
end,
|
||||
try
|
||||
case $(1) of
|
||||
all -> [true] =:= lists:usort([Module(M) || M <- [$(call comma_list,$(3))]]);
|
||||
module -> Module($(2));
|
||||
function -> proper:quickcheck($(2))
|
||||
end
|
||||
of
|
||||
true -> halt(0);
|
||||
_ -> halt(1)
|
||||
catch error:undef ->
|
||||
io:format("Undefined property or module?~n~p~n", [erlang:get_stacktrace()]),
|
||||
halt(0)
|
||||
end.
|
||||
endef
|
||||
|
||||
ifdef t
|
||||
ifeq (,$(findstring :,$(t)))
|
||||
proper: test-build
|
||||
$(verbose) $(call erlang,$(call proper_check.erl,module,$(t)))
|
||||
else
|
||||
proper: test-build
|
||||
$(verbose) echo Testing $(t)/0
|
||||
$(verbose) $(call erlang,$(call proper_check.erl,function,$(t)()))
|
||||
endif
|
||||
else
|
||||
proper: test-build
|
||||
$(eval MODULES := $(patsubst %,'%',$(sort $(notdir $(basename $(wildcard ebin/*.beam))))))
|
||||
$(gen_verbose) $(call erlang,$(call proper_check.erl,all,undefined,$(MODULES)))
|
||||
endif
|
||||
endif
|
||||
|
||||
# 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.
|
||||
|
||||
|
@ -6443,7 +6545,7 @@ endif
|
|||
RELX ?= $(ERLANG_MK_TMP)/relx
|
||||
RELX_CONFIG ?= $(CURDIR)/relx.config
|
||||
|
||||
RELX_URL ?= https://github.com/erlware/relx/releases/download/v3.19.0/relx
|
||||
RELX_URL ?= https://github.com/erlware/relx/releases/download/v3.23.0/relx
|
||||
RELX_OPTS ?=
|
||||
RELX_OUTPUT_DIR ?= _rel
|
||||
RELX_REL_EXT ?=
|
||||
|
@ -6489,7 +6591,7 @@ distclean-relx-rel:
|
|||
# Run target.
|
||||
|
||||
ifeq ($(wildcard $(RELX_CONFIG)),)
|
||||
run:
|
||||
run::
|
||||
else
|
||||
|
||||
define get_relx_release.erl
|
||||
|
@ -6513,7 +6615,7 @@ ifeq ($(PLATFORM),msys2)
|
|||
RELX_REL_EXT := .cmd
|
||||
endif
|
||||
|
||||
run: all
|
||||
run:: all
|
||||
$(verbose) $(RELX_OUTPUT_DIR)/$(RELX_REL_NAME)/bin/$(RELX_REL_NAME)$(RELX_REL_EXT) console
|
||||
|
||||
help::
|
||||
|
@ -6579,7 +6681,10 @@ ifeq ($(filter triq,$(DEPS) $(TEST_DEPS)),triq)
|
|||
tests:: triq
|
||||
|
||||
define triq_check.erl
|
||||
code:add_pathsa(["$(call core_native_path,$(CURDIR)/ebin)", "$(call core_native_path,$(DEPS_DIR)/*/ebin)"]),
|
||||
code:add_pathsa([
|
||||
"$(call core_native_path,$(CURDIR)/ebin)",
|
||||
"$(call core_native_path,$(DEPS_DIR)/*/ebin)",
|
||||
"$(call core_native_path,$(TEST_DIR))"]),
|
||||
try
|
||||
case $(1) of
|
||||
all -> [true] =:= lists:usort([triq:check(M) || M <- [$(call comma_list,$(3))]]);
|
||||
|
@ -6590,7 +6695,7 @@ define triq_check.erl
|
|||
true -> halt(0);
|
||||
_ -> halt(1)
|
||||
catch error:undef ->
|
||||
io:format("Undefined property or module~n"),
|
||||
io:format("Undefined property or module?~n~p~n", [erlang:get_stacktrace()]),
|
||||
halt(0)
|
||||
end.
|
||||
endef
|
||||
|
@ -6606,7 +6711,8 @@ triq: test-build
|
|||
endif
|
||||
else
|
||||
triq: test-build
|
||||
$(eval MODULES := $(patsubst %,'%',$(sort $(notdir $(basename $(wildcard ebin/*.beam))))))
|
||||
$(eval MODULES := $(patsubst %,'%',$(sort $(notdir $(basename \
|
||||
$(wildcard ebin/*.beam) $(call core_find,$(TEST_DIR)/,*.beam))))))
|
||||
$(gen_verbose) $(call erlang,$(call triq_check.erl,all,undefined,$(MODULES)))
|
||||
endif
|
||||
endif
|
||||
|
|
Loading…
Reference in New Issue