build system: provide generic compiler flag variables
Introduce generic-$(type)-ccopts and $(class)-generic-ccopts to declare compiler flags that apply to all files of a certain type or of a certain class. Then use them. This is inspired by the commit listed below, but rewritten to match upstream, and split in smaller pieces to keep intent clear. Change-Id: I655688e82a0cc5bad89b6f55dc217b9f66b64604 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Based-On-Change-Id: I50af7dacf616e0f8ff4c43f4acc679089ad7022b Based-On-Signed-off-by: Julius Werner <jwerner@chromium.org> Based-On-Reviewed-on: https://chromium-review.googlesource.com/219170 Reviewed-on: http://review.coreboot.org/9114 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@google.com>
This commit is contained in:
parent
08f2ab6aac
commit
2459aeea0b
1
Makefile
1
Makefile
|
@ -235,6 +235,7 @@ endef
|
||||||
filetypes-of-class=$(subst .,,$(sort $(suffix $($(1)-srcs))))
|
filetypes-of-class=$(subst .,,$(sort $(suffix $($(1)-srcs))))
|
||||||
$(foreach class,$(classes), \
|
$(foreach class,$(classes), \
|
||||||
$(foreach type,$(call filetypes-of-class,$(class)), \
|
$(foreach type,$(call filetypes-of-class,$(class)), \
|
||||||
|
$(eval $(class)-$(type)-ccopts += $(generic-$(type)-ccopts) $($(class)-generic-ccopts)) \
|
||||||
$(eval $(call create_cc_template,$(class),$(type),$($(class)-$(type)-ccopts),$($(class)-$(type)-deps)))))
|
$(eval $(call create_cc_template,$(class),$(type),$($(class)-$(type)-ccopts),$($(class)-$(type)-deps)))))
|
||||||
|
|
||||||
foreach-src=$(foreach file,$($(1)-srcs),$(eval $(call $(1)-objs_$(subst .,,$(suffix $(file)))_template,$(subst src/,,$(basename $(file))))))
|
foreach-src=$(foreach file,$($(1)-srcs),$(eval $(call $(1)-objs_$(subst .,,$(suffix $(file)))_template,$(subst src/,,$(basename $(file))))))
|
||||||
|
|
12
Makefile.inc
12
Makefile.inc
|
@ -116,8 +116,7 @@ ramstage-postprocess=$(foreach d,$(sort $(dir $(1))), \
|
||||||
$(eval $(d)ramstage.o: $(call files-in-dir,$(d),$(1)); $$(LD_ramstage) -o $$@ -r $$^ ) \
|
$(eval $(d)ramstage.o: $(call files-in-dir,$(d),$(1)); $$(LD_ramstage) -o $$@ -r $$^ ) \
|
||||||
$(eval ramstage-objs:=$(d)ramstage.o $(filter-out $(call files-in-dir,$(d),$(1)),$(ramstage-objs))))
|
$(eval ramstage-objs:=$(d)ramstage.o $(filter-out $(call files-in-dir,$(d),$(1)),$(ramstage-objs))))
|
||||||
|
|
||||||
romstage-c-ccopts:=-D__PRE_RAM__
|
romstage-generic-ccopts += -D__PRE_RAM__
|
||||||
romstage-S-ccopts:=-D__PRE_RAM__
|
|
||||||
ifeq ($(CONFIG_TRACE),y)
|
ifeq ($(CONFIG_TRACE),y)
|
||||||
ramstage-c-ccopts:= -finstrument-functions
|
ramstage-c-ccopts:= -finstrument-functions
|
||||||
endif
|
endif
|
||||||
|
@ -133,13 +132,10 @@ ifeq ($(CONFIG_USE_BLOBS),y)
|
||||||
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty))
|
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bootblock-c-ccopts:=-D__BOOT_BLOCK__ -D__PRE_RAM__
|
bootblock-generic-ccopts += -D__BOOT_BLOCK__ -D__PRE_RAM__
|
||||||
bootblock-S-ccopts:=-D__BOOT_BLOCK__ -D__PRE_RAM__
|
|
||||||
|
|
||||||
smmstub-c-ccopts:=-D__SMM__
|
smmstub-generic-ccopts += -D__SMM__
|
||||||
smmstub-S-ccopts:=-D__SMM__
|
smm-generic-ccopts += -D__SMM__
|
||||||
smm-c-ccopts:=-D__SMM__
|
|
||||||
smm-S-ccopts:=-D__SMM__
|
|
||||||
|
|
||||||
# SMM TSEG base is dynamic
|
# SMM TSEG base is dynamic
|
||||||
ifneq ($(CONFIG_SMM_MODULES),y)
|
ifneq ($(CONFIG_SMM_MODULES),y)
|
||||||
|
|
|
@ -28,8 +28,7 @@ SECMON_ELF=$(SECMON_DIR)/secmon.elf
|
||||||
SECMON_RMOD=$(SECMON_DIR)/secmon.elf.rmod
|
SECMON_RMOD=$(SECMON_DIR)/secmon.elf.rmod
|
||||||
SECMON_RAMSTAGE=$(SECMON_DIR)/secmon.ramstage.o
|
SECMON_RAMSTAGE=$(SECMON_DIR)/secmon.ramstage.o
|
||||||
|
|
||||||
secmon-c-ccopts += -I$(src)/arch/arm64/include/armv8/ -include $(src)/include/kconfig.h -D__SECMON__
|
secmon-generic-ccopts += -I$(src)/arch/arm64/include/armv8/ -include $(src)/include/kconfig.h -D__SECMON__
|
||||||
secmon-S-ccopts += -I$(src)/arch/arm64/include/armv8/ -include $(src)/include/kconfig.h -D__SECMON__
|
|
||||||
|
|
||||||
secmon-y += secmon_init.c
|
secmon-y += secmon_init.c
|
||||||
secmon-y += psci.c
|
secmon-y += psci.c
|
||||||
|
|
|
@ -96,8 +96,7 @@ VB_SOURCE := vboot_reference
|
||||||
INCLUDES += -I$(VB_SOURCE)/firmware/2lib/include
|
INCLUDES += -I$(VB_SOURCE)/firmware/2lib/include
|
||||||
INCLUDES += -I$(VB_SOURCE)/firmware/include
|
INCLUDES += -I$(VB_SOURCE)/firmware/include
|
||||||
|
|
||||||
verstage-c-ccopts += -D__PRE_RAM__ -D__VER_STAGE__
|
verstage-generic-ccopts += -D__PRE_RAM__ -D__VER_STAGE__
|
||||||
verstage-S-ccopts += -D__PRE_RAM__ -D__VER_STAGE__
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RETURN_FROM_VERSTAGE),y)
|
ifeq ($(CONFIG_RETURN_FROM_VERSTAGE),y)
|
||||||
bootblock-y += verstub.c chromeos.c
|
bootblock-y += verstub.c chromeos.c
|
||||||
|
|
Loading…
Reference in New Issue