-csrc = $(wildcard src/*.c)
-ssrc = $(wildcard src/*.asm)
-obj = $(csrc:.c=.o) $(ssrc:.asm=.o)
+csrc = $(wildcard src/*.c) $(wildcard src/libc/*.c)
+ssrc = $(wildcard src/*.asm) $(wildcard src/libc/*.asm)
+obj = $(csrc:.c=.o) $(ssrc:.asm=-asm.o)
dep = $(csrc:.c=.d)
disk_numsec = 720
CC = ia16-elf-gcc
LD = ia16-elf-ld
-CFLAGS = -march=i8088 -mtune=i8088 -MMD
+warn = -pedantic -Wall
+inc = -nostdinc -Isrc -Isrc/libc
+
+CFLAGS = -march=i8088 -mtune=i8088 $(warn) $(inc) -MMD
+LDFLAGS = -T kern.ld -Map kern.map
$(img): $(bin)
dd if=/dev/zero of=$@ bs=512 count=$(disk_numsec)
dd if=$< of=$@ bs=512 conv=notrunc
$(bin): $(obj)
- $(LD) -T kern.ld -Map kern.map -o $@ $(obj)
+ $(LD) -o $@ $(obj) $(LDFLAGS)
-include $(dep)
-%.o: %.asm
+%-asm.o: %.asm
nasm -o $@ -f elf $<
.PHONY: clean
.PHONY: disasm
disasm: $(bin)
- ndisasm -o 0x7c00 $< >dis1
- ndisasm -o 0x98000 -e 512 $< >dis2
+ ndisasm -o 0x600 $< >dis