1
1
define USAGE
2
2
Simple Usage:
3
- make build builds qemu and kvm targets
4
- make check runs the compiler warning checks but doesn't compile
5
- make docker builds docker container and runs the unittests
6
- make clean remove built files in bin/
7
- make deepclean clean everything. No really.
8
- make publish publish doc/ folder to gh-pages
3
+ make build builds qemu and kvm targets
4
+ make check runs the compiler warning checks but doesn't compile
5
+ make docker builds docker container and runs the unittests
6
+ make clean remove built files in bin/
7
+ make deepclean clean everything. No really.
8
+ make publish publish doc/ folder to gh-pages
9
9
make hw-results collect hardware results from known sources
10
- make test run the unittests in QEMU
11
- make run run the litmus tests in QEMU
10
+ make test run the unittests in QEMU
11
+ make run run the litmus tests in QEMU
12
+ make tools build supporting tooling
12
13
endef
13
14
14
15
define ADV_USAGE
@@ -19,6 +20,10 @@ Advanced Usage:
19
20
Runs qemu_unittests.exe in the background and attaches gdb
20
21
make build-unittests
21
22
Builds the unittests and generates qemu_unittests.exe
23
+ make tools
24
+ Builds associated tooling
25
+ make translate-toml-tests
26
+ Runs the automated TOML test translator
22
27
make lint
23
28
Runs automated linter against all litmus test C files and quits
24
29
See LINTER option below
@@ -27,6 +32,8 @@ Advanced Usage:
27
32
See LITMUS_TESTS and MAKE_TEST_LIST_CMD options below
28
33
make cleanlibs
29
34
remove built harness objects but leave compiled tests alone
35
+ make cleantools
36
+ remove built tool files
30
37
make cleantests
31
38
remove auto-generated test files in litmus/
32
39
make docker-interact
@@ -112,6 +119,12 @@ OBJDUMP = $(PREFIX)objdump
112
119
QEMU = qemu-system-aarch64
113
120
GDB = $(PREFIX ) gdb
114
121
122
+ # dependency roots
123
+ # by default we assume rems-project/ repos are siblings to this one
124
+ # and litmus-tests/ org repos are a sibling to rems-project
125
+ REMSORGDIR = ../
126
+ LITMUSORGDIR = ../../litmus-tests/
127
+
115
128
# use `taskset` to force QEMU to exist only on some cores
116
129
# e.g. for big.LITTLE implementations
117
130
#
@@ -189,7 +202,7 @@ CFLAGS = -O0 -nostdlib \
189
202
$(CFLAGS_DEPS ) \
190
203
-ffreestanding -fno-omit-frame-pointer -fno-pie -fno-pic \
191
204
-mstrict-align \
192
- -march=armv8-a+nofp \
205
+ -march=armv8.5 -a+nofp \
193
206
-Wall $(addprefix -Wno-,$(CCNOWARN ) ) $(addprefix -Werror=,$(CCERRORS ) ) \
194
207
-Wextra -Wno-unused-parameter -Wno-sign-compare \
195
208
-Wshadow \
@@ -215,6 +228,16 @@ LINTER_ARGS = $(foreach e,$(LINTER_EXCLUDES),-e $(e))
215
228
216
229
NO_LINT = 0
217
230
231
+ # toml-translator arguments:
232
+ # TOML_TESTS: list of tests or @all file to translate.
233
+ # TOML_TRANSLATOR_ISLA_CONFIG: isla architecture config toml file.
234
+ # TOML_TRANSLATOR_ISLA_ARCH: isla architecture ir (or irx) file.
235
+ # TOML_TRANSLATOR_IGNORE_LIST: txt file with list of toml tests to ignore.
236
+ TOML_TESTS = $(LITMUSORGDIR ) /litmus-tests-armv8a-system-vmsa/tests/@all
237
+ TOML_TRANSLATOR_ISLA_CONFIG = $(REMSORGDIR ) /isla/configs/armv8p5.toml
238
+ TOML_TRANSLATOR_ISLA_ARCH = $(REMSORGDIR ) /isla-snapshots/armv8p5.ir
239
+ TOML_TRANSLATOR_IGNORE_LIST = ./tools/litmus-toml-translator/toml-tests-ignore.txt
240
+
218
241
ifneq ($(findstring help,$(filter-out --% ,$(MAKECMDGOALS ) ) ) ,)
219
242
TARGET_HELP = 1
220
243
endif
@@ -231,6 +254,7 @@ include mk/docs.mk
231
254
include mk/qemu.mk
232
255
include mk/build.mk
233
256
include mk/docker.mk
257
+ include mk/tools.mk
234
258
235
259
define INSTALL
236
260
$(call run_cmd,INSTALL,./$(2 ) ,\
@@ -267,6 +291,7 @@ cleantests:
267
291
$(call CLEAN,-f,litmus/test_list.txt)
268
292
$(call CLEAN,-f,litmus/group_list.txt)
269
293
$(call CLEAN,-f,litmus/linter.log)
294
+ $(call CLEAN,-rf,litmus/litmus_tests/generated)
270
295
271
296
# list of PHONY targets that will need
272
297
# files in the litmus/litmus_tests/ dir
@@ -434,6 +459,10 @@ LITMUS_TARGETS += run
434
459
include mk/litmus.mk
435
460
include mk/unittests.mk
436
461
462
+ # target populated by mk/tools.mk
463
+ .PHONY : tools
464
+ tools :
465
+
437
466
# provide a list of all the potential build- targets
438
467
.PHONY : list
439
468
list :
0 commit comments