forked from iamaleksey/oserl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
61 lines (50 loc) · 1.59 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
# ----------------------------------------------------
# Common Macros
# ----------------------------------------------------
ERLC = erlc
STUB_EFLAGS = -W0 -o stubs
RUN_TEST = run_test
ECHO = echo
SED = sed
RM = rm -vf
CP = cp -vf
MV = mv -vf
TOP_DIR = ..
CONFSRC = $(patsubst conf/%.conf.src,%.conf.src,$(wildcard conf/*.conf.src))
CONF = $(CONFSRC:.conf.src=.conf)
SPECSRC = $(patsubst conf/%.spec.src,%.spec.src,$(wildcard conf/*.spec.src))
SPEC = $(SPECSRC:.spec.src=.spec)
ERLS = $(patsubst ../src/%.erl,%.erl,$(wildcard ../src/*.erl))
BEAMS = $(ERLS:.erl=.beam)
MODS = $(BEAMS:.beam=)
STUB_ERLS = $(patsubst stubs/%.erl,%.erl,$(wildcard stubs/*.erl))
STUB_BEAMS = $(STUB_ERLS:.erl=.beam)
## Dependecy Search Paths
VPATH = conf:stubs
.PHONY: all clean test
.SUFFIXES: .erl .hrl .beam .conf.src .conf .spec.src .spec
# ----------------------------------------------------
# Targets
# ----------------------------------------------------
all: $(STUB_BEAMS) $(CONF) $(SPEC) test
test:
cd $(TOP_DIR); $(MAKE)
$(CP) ../ebin/*.beam .
$(RUN_TEST) -dir . -spec ./conf/test.spec -cover ./conf/cover.conf
clean:
$(RM) *.beam
$(RM) stubs/*.beam
$(RM) variables-ct*
$(RM) -R log/*
$(RM) -R conf/*.conf
$(RM) -R conf/*.spec
%.beam: %.erl
@$(ECHO) "$(ERLC) $(STUB_EFLAGS) $^"
@$(ERLC) $(STUB_EFLAGS) $^
%.conf: %.conf.src
@$(ECHO) "Generating conf/$@"
@$(SED) "s|%MODULES%|`echo $(MODS) | tr '[:blank:]' ','`|g" $^ | \
$(SED) "s|%TEST_DIR%|`pwd`|g" > conf/$@
%.spec: %.spec.src
@$(ECHO) "Generating conf/$@"
@$(SED) "s|%TEST_DIR%|`pwd`|g" $^ > conf/$@