Hook up Kconfig Ada spec file
We generate a $(obj)/cb-config.ads once and copy it per stage that uses it to $(obj)/<stage>/cb-config.ads (to simplify the gnat-bind step). The Ada package is called `CB.Config`. As there was no `CB` package yet, add that too. Change-Id: I963a6517ef4bcf84f2c8e9ae8d24a0d6b971d2b0 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/30584 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
parent
0226789dcc
commit
b567977075
10
Makefile
10
Makefile
|
@ -188,6 +188,9 @@ $(KCONFIG_AUTOCONFIG): $(KCONFIG_AUTOHEADER)
|
||||||
$(KCONFIG_AUTOADS): $(KCONFIG_AUTOCONFIG) $(objutil)/kconfig/toada
|
$(KCONFIG_AUTOADS): $(KCONFIG_AUTOCONFIG) $(objutil)/kconfig/toada
|
||||||
$(objutil)/kconfig/toada CB.Config <$< >$@
|
$(objutil)/kconfig/toada CB.Config <$< >$@
|
||||||
|
|
||||||
|
$(obj)/%/$(notdir $(KCONFIG_AUTOADS)): $(KCONFIG_AUTOADS)
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
# Add a new class of source/object files to the build system
|
# Add a new class of source/object files to the build system
|
||||||
add-class= \
|
add-class= \
|
||||||
$(eval $(1)-srcs:=) \
|
$(eval $(1)-srcs:=) \
|
||||||
|
@ -272,6 +275,11 @@ $(eval $(postinclude-hooks))
|
||||||
# Eliminate duplicate mentions of source files in a class
|
# Eliminate duplicate mentions of source files in a class
|
||||||
$(foreach class,$(classes),$(eval $(class)-srcs:=$(sort $($(class)-srcs))))
|
$(foreach class,$(classes),$(eval $(class)-srcs:=$(sort $($(class)-srcs))))
|
||||||
|
|
||||||
|
# Build Kconfig .ads if necessary
|
||||||
|
ifeq ($(CONFIG_RAMSTAGE_ADA),y)
|
||||||
|
ramstage-srcs += $(obj)/ramstage/$(notdir $(KCONFIG_AUTOADS))
|
||||||
|
endif
|
||||||
|
|
||||||
# To track dependencies, we need all Ada specification (.ads) files in
|
# To track dependencies, we need all Ada specification (.ads) files in
|
||||||
# *-srcs. Extract / filter all specification files that have a matching
|
# *-srcs. Extract / filter all specification files that have a matching
|
||||||
# body (.adb) file here (specifications without a body are valid sources
|
# body (.adb) file here (specifications without a body are valid sources
|
||||||
|
@ -320,7 +328,7 @@ define create_cc_template
|
||||||
ifn$(EMPTY)def $(1)-objs_$(2)_template
|
ifn$(EMPTY)def $(1)-objs_$(2)_template
|
||||||
de$(EMPTY)fine $(1)-objs_$(2)_template
|
de$(EMPTY)fine $(1)-objs_$(2)_template
|
||||||
ifn$(EMPTY)eq ($(filter ads adb,$(2)),)
|
ifn$(EMPTY)eq ($(filter ads adb,$(2)),)
|
||||||
$$(call src-to-obj,$1,$$(1).$2): $$(1).$2 $$(call create_ada_deps,$1,$$(call src-to-ali,$1,$$(1).$2)) $(KCONFIG_AUTOHEADER) $(4)
|
$$(call src-to-obj,$1,$$(1).$2): $$(1).$2 $$(call create_ada_deps,$1,$$(call src-to-ali,$1,$$(1).$2)) $(4)
|
||||||
@printf " GCC $$$$(subst $$$$(obj)/,,$$$$(@))\n"
|
@printf " GCC $$$$(subst $$$$(obj)/,,$$$$(@))\n"
|
||||||
$(GCC_$(1)) \
|
$(GCC_$(1)) \
|
||||||
$$$$(ADAFLAGS_$(1)) $$$$(addprefix -I,$$$$($(1)-ada-dirs)) \
|
$$$$(ADAFLAGS_$(1)) $$$$(addprefix -I,$$$$($(1)-ada-dirs)) \
|
||||||
|
|
|
@ -215,7 +215,9 @@ verstage-c-deps:=$$(OPTION_TABLE_H)
|
||||||
bootblock-c-deps:=$$(OPTION_TABLE_H)
|
bootblock-c-deps:=$$(OPTION_TABLE_H)
|
||||||
$(foreach type,ads adb, \
|
$(foreach type,ads adb, \
|
||||||
$(foreach stage,$(COREBOOT_STANDARD_STAGES), \
|
$(foreach stage,$(COREBOOT_STANDARD_STAGES), \
|
||||||
$(eval $(stage)-$(type)-deps := $(obj)/libgnat-$(ARCH-$(stage)-y)/libgnat.a)))
|
$(eval $(stage)-$(type)-deps := \
|
||||||
|
$(obj)/$(stage)/$(notdir $(KCONFIG_AUTOADS)) \
|
||||||
|
$(obj)/libgnat-$(ARCH-$(stage)-y)/libgnat.a)))
|
||||||
|
|
||||||
# Add handler to copy linker scripts
|
# Add handler to copy linker scripts
|
||||||
define generic-objs_ld_template_gen
|
define generic-objs_ld_template_gen
|
||||||
|
|
|
@ -296,6 +296,8 @@ $(objcbfs)/%.debug.rmod: $(objcbfs)/%.debug | $(RMODTOOL)
|
||||||
$(obj)/%.elf.rmod: $(obj)/%.elf | $(RMODTOOL)
|
$(obj)/%.elf.rmod: $(obj)/%.elf | $(RMODTOOL)
|
||||||
$(RMODTOOL) -i $< -o $@
|
$(RMODTOOL) -i $< -o $@
|
||||||
|
|
||||||
|
ramstage-$(CONFIG_RAMSTAGE_ADA) += cb.ads
|
||||||
|
|
||||||
ifeq ($(CONFIG_RAMSTAGE_LIBHWBASE),y)
|
ifeq ($(CONFIG_RAMSTAGE_LIBHWBASE),y)
|
||||||
|
|
||||||
to-ada-hex = $(eval $(1) := 16\\\#$(patsubst 0x%,%,$($(1)))\\\#)
|
to-ada-hex = $(eval $(1) := 16\\\#$(patsubst 0x%,%,$($(1)))\\\#)
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
package CB is
|
||||||
|
end CB;
|
Loading…
Reference in New Issue