diff options
author | Olivier Gayot <duskcoder@gmail.com> | 2015-10-10 11:08:13 +0200 |
---|---|---|
committer | Olivier Gayot <duskcoder@gmail.com> | 2015-10-10 11:08:53 +0200 |
commit | a9dbef9185854c1b94fb79dc7cfecbe34638c65b (patch) | |
tree | 7b046281c892404ec94032c67cca899758ef4aaa /Makefile | |
parent | 0abf506ae1a5e3c352c40096b20e9986623169b1 (diff) |
kfs: added the build system
it includes a startup file written in assembly, the Makefile and a ld
custom script meant to build link the kernel properly.
Signed-off-by: Olivier Gayot <duskcoder@gmail.com>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3ccecb1 --- /dev/null +++ b/Makefile @@ -0,0 +1,38 @@ +NAME = kfs +SRC = $(wildcard src/*.c src/crt0.S) + +LDSCRIPT = kfs.ld + +CPPFLAGS += +LDFLAGS += -T $(LDSCRIPT) -nostdlib -Wl,--build-id=none -m32 +CFLAGS += -W -Wall -Wextra -std=gnu99 -g \ + -nostdinc -fno-builtin -fno-stack-protector -m32 + +CC = gcc + +OBJ = $(SRC:.c=.o) + +all: $(NAME) + +$(NAME): $(OBJ) $(LDSCRIPT) + # TODO + $(CC) -o $@ $^ $(LDFLAGS) + +clean: + $(RM) $(OBJ) + $(RM) $(NAME) + +mrproper: clean + +distclean: mrproper + $(RM) $(addsuffix ~,$(SRC)) + $(RM) $(wildcard $(addsuffix .sw*,$(addprefix .,$(SRC)))) + +boot: all + $(shell qemu-system-x86_64 -kernel $(NAME) -nographic) + +debug: all + $(shell qemu-system-x86_64 -kernel $(NAME) -s -S) + +.PHONY: all clean mrproper distclean boot + |