Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
81 lines (58 loc) · 2.03 KB
/
Copy pathMakefile
File metadata and controls
81 lines (58 loc) · 2.03 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
SHELL = /bin/sh
thisdir = $(shell pwd)
# Generic Rules
# --------------------------------------------------
all: debug-all release-all coverage-all
check: debug-check check-release coverage-check
install: debug-install release-install coverage-install
# End of file
# CMake debug build
# --------------------------------------------------
debug-all: build/debug/Makefile
$(MAKE) -C build/debug all
debug-check: debug-all
$(MAKE) -C build/debug test
debug-install: debug-all
$(MAKE) -C build/debug install
build/debug/Makefile:
mkdir -p $(@D)
cd $(@D) && cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX:PATH=$(thisdir)/build/debug ../..
.PHONY: debug-all debug-check debug-install
# CMake release build
# --------------------------------------------------
release-all: build/release/src/Makefile
$(MAKE) -C build/release/src
check-release: release-all
$(MAKE) -C build/release/src test
release-install: release-all
$(MAKE) -C build/release/src install
build/release/src/Makefile:
mkdir -p $(@D)
cd $(@D) && cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX:PATH=$(thisdir)/build/release ../../..
.PHONY: release-all check-release release-install
# CMake coverage build
# --------------------------------------------------
coverage-all: build/coverage/src/Makefile
$(MAKE) -C build/coverage/src
coverage-check: coverage-all
$(MAKE) -C build/coverage/src test
coverage-install: coverage-all
$(MAKE) -C build/coverage/src install
build/coverage/src/Makefile:
mkdir -p $(@D)
cd $(@D) && cmake \
-DWITH_COVERAGE=YES \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX:PATH=$(thisdir)/build/coverage ../../..
.PHONY: coverage-all coverage-check coverage-install
coverage-check-report: check-coverage
cd ./build/coverage/src/CMakeFiles/verilogparser.dir/ ; \
gcov -abcf *.o ; \
lcov --directory . -c -o cov.info -t "verilogparser" ; \
genhtml -o ../../../../coverage-report -t "verilogparser" --num-spaces 4 cov.info
@echo "Coverage report available in:"
@echo "./build/coverage-report/index.html"