-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
60 lines (41 loc) · 1.13 KB
/
Makefile
File metadata and controls
60 lines (41 loc) · 1.13 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
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: Copyright (c) 2014-2026 Chris Dragan
depth =
modules = interpreter
modules += core
modules += modules
modules += tests
include build/rules.mk
# By default build and run tests
default: test
# Only build
build: interpreter modules_ext
$(modules):
@$(MAKE) -C $@
modules_ext:
@$(MAKE) -C modules external
clean: clean_gcov
clean_gcov:
rm -f */*.gcov */*.gcda */*.gcno
interpreter tests: core modules
fuzz: core modules
@$(MAKE) -C tests fuzz
test: build tests
@$(MAKE) -C tests $@
cldep:
@$(MAKE) -C build/cldep debug=0
time_us: core
@$(MAKE) -C tests/perf/time_us
ifeq ($(UNAME), Windows)
$(modules): cldep
modules_ext: interpreter
endif
install: build
@$(MAKE) -C interpreter $@
doc: build
@echo Extract docs
@env $(out_dir_base_rel)/interpreter/kos$(exe_suffix) doc/extract_docs.kos modules/*.kos modules/*.c > doc/modules.md
defs: build
@echo Extract defs
@env $(out_dir_base_rel)/interpreter/kos$(exe_suffix) build/extract_defs.kos core/kos_lang inc/*h modules/*h
.PHONY: cldep clean_gcov build default defs doc install modules_ext test fuzz time_us $(modules)