Generate and extract debug sysmbols for coreboot. *.debug files can be
[coreboot.git] / src / arch / i386 / Makefile.bigbootblock.inc
index a8882316b774fb6ee0ed40ce6236e697c82838e9..939eea63a3c43387d4949e4ff96b8bc4f1a79872 100644 (file)
@@ -1,5 +1,3 @@
-ifdef POST_EVALUATION
-
 #######################################################################
 # Build the final rom image
 
@@ -14,23 +12,27 @@ $(obj)/coreboot.bootblock: $(obj)/coreboot
        @printf "    OBJCOPY    $(subst $(obj)/,,$(@))\n"
        $(OBJCOPY) -O binary $< $@
 
-$(obj)/ldscript.ld: $(ldscripts) $(obj)/ldoptions
+$(obj)/ldscript.ld: $$(ldscripts) $(obj)/ldoptions
        printf 'INCLUDE "ldoptions"\n' > $@
        printf '$(foreach ldscript,$(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' >> $@
 
-$(obj)/crt0_includes.h: $(crt0s)
+$(obj)/crt0.S: $$(crt0s)
        @printf "    GEN        $(subst $(obj)/,,$(@))\n"
        printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@
 
-$(obj)/mainboard/$(MAINBOARDDIR)/crt0.o: $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s
-       $(CC) -I$(obj) -Wa,-acdlns -c -o $@ $<  > $(dir $@)/crt0.disasm
+$(obj)/mainboard/$(MAINBOARDDIR)/crt0.initobj.o: $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s
+       @printf "    CC         $(subst $(obj)/,,$(@))\n"
+       $(CC) -MMD -I$(obj) -Wa,-acdlns -c -o $@ $<  > $(dir $@)/crt0.disasm
 
-$(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(src)/arch/i386/init/crt0.S.lb $(obj)/crt0_includes.h
-       $(CC) -x assembler-with-cpp -DASSEMBLY -E -I$(src)/include -I$(src)/arch/i386/include -I$(obj) -include $(obj)/config.h -I. -I$(src) $< > $@.new && mv $@.new $@
+$(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(obj)/crt0.S
+       @printf "    CC         $(subst $(obj)/,,$(@))\n"
+       $(CC) -MMD -x assembler-with-cpp -DASSEMBLY -E -I$(src)/include -I$(src)/arch/i386/include -I$(obj) -include $(obj)/config.h -I. -I$(src) $< -o $@
 
-$(obj)/coreboot: $(initobjs) $(obj)/ldscript.ld
+$(obj)/coreboot: $$(initobjs) $(obj)/ldscript.ld
        @printf "    LINK       $(subst $(obj)/,,$(@))\n"
        $(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(obj)/ldscript.ld $(initobjs)
        $(NM) -n $(obj)/coreboot | sort > $(obj)/coreboot.map
+       $(OBJCOPY) --only-keep-debug $@ $(obj)/bootblock.debug
+       $(OBJCOPY) --strip-debug $@
+       $(OBJCOPY) --add-gnu-debuglink=$(obj)/bootblock.debug $@
 
-endif