-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
138 lines (117 loc) · 3.48 KB
/
Makefile
File metadata and controls
138 lines (117 loc) · 3.48 KB
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
132
133
134
135
136
137
138
TMP_PATH="/tmp/cask_html_doc"
HTML_DIR="html"
COV_DIR="coverage"
MAT_DIR="matrices_html"
TMP_COV_PATH="/tmp/cask_coverage"
TMP_MAT_PATH="/tmp/cask_matrices"
TRASH=latex
ROOT_PATH=$(shell pwd)
CMAKE=cmake3
ifeq (, $(shell which cmake3))
CMAKE=cmake
endif
help:
@ echo "Available targets are"
@ echo "To run the entire flow on a benchmark:"
@ echo " mock-flow -- flow for mock designs"
@ echo " sim-flow -- flow for simulation designs"
@ echo ""
@ echo "To run the tests"
@ echo " sim-test -- run simulation tests"
@ echo " "
@ echo " coverage -- run tests (sim, unit, mock) and coverage checks"
@ echo " "
@ echo " upd-doc -- push doc"
@ echo " upd-coverage -- push updated coverage information"
# make this depend on source files?
build/main:
rm -rf build
mkdir -p build
cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && make main -j
hw: build/main
cd src/frontend && python cask.py -t dfe -p ../params.json -b ../../test/test-benchmark -d -bm best
sim: build/main
cd src/frontend && python cask.py -t sim -p ../params.json -b ../../test/test-benchmark -d -rb -rep html
cd build & make -j12
sim-test: sim
cd build && ctest -R sim*
graphs:
cd src/frontend && PYTHONPATH=$(PYTHONPATH):$(ROOT_PATH)/sparsegrind python render_graphs.py
hw-flow:
mkdir -p build
cd build && $(CMAKE) -DBUILD_SIM=true -DBUILD_HW=true -DCMAKE_BUILD_TYPE=Release ..
make -C build Eigen3
make -C build
cd build && ctest -E Client*
sim-flow:
mkdir -p build
cd build && $(CMAKE) -DBUILD_SIM=true -DBUILD_HW=false -DCMAKE_BUILD_TYPE=Release ..
make -C build Eigen3
make -C build
cd build && ctest -E Client*
mock-flow:
mkdir -p build
cd build && $(CMAKE) -DCMAKE_CXX_COMPILER=$(CXX) -DBUILD_SIM=false -DBUILD_HW=false -DCMAKE_BUILD_TYPE=Release ..
make -C build Eigen3
make -C build -j8
cd build && ctest -E Client*
matrix:
# TODO must run build beforehand
bash gen_matrix.sh
rm -rf matrices_html && mkdir -p matrices_html
python gen_matrix_html.py
coverage:
rm -rf build && mkdir -p build
cd build && cmake -DCMAKE_BUILD_TYPE=Debug ..
cd src/frontend && python cask.py -t dfe_mock -p ../params.json -b ../../test/test-benchmark && cd ..
cd src/frontend && python cask.py -t sim -p ../params.json -b ../../test/test-benchmark && cd ..
cd build && make -j12
bash gen_cov
clean-tags:
rm -f tags
tags:
ctags src/spmv/src/*.java src/runtime/*.hpp src/runtime/*.cpp
gtags:
find src/runtime/ include/ test/ -type f -print | gtags -f -
doc:
doxygen docs/doxygen.conf
clean-all-dist:
rm -rf src/spmv/build/{Spmv*,*.class,com,maxpower}
upd-doc: doc
rm -rf ${TMP_PATH}
cp ${HTML_DIR} ${TMP_PATH} -R && rm -rf ${HTML_DIR}
git fetch
git checkout gh-pages
mkdir -p docs
cp ${TMP_PATH}/* docs/ -R
rm -rf ${TRASH}
git add docs/
git commit -m "Update documentation"
git push -u origin gh-pages
rm -rf ${TMP_PATH}
git checkout master
upd-coverage: coverage
rm -rf ${TMP_COV_PATH}
cp ${COV_DIR} ${TMP_COV_PATH} -R && rm -rf ${COV_DIR}
git fetch
git checkout gh-pages
mkdir -p coverage
cp ${TMP_COV_PATH}/* coverage/ -R
git add coverage/
git commit -m "Update coverage"
git push -u origin gh-pages
rm -rf ${TMP_COV_PATH}
git checkout master
upd-matrix: matrix
rm -rf ${TMP_MAT_PATH}
cp ${MAT_DIR} ${TMP_MAT_PATH} -R && rm -rf ${MAT_DIR}
git fetch
git checkout gh-pages
mkdir -p matrices
cp ${TMP_MAT_PATH}/* matrices/ -R
git add matrices/
git commit -m "Update matrix data"
git push -u origin gh-pages
rm -rf ${TMP_MAT_PATH}
git checkout master
.PHONY: doc update-doc tags