Skip to content

Commit 6416929

Browse files
committed
[Yosys+Odin]: adding handy makefile options for users
Signed-off-by: Seyed Alireza Damghani <[email protected]>
1 parent 0994698 commit 6416929

File tree

1 file changed

+50
-13
lines changed

1 file changed

+50
-13
lines changed

ODIN_II/Makefile

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
ODIN_ROOT=$(PWD)
22
NB_OF_PROCESS ?= $(shell /usr/bin/env python3 -c "import multiprocessing; print(multiprocessing.cpu_count())")
33

4+
# handling elaborator name
5+
ifdef ELABORATOR
6+
_ELABORATOR=$(shell echo $(ELABORATOR) | tr '[:lower:]' '[:upper:]')
7+
else
8+
_ELABORATOR=ODIN
9+
endif
10+
11+
# Yosys+Odin-II compile flags
12+
ifeq ($(_ELABORATOR), YOSYS)
13+
_YOSYS_COMPILE_FLAG="-DODIN_USE_YOSYS=ON"
14+
endif
15+
416
################
517
# build with ninja when doable
618
################
@@ -57,33 +69,29 @@ $(ODIN_BUILD_DIR)/.%.build: _init
5769

5870
_set_build: $(ODIN_BUILD_DIR)/.regular.build
5971
cd $(BUILD_DIR) &&\
60-
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) ..
72+
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) $(_YOSYS_COMPILE_FLAG) ..
6173

6274
_set_debug: $(ODIN_BUILD_DIR)/.debug.build
6375
cd $(BUILD_DIR) &&\
64-
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) -DODIN_DEBUG=on ..
76+
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) $(_YOSYS_COMPILE_FLAG) -DODIN_DEBUG=on ..
6577

6678
_set_warn: $(ODIN_BUILD_DIR)/.warn.build
6779
cd $(BUILD_DIR) &&\
68-
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) -DODIN_WARN=on ..
80+
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) $(_YOSYS_COMPILE_FLAG) -DODIN_WARN=on ..
6981

7082
_set_gcov: $(ODIN_BUILD_DIR)/.gcov.build
7183
cd $(BUILD_DIR) &&\
72-
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) -DODIN_COVERAGE=on ..
84+
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) $(_YOSYS_COMPILE_FLAG) -DODIN_COVERAGE=on ..
7385

7486
_set_clang_tidy: $(ODIN_BUILD_DIR)/.tidy.build
7587
cd $(BUILD_DIR) &&\
76-
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) -DODIN_TIDY=on ..
88+
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) $(_YOSYS_COMPILE_FLAG) -DODIN_TIDY=on ..
7789

7890
_set_sanitize: $(ODIN_BUILD_DIR)/.sanitize.build
7991
cd $(BUILD_DIR) &&\
80-
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) -DODIN_SANITIZE=on ..
92+
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) $(_YOSYS_COMPILE_FLAG) -DODIN_SANITIZE=on ..
8193

82-
_set_yosys+odin: $(ODIN_BUILD_DIR)/.yosys+odin.build
83-
cd $(BUILD_DIR) &&\
84-
cmake $(CMAKE_GEN_ARGS) $(CMAKE_ARGS) -DODIN_USE_YOSYS=ON ..
85-
86-
BUILD_IT_TARGETS = build debug warn gcov clang_tidy sanitize yosys+odin
94+
BUILD_IT_TARGETS = build debug warn gcov clang_tidy sanitize
8795
$(foreach t,$(BUILD_IT_TARGETS), $(eval $(call _build_it_gen,$(t))))
8896

8997
scrub:
@@ -105,17 +113,27 @@ test_coverage:
105113
$(MAKE) gcovr
106114

107115
test:
116+
ifeq ($(_ELABORATOR), ODIN)
108117
$(MAKE) sanitize \
109118
&& ./verify_odin.sh --no_report -j $(NB_OF_PROCESS) \
110119
-t regression_test/benchmark/suite/light_suite \
111120
-t regression_test/benchmark/suite/vtr_light_suite \
112121
&& $(MAKE) build \
113122
&& ./verify_odin.sh --no_report --continue -j $(NB_OF_PROCESS) \
114123
-t regression_test/benchmark/suite/heavy_suite; \
115-
./verify_odin.sh --status_only
116-
124+
./verify_odin.sh --status_only
125+
else ifeq ($(_ELABORATOR), YOSYS)
126+
$(MAKE) sanitize ELABORATOR=YOSYS \
127+
&& ./verify_odin.sh --no_report -j $(NB_OF_PROCESS) \
128+
-t regression_test/benchmark/suite/yosys+odin/techmap_lightsuite \
129+
&& $(MAKE) build ELABORATOR=YOSYS \
130+
&& ./verify_odin.sh --no_report --continue -j $(NB_OF_PROCESS) \
131+
-t regression_test/benchmark/suite/yosys+odin/techmap_heavysuite; \
132+
./verify_odin.sh --status_only
133+
endif
117134

118135
generate_expectation:
136+
ifeq ($(_ELABORATOR), ODIN)
119137
$(MAKE) sanitize \
120138
&& ./verify_odin.sh --$@ --no_report -j $(NB_OF_PROCESS) \
121139
-t regression_test/benchmark/suite/light_suite \
@@ -124,8 +142,18 @@ generate_expectation:
124142
&& ./verify_odin.sh --$@ --no_report --continue -j $(NB_OF_PROCESS) \
125143
-t regression_test/benchmark/suite/heavy_suite; \
126144
./verify_odin.sh --status_only
145+
else ifeq ($(_ELABORATOR), YOSYS)
146+
$(MAKE) sanitize ELABORATOR=YOSYS \
147+
&& ./verify_odin.sh --$@ --no_report -j $(NB_OF_PROCESS) \
148+
-t regression_test/benchmark/suite/yosys+odin/techmap_lightsuite \
149+
$(MAKE) build ELABORATOR=YOSYS \
150+
&& ./verify_odin.sh --$@ --no_report --continue -j $(NB_OF_PROCESS) \
151+
-t regression_test/benchmark/suite/yosys+odin/techmap_heavysuite; \
152+
./verify_odin.sh --status_only
153+
endif
127154

128155
regenerate_expectation:
156+
ifeq ($(_ELABORATOR), ODIN)
129157
$(MAKE) sanitize \
130158
&& ./verify_odin.sh --$@ --no_report -j $(NB_OF_PROCESS) \
131159
-t regression_test/benchmark/suite/light_suite \
@@ -134,3 +162,12 @@ regenerate_expectation:
134162
&& ./verify_odin.sh --$@ --no_report --continue -j $(NB_OF_PROCESS) \
135163
-t regression_test/benchmark/suite/heavy_suite; \
136164
./verify_odin.sh --status_only
165+
else ifeq ($(_ELABORATOR), YOSYS)
166+
$(MAKE) sanitize ELABORATOR=YOSYS \
167+
&& ./verify_odin.sh --$@ --no_report -j $(NB_OF_PROCESS) \
168+
-t regression_test/benchmark/suite/yosys+odin/techmap_lightsuite \
169+
$(MAKE) build ELABORATOR=YOSYS \
170+
&& ./verify_odin.sh --$@ --no_report --continue -j $(NB_OF_PROCESS) \
171+
-t regression_test/benchmark/suite/yosys+odin/techmap_heavysuite; \
172+
./verify_odin.sh --status_only
173+
endif

0 commit comments

Comments
 (0)