-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.ninja
More file actions
37 lines (33 loc) · 2.16 KB
/
build.ninja
File metadata and controls
37 lines (33 loc) · 2.16 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
rule CC
command = clang -O2 -nostdlib -target wasm32-unknown-unknown -fno-builtin -matomics -mbulk-memory -c $in -o $out
rule LD
command = wasm-ld -z stack-size=1048576 --export=_start --export=handle_command --allow-undefined --import-memory --shared-memory --max-memory=134217728 $in -o $out
rule COPY
command = cp $in $out
rule TSC
command = npx tsc --outDir build
# カーネルオブジェクトファイル
build build/kernel/init/main.o: CC kernel/init/main.c
build build/kernel/mm/memory.o: CC kernel/mm/memory.c
build build/kernel/fs/vfs.o: CC kernel/fs/vfs.c
build build/kernel/drivers/console.o: CC kernel/drivers/console.c
build build/kernel/drivers/drivers.o: CC kernel/drivers/drivers.c
build build/kernel/lib/string.o: CC kernel/lib/string.c
build build/kernel/lib/stdio.o: CC kernel/lib/stdio.c
build build/kernel/lib/wasi_wrapper.o: CC kernel/lib/wasi_wrapper.c
build build/kernel/shell/shell.o: CC kernel/shell/shell.c
build build/kernel/shell/shell_api.o: CC kernel/shell/shell_api.c
build build/kernel/process/process.o: CC kernel/process/process.c
build build/kernel/process/scheduler.o: CC kernel/process/scheduler.c
build build/kernel/process/spawn.o: CC kernel/process/spawn.c
build build/kernel/ipc/ipc.o: CC kernel/ipc/ipc.c
build build/kernel/ipc/pipe.o: CC kernel/ipc/pipe.c
# カーネルリンク
build build/kernel.wasm: LD build/kernel/init/main.o build/kernel/mm/memory.o build/kernel/fs/vfs.o build/kernel/drivers/console.o build/kernel/drivers/drivers.o build/kernel/lib/string.o build/kernel/lib/stdio.o build/kernel/lib/wasi_wrapper.o build/kernel/shell/shell.o build/kernel/shell/shell_api.o build/kernel/process/process.o build/kernel/process/scheduler.o build/kernel/process/spawn.o build/kernel/ipc/ipc.o build/kernel/ipc/pipe.o
# GUI とシステムライブラリ
build build/index.html: COPY gui/index.html
build build/gui/styles.css: COPY gui/styles.css
build build/gui/terminal.js: COPY gui/terminal.js
build build/gui/window-manager.js: COPY gui/window-manager.js
build build/syslib/index.js: TSC syslib/index.ts
default build/kernel.wasm build/index.html build/gui/styles.css build/gui/terminal.js build/gui/window-manager.js build/syslib/index.js