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 #disk_numsec = 2880 bin = 86kern img = 86kern.img CC = ia16-elf-gcc LD = ia16-elf-ld 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) -o $@ $(obj) $(LDFLAGS) -include $(dep) %-asm.o: %.asm nasm -o $@ -f elf $< .PHONY: clean clean: rm -f $(obj) $(bin) .PHONY: cleandep cleandep: rm -f $(dep) .PHONY: run run: $(img) qemu-system-i386 -fda $(img) -serial file:serial.log .PHONY: debug debug: $(img) qemu-system-i386 -fda $(img) -serial file:serial.log -s -S .PHONY: disasm disasm: $(bin) ndisasm -o 0x600 $< >dis