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 zheng.bao@amd.com
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
_________________________________________________________________ Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. https://signup.live.com/signup.aspx?id=60969
Am 25.04.2010 12:41, schrieb Zheng Bao:
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?).
Or we stop abusing the compiler for data tables, and use objcopy
Patrick