1## SPDX-License-Identifier: GPL-2.0-only 2 3define libgnat-template 4# $1 arch 5 6additional-dirs += $$(obj)/libgnat-$(1)/adainclude 7additional-dirs += $$(obj)/libgnat-$(1)/adalib 8 9ADAFLAGS_libgnat-$(1) := \ 10 --RTS=$$(obj)/libgnat-$(1)/ \ 11 -gnatg \ 12 -gnatpg \ 13 -I$$(src)/lib/gnat/ \ 14 $$(GCC_ADAFLAGS_$(1)) \ 15 -Werror \ 16 -fno-pie \ 17 18libgnat-$(1)-y += a-unccon.ads 19libgnat-$(1)-y += ada.ads 20libgnat-$(1)-y += g-souinf.ads 21libgnat-$(1)-y += gnat.ads 22libgnat-$(1)-y += i-c.adb 23libgnat-$(1)-y += i-c.ads 24libgnat-$(1)-y += interfac.ads 25libgnat-$(1)-y += s-atacco.ads 26libgnat-$(1)-y += s-imenne.adb 27libgnat-$(1)-y += s-imenne.ads 28libgnat-$(1)-y += s-maccod.ads 29libgnat-$(1)-y += s-parame.ads 30libgnat-$(1)-y += s-stoele.adb 31libgnat-$(1)-y += s-stoele.ads 32libgnat-$(1)-y += s-unstyp.ads 33libgnat-$(1)-y += system.ads 34 35# Copy bodies too for inlining 36$$(obj)/libgnat-$(1)/libgnat.a: $$$$(libgnat-$(1)-objs) 37 cp $$(libgnat-$(1)-srcs) $$(libgnat-$(1)-extra-specs) \ 38 $$(obj)/libgnat-$(1)/adainclude/ 39 cp $$(libgnat-$(1)-alis) \ 40 $$(obj)/libgnat-$(1)/adalib/ 41 rm -f $$@ 42 @printf " AR $$(subst $$(obj)/,,$$(@))\n" 43 $$(AR_libgnat-$(1)) cr $$@ $$^ 44 45endef 46 47 48$(foreach arch,$(standard-archs), \ 49 $(eval $(call define_class,libgnat-$(arch),$(arch)))) 50 51$(foreach arch,$(standard-archs), \ 52 $(eval $(call libgnat-template,$(arch)))) 53 54ifeq ($(CONFIG_ROMSTAGE_ADA),y) 55romstage-libs += $(obj)/libgnat-$(ARCH-romstage-y)/libgnat.a 56endif 57ifeq ($(CONFIG_RAMSTAGE_ADA),y) 58ramstage-libs += $(obj)/libgnat-$(ARCH-ramstage-y)/libgnat.a 59endif 60