forked from erlware-deprecated/sinan
/
Makefile
73 lines (56 loc) · 1.84 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
VSN=2.0.11
ERLC=/usr/local/bin/erlc
ERL=/usr/local/bin/erl
APPDIR= $(abspath ./_build/sinan/lib/sinan-$(VSN))
SRCDIR=src
TESTDIR=test
COPYDIRS= include src test
BEAMDIR=$(APPDIR)/ebin
SMOKETEST_DIR=$(CURDIR)/smoketests
PYPATH=$(PYTHONPATH):$(SMOKETEST_DIR)
BEHAVIOURS= src/sin_task.erl src/sin_dep_resolver.erl
RSYNC_OPTIONS=-vaz --delete
.SUFFIXES: .erl .beam .yrl
vpath %.erl src test
ERL_OBJ = $(patsubst src/%.erl,$(BEAMDIR)/%.beam, $(wildcard $(SRCDIR)/*erl))
ERL_TEST_OBJ = $(patsubst test/%.erl,$(BEAMDIR)/%.beam, $(wildcard $(TESTDIR)/*erl))
all: main
setup: $(COPYDIRS)
for f in $^ ; do \
mkdir -p $(APPDIR)/$$f ; \
rsync $(RSYNC_OPTIONS) $$f $(APPDIR); \
done
mkdir -p $(APPDIR)/ebin;
rsync $(RSYNC_OPTIONS) ebin/sinan.app $(APPDIR)/ebin/sinan.app
build_behaviours: $(BEHAVIOURS)
# make sure sin_task gets built first so its always available
erlc -pa $(BEAMDIR) +warn_export_vars +warn_export_all \
+warn_obsolete_guard \
+warnings_as_errors +bin_opt_info +debug_info -W -o $(BEAMDIR) $(BEHAVIOURS)
main: setup build_behaviours ${ERL_OBJ} ${ERL_TEST_OBJ}
$(BEAMDIR)/%.beam: %.erl
erlc -pa $(BEAMDIR) +warn_export_vars +warn_export_all \
+warn_obsolete_guard \
+warnings_as_errors +bin_opt_info +debug_info -W -o $(BEAMDIR) $<
build: main
erl -pa $(BEAMDIR) -s sinan main -extra -s $(CURDIR) build
escript: main
erl -pa $(BEAMDIR) -s sinan main -extra -s $(CURDIR) escript
cucumber: main
erl -pa $(BEAMDIR) -s sinan main -extra -s $(CURDIR) cucumber
test: main
erl -pa $(BEAMDIR) -s sinan main -extra -s $(CURDIR) test all
run: main
$(ERL) -pa $(BEAMDIR)
debug: main
$(ERL) -pa $(BEAMDIR) -s debugger start
smoketests: main
for f in $(wildcard $(SMOKETEST_DIR)/tests/*.py) ; do \
PYTHONPATH=$(PYPATH) python2 $$f ; \
done
testall : cucumber test smoketests
gh-pages:
./do-gh-pages
clean:
rm -rf _build ;
rm -rf erl_crush.dump