Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
72 lines (60 loc) · 2.8 KB
/
Copy pathMakefile
File metadata and controls
72 lines (60 loc) · 2.8 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
.PHONY: all lib toc tools tasm tlink clean test testall trubo
XT = xt
BOOTOC = BOOT/TOC.EXE
BOOTOLIB = BOOT/TOLIB.EXE
# ── Full build ───────────────────────────────────────────────────────────
# 1. Compile stdlib → BIN/OBERON.OM (using BOOT/TOC.EXE + BOOT/TOLIB.EXE)
# 2. Build BIN/TOC.EXE (using BOOT/TOC.EXE, OBERON_LIB=BIN/OBERON.OM)
# 3. Build tools incl. BIN/TOLIB.EXE (using BIN/TOC.EXE)
all: lib toc tasm tlink tools trubo
# ── Standard library → BIN/OBERON.OM ─────────────────────────────────────
# BOOT/TOC.EXE compiles each module; BOOT/TOLIB.EXE merges into OBERON.OM.
lib:
$(MAKE) -C SRC/LIB clean
$(MAKE) -C SRC/LIB install
trubo:
$(MAKE) -C SRC/TRUBO clean
$(MAKE) -C SRC/TRUBO install
# ── Compiler → BIN/TOC.EXE ───────────────────────────────────────────────
# BOOT/TOC.EXE compiles all modules; links toc.exe (auto-named TOC.exe).
toc: lib trubo
$(MAKE) -C SRC/TOC clean
$(MAKE) -C SRC/TOC install
tasm: lib toc trubo
$(MAKE) -C SRC/TASM clean
$(MAKE) -C SRC/TASM install
tlink: lib toc trubo
$(MAKE) -C SRC/TLINK clean
$(MAKE) -C SRC/TLINK install
# ── Auxiliary tools → BIN/ ───────────────────────────────────────────────
# RDFGREP.EXE, TESTALL.EXE, TDINFO.EXE, TOSTRIP.EXE and TOLIB.EXE are all
# compiled by BIN/TOC.EXE.
tools: lib toc trubo
$(MAKE) -C SRC/TOOLS clean
$(MAKE) -C SRC/TOOLS install
# ── Testing ──────────────────────────────────────────────────────────────
test:
$(MAKE) clean
$(MAKE) all
make -f TESTS/Makefile.man test
bash TESTS/test_tasm.sh
bash TESTS/test_tlink.sh
bash TESTS/test_selfhost.sh
# The toolchain is three binaries now: TOC.EXE only drives, and execs
# TOCC.EXE/TOCL.EXE from its OWN directory -- so all three must be present
# here together, not just the driver.
testall: tools
cp BIN/TOC.EXE TOC.EXE
cp BIN/TOCC.EXE TOCC.EXE
cp BIN/TOCL.EXE TOCL.EXE
cp BIN/TESTALL.EXE TESTALL.EXE
$(XT) run TESTALL.EXE .
rm -f TOC.EXE TOCC.EXE TOCL.EXE TESTALL.EXE
# ── Clean ────────────────────────────────────────────────────────────────
clean:
$(MAKE) -C SRC/LIB clean
$(MAKE) -C SRC/TRUBO clean
$(MAKE) -C SRC/TOC clean
$(MAKE) -C SRC/TASM clean
$(MAKE) -C SRC/TLINK clean
$(MAKE) -C SRC/TOOLS clean