diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 23 |
1 files changed, 18 insertions, 5 deletions
@@ -2,7 +2,7 @@ NAME = os CC = i686-elf-gcc ASM = i686-elf-as -CFLAGS = -std=gnu99 -ffreestanding -O2 -Wall -Wextra -g +CFLAGS = -std=gnu99 -ffreestanding -O2 -Wall -Wextra -msse -g -Isrc -Isrc/lua LFLAGS = -ffreestanding -O2 -nostdlib -lgcc -g SDIR = src @@ -10,13 +10,19 @@ ODIR = obj SRC = $(wildcard $(SDIR)/*.c) OBJ = $(patsubst $(SDIR)/%.c,$(ODIR)/%.o,$(SRC)) -ASMODIR = asm_obj +LUADIR = src/lua +LUAODIR = obj/lua +LUASRC = $(wildcard $(LUADIR)/*.c) +LUAOBJ = $(patsubst $(LUADIR)/%.c,$(LUAODIR)/%.o,$(LUASRC)) +LUACFLAGS = -DLUA_C89_NUMBERS -Wno-unused-variable -Wno-unused-value -Wno-unused-parameter -Wno-unused-but-set-variable + +ASMODIR = obj/asm ASMSRC = $(wildcard $(SDIR)/*.s) ASMOBJ = $(patsubst $(SDIR)/%.s,$(ASMODIR)/%.o,$(ASMSRC)) default: kernel.bin -kernel.bin: $(OBJ) $(ASMOBJ) +kernel.bin: $(OBJ) $(ASMOBJ) $(LUAOBJ) $(CC) -T linker.ld -o $@ $^ $(LFLAGS) $(ODIR)/%.o: $(SDIR)/%.c $(ODIR) @@ -25,6 +31,9 @@ $(ODIR)/%.o: $(SDIR)/%.c $(ODIR) $(ASMODIR)/%.o: $(SDIR)/%.s $(ASMODIR) $(ASM) -g -c -o $@ $< +$(LUAODIR)/%.o: $(LUADIR)/%.c $(LUAODIR) + $(CC) $(CFLAGS) $(LUACFLAGS) -c -o $@ $< + $(NAME).iso: kernel.bin mkdir -p isodir/boot/grub cp $< isodir/boot/ @@ -33,10 +42,10 @@ $(NAME).iso: kernel.bin .PHONY: test debug test: os.iso - qemu-system-i386 -cdrom os.iso + qemu-system-i386 -cdrom os.iso -cpu coreduo debug: kernel.bin - qemu-system-i386 -s -S -kernel kernel.bin + qemu-system-i386 -s -S -kernel kernel.bin -cpu coreduo $(ODIR): mkdir -p $@ @@ -44,11 +53,15 @@ $(ODIR): $(ASMODIR): mkdir -p $@ +$(LUAODIR): + mkdir -p $@ + .PHONY: clean clean: rm -rf $(ODIR) rm -rf $(ASMODIR) + rm -rf $(LUAODIR) rm -f boot.o rm -rf isodir rm -f $(NAME).iso |