ATT = $(SRC:.c=.att) BIN = $(SRC:.c=.bin) SRC = $(wildcard *.c) all: $(ATT) qemu clean: -killall -q qemu-system-i386 || true -rm -fv $(ATT) $(BIN) *~ debug: clean qemu gdb $(BIN) \ -ex 'target remote 127.0.0.1:1234' \ -ex 'set architecture i8086' \ -ex 'layout asm' \ -ex 'layout regs' \ -ex 'b *0x7c00' \ -ex 'c' qemu: $(BIN) -killall -q qemu-system-i386 || true qemu-system-i386 -fda $< -s &> /dev/null & %.att: %.bin objdump -b binary -D -m i8086 $< > $@ %.bin: %.c gcc -g -Og -I. -m32 -ffreestanding -nostdlib -o $@ -static -Wall -Werror -Wl,--nmagic -Wl,-Tlinker.ld $< .PHONY: all clean debug qemu