xref: /aosp_15_r20/external/coreboot/src/lib/gnat/Makefile.mk (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
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