diff options
Diffstat (limited to 'src/lib/gnat/Makefile.mk')
-rw-r--r-- | src/lib/gnat/Makefile.mk | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/lib/gnat/Makefile.mk b/src/lib/gnat/Makefile.mk new file mode 100644 index 000000000000..150a715067ac --- /dev/null +++ b/src/lib/gnat/Makefile.mk @@ -0,0 +1,59 @@ +## SPDX-License-Identifier: GPL-2.0-only + +define libgnat-template +# $1 arch + +additional-dirs += $$(obj)/libgnat-$(1)/adainclude +additional-dirs += $$(obj)/libgnat-$(1)/adalib + +ADAFLAGS_libgnat-$(1) := \ + --RTS=$$(obj)/libgnat-$(1)/ \ + -gnatg \ + -gnatpg \ + -I$$(src)/lib/gnat/ \ + $$(GCC_ADAFLAGS_$(1)) \ + -Werror \ + -fno-pie \ + +libgnat-$(1)-y += a-unccon.ads +libgnat-$(1)-y += ada.ads +libgnat-$(1)-y += g-souinf.ads +libgnat-$(1)-y += gnat.ads +libgnat-$(1)-y += i-c.adb +libgnat-$(1)-y += i-c.ads +libgnat-$(1)-y += interfac.ads +libgnat-$(1)-y += s-atacco.ads +libgnat-$(1)-y += s-imenne.adb +libgnat-$(1)-y += s-imenne.ads +libgnat-$(1)-y += s-maccod.ads +libgnat-$(1)-y += s-parame.ads +libgnat-$(1)-y += s-stoele.adb +libgnat-$(1)-y += s-stoele.ads +libgnat-$(1)-y += s-unstyp.ads +libgnat-$(1)-y += system.ads + +# Copy bodies too for inlining +$$(obj)/libgnat-$(1)/libgnat.a: $$$$(libgnat-$(1)-objs) + cp $$(libgnat-$(1)-srcs) $$(libgnat-$(1)-extra-specs) \ + $$(obj)/libgnat-$(1)/adainclude/ + cp $$(libgnat-$(1)-alis) \ + $$(obj)/libgnat-$(1)/adalib/ + rm -f $$@ + @printf " AR $$(subst $$(obj)/,,$$(@))\n" + $$(AR_libgnat-$(1)) cr $$@ $$^ + +endef + + +$(foreach arch,$(standard-archs), \ + $(eval $(call define_class,libgnat-$(arch),$(arch)))) + +$(foreach arch,$(standard-archs), \ + $(eval $(call libgnat-template,$(arch)))) + +ifeq ($(CONFIG_ROMSTAGE_ADA),y) +romstage-libs += $(obj)/libgnat-$(ARCH-romstage-y)/libgnat.a +endif +ifeq ($(CONFIG_RAMSTAGE_ADA),y) +ramstage-libs += $(obj)/libgnat-$(ARCH-ramstage-y)/libgnat.a +endif |