[SeaBIOS] [PATCH] seabios: remove iasl output file when error.

Kevin O'Connor kevin at koconnor.net
Sun Jun 6 23:12:27 CEST 2010


On Fri, May 28, 2010 at 07:01:35PM +0900, Isaku Yamahata wrote:
> Surprisingly iasl creates output file even when compilation error.
> So typing make after an error will succeed.
> This patch prevents it by removing the output file when error.
> And adds related dependencies to compile when .hex is missing.
[...]
>  ####### dsdt build rules
> -src/acpi-dsdt.hex: src/acpi-dsdt.dsl
> +$(OUT)%.dsl.i: src/%.dsl
> +	$(Q)cpp -P $< > $@
> +
> +src/%.hex: $(OUT)%.dsl.i
>  	@echo "Compiling DSDT"
> -	$(Q)cpp -P $< > $(OUT)acpi-dsdt.dsl.i
> -	$(Q)iasl -tc -p $@ $(OUT)acpi-dsdt.dsl.i
> -	$(Q)rm $(OUT)acpi-dsdt.dsl.i
> +	$(Q)iasl -tc -p $@ $< || (e=$$?; rm $@; exit $$e)
> +
> +src/acpi.c: src/acpi-dsdt.hex
> +$(OUT)ccode32flat.o: src/acpi.c
> +$(OUT)../src/acpi-dsdt.hex: src/acpi-dsdt.hex

This doesn't look right - gcc should be emitting file dependencies on
its own.  How about:

--- a/Makefile
+++ b/Makefile
@@ -187,8 +187,10 @@ $(OUT)vgabios.bin: $(OUT)vgabios.bin.raw tools/buildrom.py
 src/acpi-dsdt.hex: src/acpi-dsdt.dsl
        @echo "Compiling DSDT"
        $(Q)cpp -P $< > $(OUT)acpi-dsdt.dsl.i
-       $(Q)iasl -tc -p $@ $(OUT)acpi-dsdt.dsl.i
-       $(Q)rm $(OUT)acpi-dsdt.dsl.i
+       $(Q)iasl -tc -p $(OUT)acpi-dsdt $(OUT)acpi-dsdt.dsl.i
+       $(Q)cp $(OUT)acpi-dsdt.hex $@
+
+$(OUT)ccode32flat.o: src/acpi-dsdt.hex
 
 ####### Generic rules
 clean:

-Kevin



More information about the SeaBIOS mailing list