forked from 2600hz/kazoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
131 lines (101 loc) · 3.95 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
ROOT = .
RELX = $(ROOT)/utils/relx/relx
KAZOODIRS = core/Makefile applications/Makefile
.PHONY: $(KAZOODIRS) deps core apps xref xref_release dialyze dialyze-apps dialyze-core dialyze-kazoo clean clean-test clean-release build-release tar-release release
all: compile rel/dev-vm.args
compile: ACTION = all
compile: deps $(KAZOODIRS)
$(KAZOODIRS):
$(MAKE) -C $(@D) $(ACTION)
clean: ACTION = clean
clean: $(KAZOODIRS)
$(if $(wildcard *crash.dump), rm *crash.dump)
$(if $(wildcard scripts/log/*), rm -rf scripts/log/*)
$(if $(wildcard rel/dev-vm.args), rm rel/dev-vm.args)
clean-test: ACTION = clean-test
clean-test: $(KAZOODIRS)
clean-kazoo: ACTION = clean
clean-kazoo: $(KAZOODIRS)
compile-test: ACTION = compile-test
compile-test: $(KAZOODIRS)
eunit: ACTION = eunit
eunit: $(KAZOODIRS)
proper: ACTION = eunit
proper: ERLC_OPTS += -DPROPER
proper: $(KAZOODIRS)
test: ACTION = test
test: ERLC_OPTS += -DPROPER
test: $(KAZOODIRS)
clean-deps:
$(if $(wildcard deps/), $(MAKE) -C deps/ clean)
$(if $(wildcard deps/), rm -r deps/)
.erlang.mk: ERLANGMK_VERSION = '2.0.0-pre.2'
.erlang.mk:
wget 'https://raw.githubusercontent.com/ninenines/erlang.mk/$(ERLANGMK_VERSION)/erlang.mk' -O $(ROOT)/erlang.mk
deps: deps/Makefile
$(MAKE) -C deps/ all
deps/Makefile: .erlang.mk
mkdir -p deps
$(MAKE) -f erlang.mk deps
cp $(ROOT)/make/Makefile.deps deps/Makefile
core:
$(MAKE) -C core/ all
apps:
$(MAKE) -C applications/ all
kazoo: core apps
clean-release:
$(if $(wildcard _rel/), rm -r _rel/)
$(if $(wildcard rel/relx.config rel/vm.args rel/dev-vm.args), \
rm $(wildcard rel/relx.config rel/vm.args rel/dev-vm.args) )
build-release: clean-release rel/relx.config rel/vm.args
$(RELX) --config rel/relx.config -V 2 release --relname 'kazoo'
tar-release: rel/relx.config rel/vm.args
$(RELX) --config rel/relx.config -V 2 release tar --relname 'kazoo'
rel/relx.config: rel/relx.config.src
$(ROOT)/scripts/src2any.escript $<
rel/dev-vm.args: rel/args # Used by scripts/dev-start-*.sh
cp $^ $@
rel/vm.args: rel/args rel/dev-vm.args
( cat $<; echo '$${KZname}' ) > $@
## More ACTs at //github.com/erlware/relx/priv/templates/extended_bin
release: ACT ?= console # start | attach | stop | console | foreground
release: REL ?= whistle_apps # whistle_apps | ecallmgr | …
release:
ifeq ($(REL),ecallmgr)
@export KAZOO_APPS='ecallmgr'
@RELX_REPLACE_OS_VARS=true KZname='-name $(REL)' _rel/kazoo/bin/kazoo $(ACT) "$$@"
else
@RELX_REPLACE_OS_VARS=true KZname='-name $(REL)' _rel/kazoo/bin/kazoo $(ACT) "$$@"
endif
DIALYZER ?= dialyzer
PLT ?= .kazoo.plt
$(PLT): DEPS_SRCS ?= $(shell find $(ROOT)/deps -name src )
# $(PLT): CORE_EBINS ?= $(shell find $(ROOT)/core -name ebin)
$(PLT):
@$(DIALYZER) --no_native --build_plt --output_plt $(PLT) \
--apps erts kernel stdlib crypto public_key ssl \
-r $(DEPS_SRCS)
@for ebin in $(CORE_EBINS); do \
$(DIALYZER) --no_native --add_to_plt --plt $(PLT) --output_plt $(PLT) -r $$ebin; \
done
build-plt: $(PLT)
dialyze-kazoo: TO_DIALYZE = $(shell find $(ROOT)/applications $(ROOT)/core -name ebin)
dialyze-kazoo: dialyze
dialyze-apps: TO_DIALYZE = $(shell find $(ROOT)/applications -name ebin)
dialyze-apps: dialyze
dialyze-core: TO_DIALYZE = $(shell find $(ROOT)/core -name ebin)
dialyze-core: dialyze
dialyze: TO_DIALYZE ?= $(shell find $(ROOT)/applications -name ebin)
dialyze: $(PLT)
@$(ROOT)/scripts/check-dialyzer.escript $(ROOT)/.kazoo.plt $(TO_DIALYZE)
xref: TO_XREF ?= $(shell find $(ROOT)/applications $(ROOT)/core $(ROOT)/deps -name ebin)
xref:
@$(ROOT)/scripts/check-xref.escript $(TO_XREF)
xref_release: TO_XREF = $(shell find $(ROOT)/_rel/kazoo/lib -name ebin)
xref_release:
@$(ROOT)/scripts/check-xref.escript $(TO_XREF)
sup_completion: sup_completion_file = $(ROOT)/sup.bash
sup_completion: kazoo
@$(if $(wildcard $(sup_completion_file)), rm $(sup_completion_file))
@$(ROOT)/scripts/sup-build-autocomplete.escript $(sup_completion_file) applications/ core/
@echo SUP Bash completion file written at $(sup_completion_file)