[coreboot-gerrit] New patch to review for coreboot: 8aa2705 build system: extend src-to-obj for non-.c/.S files

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Tue Mar 31 15:13:31 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9175

-gerrit

commit 8aa2705dfffc7773ffb72acbc9862de55dc5f77b
Author: Patrick Georgi <pgeorgi at chromium.org>
Date:   Fri Mar 27 17:03:28 2015 +0100

    build system: extend src-to-obj for non-.c/.S files
    
    It also creates file names in the build directory and with
    the stage sliced in, but keeps the extension for anything
    not .c or .S.
    
    Also some handling for non-.c/.S files was adapted to match.
    
    This is inspired by the commit listed below, but rewritten to match
    upstream, and split in smaller pieces to keep intent clear.
    
    Change-Id: If8f89a7daffcf51f430b64c3293d2a817ae5120f
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Based-On-Change-Id: I50af7dacf616e0f8ff4c43f4acc679089ad7022b
    Based-On-Signed-off-by: Julius Werner <jwerner at chromium.org>
    Based-On-Reviewed-on: https://chromium-review.googlesource.com/219170
---
 Makefile                  | 9 +++++++--
 Makefile.inc              | 2 +-
 src/arch/x86/Makefile.inc | 6 +++---
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index c5cbda1..03811c6 100644
--- a/Makefile
+++ b/Makefile
@@ -203,7 +203,12 @@ endif
 # Eliminate duplicate mentions of source files in a class
 $(foreach class,$(classes),$(eval $(class)-srcs:=$(sort $($(class)-srcs))))
 
-src-to-obj=$(addsuffix .$(1).o, $(basename $(patsubst src/%, $(obj)/%, $(2))))
+# Converts one or more source file paths to their corresponding build/ paths.
+# Only .c and .S get converted to .o, other files (like .ld) keep their name.
+# $1 stage name
+# $2 file path (list)
+src-to-obj=$(foreach file,$(2),$(basename $(patsubst src/%,$(obj)/%,$(file))).$(1)$(patsubst %.c,%.o,$(patsubst %.S,%.o,$(suffix $(file)))))
+
 $(foreach class,$(classes),$(eval $(class)-objs:=$(call src-to-obj,$(class),$($(class)-srcs))))
 
 # Save all objs before processing them (for dependency inclusion)
@@ -241,7 +246,7 @@ $(foreach class,$(classes), \
 foreach-src=$(foreach file,$($(1)-srcs),$(eval $(call $(1)-objs_$(subst .,,$(suffix $(file)))_template,$(subst src/,,$(basename $(file))))))
 $(eval $(foreach class,$(classes),$(call foreach-src,$(class))))
 
-DEPENDENCIES = $(originalobjs:.o=.d)
+DEPENDENCIES = $(addsuffix .d,$(basename $(allobjs)))
 -include $(DEPENDENCIES)
 
 printall:
diff --git a/Makefile.inc b/Makefile.inc
index e80c266..3fa56a8 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -142,7 +142,7 @@ bootblock-c-deps:=$$(OPTION_TABLE_H)
 #######################################################################
 # Add handler to compile ACPI's ASL
 define ramstage-objs_asl_template
-$(obj)/$(1).ramstage.o: src/$(1).asl $(obj)/config.h
+$(obj)/$(1).ramstage.asl: src/$(1).asl $(obj)/config.h
 	@printf "    IASL       $$(subst $(top)/,,$$(@))\n"
 	$(CC_ramstage) -x assembler-with-cpp -E -MMD -MT $$(@) -D__ACPI__ -P -include $(src)/include/kconfig.h -I$(obj) -I$(src) -I$(src)/include -I$(src)/arch/$(ARCHDIR-$(ARCH-ramstage-y))/include -I$(src)/mainboard/$(MAINBOARDDIR) $$< -o $$(basename $$@).asl
 	cd $$(dir $$@); $(IASL) -p $$(notdir $$@) -tc $$(notdir $$(basename $$@)).asl
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index e6b4bad..8e6ad6d 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -196,7 +196,7 @@ $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(obj)/mainboard/$(MAINBOARDDIR)/
 	mv $@.tmp $@
 endif
 
-romstage-srcs += $(objgenerated)/crt0.s
+romstage-srcs += $(objgenerated)/crt0.S
 
 romstage-libs ?=
 
@@ -237,11 +237,11 @@ $(objgenerated)/crt0.romstage.S: $$(crt0s)
 	@printf "    GEN        $(subst $(obj)/,,$(@))\n"
 	printf '$(foreach crt0,$(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@
 
-$(objgenerated)/crt0.romstage.o: $(objgenerated)/crt0.s
+$(objgenerated)/crt0.romstage.o: $(objgenerated)/crt0.S
 	@printf "    CC         $(subst $(obj)/,,$(@))\n"
 	$(CC_romstage) $(CFLAGS_x86_32) $(DISASSEMBLY) -c -o $@ $<  > $(basename $@).disasm
 
-$(objgenerated)/crt0.s: $(objgenerated)/crt0.romstage.S $(obj)/config.h $(obj)/build.h
+$(objgenerated)/crt0.S: $(objgenerated)/crt0.romstage.S $(obj)/config.h $(obj)/build.h
 	@printf "    CC         $(subst $(obj)/,,$(@))\n"
 	$(CC_romstage) $(CPPFLAGS_romstage) -MMD -x assembler-with-cpp -E -I$(src)/include -I$(src)/arch/x86/include -I$(obj) -include $(obj)/config.h -include $(obj)/build.h -I. -I$(src) $< -o $@
 



More information about the coreboot-gerrit mailing list