For the mainboard with AMD Family 10, if we make clean and make again,
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 <>

Acked-by: Stefan Reinauer <>

git-svn-id: svn:// 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/Makefile b/Makefile
index f838045..0a30ddc 100644
--- a/Makefile
+++ b/Makefile
@@ -226,6 +226,8 @@
 	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
 # macro to define template macros that are used by use_template macro