diff --git a/Makefile b/Makefile index 091b2a3..bc1290d 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,12 @@ +ifeq ($(strip $(V)),) + E = @echo + Q = @ +else + E = @\# + Q = +endif +export E Q + PROGRAM = kvm OBJS += cpuid.o @@ -32,34 +41,56 @@ CFLAGS += $(WARNINGS) all: $(PROGRAM) $(PROGRAM): $(OBJS) - $(CC) $(OBJS) -o $@ + $(E) " LINK " $@ + $(Q) $(CC) $(OBJS) -o $@ $(OBJS): +%.o: %.c + $(E) " CC " $@ + $(Q) $(CC) -c $(CFLAGS) $< -o $@ + # # BIOS assembly weirdness # BIOS=-D__ASSEMBLY__ -m32 -march=i386 -Os -fno-strict-aliasing -fomit-frame-pointer + bios/c-intfake.o: bios/c-intfake.c - $(CC) $(CFLAGS) -c bios/c-intfake.c -o bios/c-intfake.o + $(E) " CC " $@ + $(Q) $(CC) $(CFLAGS) -c bios/c-intfake.c -o bios/c-intfake.o + bios/c-intfake.c: bios/intfake.bin - python bios/bin2c.py -i bios/intfake.bin -o bios/c-intfake.c -n intfake -bios/intfake.bin: bios/intfake.S - $(CC) $(CFLAGS) $(BIOS) -c -o bios/intfake.o bios/intfake.S - objcopy -O binary -j .text bios/intfake.o bios/intfake.bin + $(E) " BIN2C " $@ + $(Q) python bios/bin2c.py -i bios/intfake.bin -o bios/c-intfake.c -n intfake + +bios/intfake.o: bios/intfake.S + $(E) " CC " $@ + $(Q) $(CC) $(CFLAGS) $(BIOS) -c -o bios/intfake.o bios/intfake.S + +bios/intfake.bin: bios/intfake.o + $(E) " OBJCOPY " $@ + $(Q) objcopy -O binary -j .text bios/intfake.o bios/intfake.bin bios/c-int10.o: bios/c-int10.c - $(CC) $(CFLAGS) -c bios/c-int10.c -o bios/c-int10.o -bios/c-int10.c: bios/int10.bin - python bios/bin2c.py -i bios/int10.bin -o bios/c-int10.c -n int10 -bios/int10.bin: bios/int10.S - $(CC) $(CFLAGS) $(BIOS) -c -o bios/int10.o bios/int10.S - objcopy -O binary -j .text bios/int10.o bios/int10.bin + $(E) " CC " $@ + $(Q) $(CC) $(CFLAGS) -c bios/c-int10.c -o bios/c-int10.o +bios/c-int10.c: bios/int10.bin + $(E) " BIN2C " $@ + $(Q) python bios/bin2c.py -i bios/int10.bin -o bios/c-int10.c -n int10 + +bios/int10.o: bios/int10.S + $(E) " CC " $@ + $(Q) $(CC) $(CFLAGS) $(BIOS) -c -o bios/int10.o bios/int10.S + +bios/int10.bin: bios/int10.o + $(E) " OBJCOPY " $@ + $(Q) objcopy -O binary -j .text bios/int10.o bios/int10.bin clean: - rm -f bios/*.bin - rm -f bios/*.o - rm -f bios/*.c - rm -f $(OBJS) $(PROGRAM) + $(E) " CLEAN" + $(Q) rm -f bios/*.bin + $(Q) rm -f bios/*.o + $(Q) rm -f bios/*.c + $(Q) rm -f $(OBJS) $(PROGRAM) .PHONY: clean