[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Vgabios-developers] Re: [Qemu-devel] [PATCH 1/5] Makefile cleanup
From: |
Isaku Yamahata |
Subject: |
[Vgabios-developers] Re: [Qemu-devel] [PATCH 1/5] Makefile cleanup |
Date: |
Fri, 7 May 2010 23:38:16 +0900 |
User-agent: |
Mutt/1.5.19 (2009-01-05) |
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 <address@hidden>
---
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 > $@
--
1.6.6.1
On Fri, May 07, 2010 at 12:09:43PM +0200, Gerd Hoffmann wrote:
> Use a single rule for building bios binaries.
> Use target specific variables to set compile flags.
>
> This makes it more obvious what the differences between the versions
> are. It also makes it easier to add new bios binaries with slightly
> different settings.
>
> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
> Makefile | 76 +++++++++++++++++++++++++++----------------------------------
> 1 files changed, 34 insertions(+), 42 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 00e8c66..c3c744c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -16,8 +16,7 @@ VGABIOS_DATE = "-DVGABIOS_DATE=\"$(RELDATE)\""
>
> all: bios cirrus-bios
>
> -
> -bios: biossums vgabios.bin vgabios.debug.bin
> +bios: vgabios.bin vgabios.debug.bin
>
> cirrus-bios: vgabios-cirrus.bin vgabios-cirrus.debug.bin
>
> @@ -27,6 +26,39 @@ clean:
>
> dist-clean: clean
>
> +# source files
> +VGA_FILES := vgabios.c vgabios.h vgafonts.h vgatables.h
> +VBE_FILES := vbe.h vbe.c vbetables.h
> +
> +# build flags
> +vgabios.bin : VGAFLAGS := -DVBE
> +vgabios.debug.bin : VGAFLAGS := -DVBE -DDEBUG
> +vgabios-cirrus.bin : VGAFLAGS := -DCIRRUS -DPCIBIOS
> +vgabios-cirrus.debug.bin : VGAFLAGS := -DCIRRUS -DPCIBIOS -DCIRRUS_DEBUG
> +
> +# dist names
> +vgabios.bin : DISTNAME := VGABIOS-lgpl-latest.bin
> +vgabios.debug.bin : DISTNAME := VGABIOS-lgpl-latest.debug.bin
> +vgabios-cirrus.bin : DISTNAME := VGABIOS-lgpl-latest.cirrus.bin
> +vgabios-cirrus.debug.bin : DISTNAME := VGABIOS-lgpl-latest.cirrus.debug.bin
> +
> +# dependencies
> +vgabios.bin : $(VGA_FILES) $(VBE_FILES) biossums
> +vgabios.debug.bin : $(VGA_FILES) $(VBE_FILES) biossums
> +vgabios-cirrus.bin : $(VGA_FILES) clext.c biossums
> +vgabios-cirrus.debug.bin : $(VGA_FILES) clext.c biossums
> +
> +# build rule
> +%.bin:
> + $(GCC) -E -P vgabios.c $(VGABIOS_VERS) $(VGAFLAGS) $(VGABIOS_DATE) >
> _$*_.c
> + $(BCC) -o $*.s -C-c -D__i86__ -S -0 _$*_.c
> + sed -e 's/^\.text//' -e 's/^\.data//' $*.s > _$*_.s
> + $(AS86) _$*_.s -b $*.bin -u -w- -g -0 -j -O -l $*.txt
> + rm -f _$*_.s _$*_.c $*.s
> + mv $*.bin $(DISTNAME)
> + ./biossums $(DISTNAME)
> + ls -l $(DISTNAME)
> +
> release:
> VGABIOS_VERS=\"-DVGABIOS_VERS=\\\"$(RELVERS)\\\"\" make bios cirrus-bios
> /bin/rm -f *.o *.s *.ld86 \
> @@ -37,46 +69,6 @@ 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
>
> --
> 1.6.6.1
>
>
>
--
yamahata