summaryrefslogtreecommitdiff
path: root/kernel/Makefile
diff options
context:
space:
mode:
authorTyler Murphy <=>2023-07-16 02:54:32 -0400
committerTyler Murphy <=>2023-07-16 02:54:32 -0400
commitfbf131b5c043b27e0b1543374bb144e3e426f723 (patch)
tree07f0ab2fc107b36621d5ae95480e6a91e332548b /kernel/Makefile
downloadfinix-fbf131b5c043b27e0b1543374bb144e3e426f723.tar.gz
finix-fbf131b5c043b27e0b1543374bb144e3e426f723.tar.bz2
finix-fbf131b5c043b27e0b1543374bb144e3e426f723.zip
initial
Diffstat (limited to 'kernel/Makefile')
-rw-r--r--kernel/Makefile28
1 files changed, 28 insertions, 0 deletions
diff --git a/kernel/Makefile b/kernel/Makefile
new file mode 100644
index 0000000..999498b
--- /dev/null
+++ b/kernel/Makefile
@@ -0,0 +1,28 @@
+include ../.env
+
+C_SRC = $(shell find src -type f -name "*.c")
+C_OBJ = $(patsubst %.c,bin/%.o, $(C_SRC))
+
+ASM_SRC = $(shell find src -type f -name "*.asm")
+ASM_OBJ = $(patsubst %.asm,bin/%.o, $(ASM_SRC))
+
+CFLAGS += -Iinclude -Isrc -I../libk/include -std=gnu17
+
+.PHONY: all
+
+all: bin/kernel.bin
+
+$(C_OBJ): bin/%.o : %.c
+ @mkdir -p $(@D)
+ $(CC) -c $(CFLAGS) -o $@ $<
+
+$(ASM_OBJ): bin/%.o : %.asm
+ @mkdir -p $(@D)
+ $(AS) $< -f elf -o $@
+
+bin/kernel.bin: $(C_OBJ) $(ASM_OBJ)
+ @mkdir -p $(@D)
+ $(LD) -o bin/kernel.bin -T linker.ld $(C_OBJ) $(ASM_OBJ) ../libk/bin/libk.a $(LDFLAGS)
+
+clean:
+ rm -fr bin