obj16-y = e820.o int10.o int15.o obj-y = $(obj16-y) entry.o main.o string.o printf.o cstart.o fw_cfg.o all-y = bios.bin CFLAGS := -O2 -Wall -g BIOS_CFLAGS += -m32 BIOS_CFLAGS += -march=i386 BIOS_CFLAGS += -mregparm=3 BIOS_CFLAGS += -fno-stack-protector -fno-delete-null-pointer-checks BIOS_CFLAGS += -ffreestanding BIOS_CFLAGS += -Iinclude $(obj16-y): BIOS_CFLAGS += -include code16gcc.h all: $(all-y) .PRECIOUS: %.o %.o: %.c $(CC) $(CFLAGS) $(BIOS_CFLAGS) -c -s $< -o $@ %.o: %.S $(CC) $(CFLAGS) $(BIOS_CFLAGS) -c -s $< -o $@ bios.bin.elf: $(obj-y) flat.lds $(LD) -T flat.lds -o bios.bin.elf $(obj-y) bios.bin: bios.bin.elf objcopy -O binary bios.bin.elf bios.bin clean: rm -f $(obj-y) $(all-y) bios.bin.elf