For the mainboard with AMD Family 10, if we make clean and make again,
authorZheng Bao <zheng.bao@amd.com>
Mon, 26 Apr 2010 12:27:18 +0000 (12:27 +0000)
committerStefan Reinauer <stepan@openbios.org>
Mon, 26 Apr 2010 12:27:18 +0000 (12:27 +0000)
it will fail. why?

After make clean, .c files created by iasl are still left in the build
folder, it will match the rule of
$(obj)/%.o: $(obj)/%.c $(obj)/config.h
@printf "    CC         $(subst $(obj)/,,$(@))\n"
$(CC) -MMD $(CFLAGS) -c -o $@ $<
it will miss the rule which should be applied.
define objs_asl_template
       ....

So we move the .c file back to .hex (or other suffix? or delete?).
This patch will work after make distclean, otherwise nobody will rename
the .c.

Signed-off-by: Zheng Bao <zheng.bao@amd.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5503 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

Makefile

index f83804523b267d5e21b7e978e9c47a395f2a82f1..0a30ddcc85381e205b3a127ebad27bda0c7427f1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -226,6 +226,8 @@ $(obj)/$(1)%.o: src/$(1)%.asl
        iasl -p $$(basename $$@) -tc $$(basename $$@).asl
        mv $$(basename $$@).hex $$(basename $$@).c
        $(CC) $$(CFLAGS) $$(if $$(subst dsdt,,$$(basename $$(notdir $$@))), -DAmlCode=AmlCode_$$(basename $$(notdir $$@))) -c -o $$@ $$(basename $$@).c
+       # keep %.o: %.c rule from catching the temporary .c file after a make clean
+       mv $$(basename $$@).c $$(basename $$@).hex
 endef
 
 # macro to define template macros that are used by use_template macro