From patchwork Fri May 7 14:38:16 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1/5] Makefile cleanup Date: Fri, 07 May 2010 04:38:16 -0000 From: Isaku Yamahata X-Patchwork-Id: 51920 Message-Id: <20100507143816.GB20294@valinux.co.jp> To: Gerd Hoffmann Cc: vgabios-developers@nongnu.org, qemu-devel@nongnu.org Hi. If gmake extension is allowed, nasty rm in the rule can be removed by using intermediate file which is removed after build. We can combine your cleanup with mine. [PATCH] vgabios: Makefile: clean up using gmake extension. clean up nasty rule by using gmake extension Signed-off-by: Isaku Yamahata --- Makefile | 92 +++++++++++++++++++++++++++++-------------------------------- 1 files changed, 44 insertions(+), 48 deletions(-) diff --git a/Makefile b/Makefile index 00e8c66..4ead342 100644 --- a/Makefile +++ b/Makefile @@ -17,13 +17,14 @@ VGABIOS_DATE = "-DVGABIOS_DATE=\"$(RELDATE)\"" all: bios cirrus-bios -bios: biossums vgabios.bin vgabios.debug.bin +bios: biossums VGABIOS-lgpl-latest.bin VGABIOS-lgpl-latest.debug.bin -cirrus-bios: vgabios-cirrus.bin vgabios-cirrus.debug.bin +cirrus-bios: VGABIOS-lgpl-latest.cirrus.bin VGABIOS-lgpl-latest.cirrus.debug.bin clean: /bin/rm -f biossums vbetables-gen vbetables.h *.o *.s *.ld86 \ - temp.awk.* vgabios*.orig _vgabios_* _vgabios-debug_* core vgabios*.bin vgabios*.txt $(RELEASE).bin *.bak + temp.awk.* vgabios*.orig _vgabios_* _vgabios.*_* core \ + VGABIOS-lgpl-latest*.bin vgabios*.bin vgabios*.txt $(RELEASE).bin *.bak dist-clean: clean @@ -37,51 +38,46 @@ release: cp VGABIOS-lgpl-latest.cirrus.debug.bin ../$(RELEASE).cirrus.debug.bin tar czvf ../$(RELEASE).tgz --exclude CVS -C .. $(RELEASE)/ -vgabios.bin: vgabios.c vgabios.h vgafonts.h vgatables.h vbe.h vbe.c vbetables.h - $(GCC) -E -P vgabios.c $(VGABIOS_VERS) -DVBE $(VGABIOS_DATE) > _vgabios_.c - $(BCC) -o vgabios.s -C-c -D__i86__ -S -0 _vgabios_.c - sed -e 's/^\.text//' -e 's/^\.data//' vgabios.s > _vgabios_.s - $(AS86) _vgabios_.s -b vgabios.bin -u -w- -g -0 -j -O -l vgabios.txt - rm -f _vgabios_.s _vgabios_.c vgabios.s - mv vgabios.bin VGABIOS-lgpl-latest.bin - ./biossums VGABIOS-lgpl-latest.bin - ls -l VGABIOS-lgpl-latest.bin - -vgabios.debug.bin: vgabios.c vgabios.h vgafonts.h vgatables.h vbe.h vbe.c vbetables.h - $(GCC) -E -P vgabios.c $(VGABIOS_VERS) -DVBE -DDEBUG $(VGABIOS_DATE) > _vgabios-debug_.c - $(BCC) -o vgabios-debug.s -C-c -D__i86__ -S -0 _vgabios-debug_.c - sed -e 's/^\.text//' -e 's/^\.data//' vgabios-debug.s > _vgabios-debug_.s - $(AS86) _vgabios-debug_.s -b vgabios.debug.bin -u -w- -g -0 -j -O -l vgabios.debug.txt - rm -f _vgabios-debug_.s _vgabios-debug_.c vgabios-debug.s - mv vgabios.debug.bin VGABIOS-lgpl-latest.debug.bin - ./biossums VGABIOS-lgpl-latest.debug.bin - ls -l VGABIOS-lgpl-latest.debug.bin - -vgabios-cirrus.bin: vgabios.c vgabios.h vgafonts.h vgatables.h clext.c - $(GCC) -E -P vgabios.c $(VGABIOS_VERS) -DCIRRUS -DPCIBIOS $(VGABIOS_DATE) > _vgabios-cirrus_.c - $(BCC) -o vgabios-cirrus.s -C-c -D__i86__ -S -0 _vgabios-cirrus_.c - sed -e 's/^\.text//' -e 's/^\.data//' vgabios-cirrus.s > _vgabios-cirrus_.s - $(AS86) _vgabios-cirrus_.s -b vgabios-cirrus.bin -u -w- -g -0 -j -O -l vgabios.cirrus.txt - rm -f _vgabios-cirrus_.s _vgabios-cirrus_.c vgabios-cirrus.s - mv vgabios-cirrus.bin VGABIOS-lgpl-latest.cirrus.bin - ./biossums VGABIOS-lgpl-latest.cirrus.bin - ls -l VGABIOS-lgpl-latest.cirrus.bin - -vgabios-cirrus.debug.bin: vgabios.c vgabios.h vgafonts.h vgatables.h clext.c - $(GCC) -E -P vgabios.c $(VGABIOS_VERS) -DCIRRUS -DCIRRUS_DEBUG -DPCIBIOS $(VGABIOS_DATE) > _vgabios-cirrus-debug_.c - $(BCC) -o vgabios-cirrus-debug.s -C-c -D__i86__ -S -0 _vgabios-cirrus-debug_.c - sed -e 's/^\.text//' -e 's/^\.data//' vgabios-cirrus-debug.s > _vgabios-cirrus-debug_.s - $(AS86) _vgabios-cirrus-debug_.s -b vgabios.cirrus.debug.bin -u -w- -g -0 -j -O -l vgabios.cirrus.debug.txt - rm -f _vgabios-cirrus-debug_.s _vgabios-cirrus-debug_.c vgabios-cirrus-debug.s - mv vgabios.cirrus.debug.bin VGABIOS-lgpl-latest.cirrus.debug.bin - ./biossums VGABIOS-lgpl-latest.cirrus.debug.bin - ls -l VGABIOS-lgpl-latest.cirrus.debug.bin - -biossums: biossums.c - $(CC) -o biossums biossums.c - -vbetables-gen: vbetables-gen.c - $(CC) -o vbetables-gen vbetables-gen.c +define gcc-e-p + $(GCC) -E -P $< $(VGABIOS_VERS) $(EXTRA_DEFINES) $(VGABIOS_DATE) > $@ +endef + +_vgabios_.c: EXTRA_DEFINES = -DVBE +_vgabios_.c: vgabios.c vgabios.h vgafonts.h vgatables.h vbe.h vbe.c vbetables.h + $(gcc-e-p) + +_vgabios.debug_.c: EXTRA_DEFINES = -DVBE -DDEBUG +_vgabios.debug_.c: vgabios.c vgabios.h vgafonts.h vgatables.h vbe.h vbe.c vbetables.h + $(gcc-e-p) + +_vgabios.cirrus_.c: EXTRA_DEFINES = -DCIRRUS -DPCIBIOS +_vgabios.cirrus_.c: vgabios.c vgabios.h vgafonts.h vgatables.h clext.c + $(gcc-e-p) + +_vgabios.cirrus.debug_.c: EXTRA_DEFINES = -DCIRRUS -DCIRRUS_DEBUG -DPCIBIOS +_vgabios.cirrus.debug_.c: vgabios.c vgabios.h vgafonts.h vgatables.h clext.c + $(gcc-e-p) + +.INTERMEDIATE: _vgabios_.c _vgabios.debug_.c _vgabios.cirrus_.c _vgabios.cirrus.debug_.c + + +%.s: _%_.c + $(BCC) -o $@ -C-c -D__i86__ -S -0 $< + +_%_.s: %.s + sed -e 's/^\.text//' -e 's/^\.data//' $< > $@ + +%.bin %.txt: _%_.s + $(AS86) $< -b $*.bin -u -w- -g -0 -j -O -l $*.txt + +VGABIOS-lgpl-latest%bin: vgabios%bin + mv $< $@ + ./biossums $@ + ls -l $@ + +# for biossums and vbetables-gen +%: %.c + $(CC) -o $@ $< vbetables.h: vbetables-gen ./vbetables-gen > $@