aboutsummaryrefslogtreecommitdiff
path: root/src/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/Makefile23
-rw-r--r--src/kernel/bam.lua20
2 files changed, 20 insertions, 23 deletions
diff --git a/src/kernel/Makefile b/src/kernel/Makefile
deleted file mode 100644
index 1082b29..0000000
--- a/src/kernel/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-
-OBJ = core/loader.o core/dbglog.o \
- core/gdt.o core/idt.o core/interrupt.o core/context_switch.o core/thread.o \
- core/frame.o core/paging.o core/freemem.o core/region.o core/kmalloc.o \
- core/worker.o core/prng.o \
- user/vfs.o user/nullfs.o user/process.o user/elf.o user/syscall.o user/ipc.o user/pager.o \
- dev/pci.o dev/pciide.o dev/v86.o dev/v86asm.o dev/vesa.o dev/pckbd.o \
- fs/iso9660.o
-
-LIB = ../common/libc/libc.lib ../common/libkogata/libkogata.lib ../common/libalgo/libalgo.lib
-
-CFLAGS = -I ./include -I ../common/include -DPRNG_INIT_ENTROPY=1$(shell date +%N)
-
-LDFLAGS = -T linker.ld -Xlinker -Map=kernel.map
-
-OUT = kernel.lib
-
-include ../rules.make
-
-kernel.bin: kernel.lib core/kmain.o core/sys.o
- $(LD) $(LDFLAGS) -o $@ $^
-
-all: $(OUT) kernel.bin
diff --git a/src/kernel/bam.lua b/src/kernel/bam.lua
new file mode 100644
index 0000000..1588315
--- /dev/null
+++ b/src/kernel/bam.lua
@@ -0,0 +1,20 @@
+local kernel_settings = TableDeepCopy(common_settings)
+
+kernel_settings.cc.includes:Add("src/kernel/include")
+
+kernel_settings.link.flags:Add("-T src/kernel/linker.ld",
+ "-Xlinker -Map=build/kernel.map")
+
+kernel_source = {
+ Collect('src/kernel/core/*.s'),
+ Collect('src/kernel/dev/*.s'),
+ Collect('src/kernel/core/*.c'),
+ Collect('src/kernel/dev/*.c'),
+ Collect('src/kernel/fs/*.c'),
+ Collect('src/kernel/user/*.c'),
+}
+kernel_obj = Compile(kernel_settings, kernel_source)
+
+kernel = Link(kernel_settings, "kernel", {kernel_obj, common_libkogata,
+ common_libc, common_libalgo})
+