-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
96 lines (70 loc) · 1.85 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
#
# Copyright : see COPRRIGHT
# License : see LICENSE
#
PROJECT=velo
IDRIS2=idris2
BUILDDIR = ${CURDIR}/build
TARGETDIR = ${BUILDDIR}/exec
TARGET = ${TARGETDIR}/${PROJECT}
# [ Core Project Definition ]
.PHONY: ${PROJECT} doc ${PROJECT}-test-build ${PROJECT}-test-run ${PROJECT}-test-run-re ${PROJECT}-test-update \
# ${PROJECT}-bench
velo:
$(IDRIS2) --build ${PROJECT}.ipkg
doc:
$(IDRIS2) --mkdoc ${PROJECT}.ipkg
# To be activated once frontend is completed.
${PROJECT}-test-build:
${MAKE} -C tests testbin IDRIS2=$(IDRIS2)
${PROJECT}-test-run: ${PROJECT}-test-build
${MAKE} -C tests test \
IDRIS2=$(IDRIS2) \
PROG_BIN=$(TARGET) \
UPDATE='' \
ONLY=$(ONLY)
${PROJECT}-test-run-re: ${PROJECT}-test-build
${MAKE} -C tests test-re \
IDRIS2=$(IDRIS2) \
PROG_BIN=$(TARGET) \
ONLY=$(ONLY)
${PROJECT}-test-update: ${PROJECT}-test-build
${MAKE} -C tests test \
IDRIS2=$(IDRIS2) \
PROG_BIN=$(TARGET) \
THREADS=1 \
ONLY=$(ONLY)
${PROJECT}-bench: ${PROJECT} ${PROJECT}-test-build
${ECHO} "Todo"
# $(HYPERFINE) --warmup 10 '${MAKE} ${PROJECT}-test-run'
# [ Artefact ]
.PHONY: artefact
artefact: clobber velo doc
# The Source Code Archive
git archive \
--prefix=velo/ \
--format=tar.gz \
HEAD \
> artefact/velo.tar.gz
# Generate annotated sources
bash annotate.sh
tar -zcvf artefact/velo_html.tar.gz -C ${BUILDDIR} html
# Generate IdrisDoc
tar -zcvf artefact/velo_doc.tar.gz -C ${BUILDDIR} docs
# The Paper itself
${MAKE} -C paper/2023-EVCS paper.pdf
cp paper/2023-EVCS/__build/paper.pdf artefact/velo.pdf
# The Artefact
${MAKE} -C artefact artefact
# [ Housekeeping ]
.PHONY: clobber clean
clean:
$(IDRIS2) --clean ${PROJECT}.ipkg
${MAKE} -C tests clean
rm -rf build/
clobber: clean
$(IDRIS2) --clean ${PROJECT}.ipkg
${MAKE} -C tests clobber
${RM} -rf build/
${RM} artefact/*.tar.gz
# -- [ EOF ]