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 Index: Makefile =================================================================== --- Makefile (revision 5489) +++ Makefile (working copy) @@ -226,6 +226,7 @@ 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 + mv $$(basename $$@).c $$(basename $$@).hex endef # macro to define template macros that are used by use_template macro