-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
67 lines (51 loc) · 1.4 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
# Note: all these files should already be executable
PY_SCRIPTS = src/megalibm_identities.py \
src/megalibm_template_identities.py \
src/megalibm_generate.py \
src/make_website.py \
src/make_table.py \
src/run_example.py \
src/run_tds.py \
src/make_latex.py
PY_BINS = $(foreach p,${PY_SCRIPTS},$(patsubst src/%.py,bin/%,$p))
SH_BINS = bin/nightly.sh bin/retry.sh
# Fill bin
.PHONY: build
build: ${PY_BINS} ${SH_BINS}
# Link python scripts into bin
bin/%: src/%.py requirements/done | bin
cd bin && $(RM) $* && ln -sF ../src/$*.py $*
# Create bin
bin:
mkdir bin
# Run nightly
.PHONY: nightly
nightly: bin/nightly.sh build
$<
# Link nightly script into bin
bin/nightly.sh: src/nightly.sh | bin
cd bin && $(RM) nightly.sh && ln -sF ../src/nightly.sh nightly.sh
# Link retry script into bin
bin/retry.sh: src/retry.sh | bin
cd bin && $(RM) retry.sh && ln -sF ../src/retry.sh retry.sh
# Build requirements
.PHONY: requirements
requirements: requirements/done
# Run requirements script
requirements/done: requirements/build.sh
$<
# Normal clean
.PHONY: clean
clean:
find . -type d -name "__pycache__" -exec ${RM} -r {} +
$(MAKE) -C measurement clean
# Clean requirements
.PHONY: clean-requirements
clean-requirements: requirements/clean.sh
$<
# Clean everything
.PHONY: distclean
distclean: clean clean-requirements
$(RM) -r bin
$(RM) -r nightlies
$(MAKE) -C measurement distclean