xref: /aosp_15_r20/external/coreboot/util/cbfstool/Makefile (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1top ?= $(abspath ../..)
2objutil ?= $(top)/util
3RM ?= rm
4
5CONFIG_FMD_GENPARSER ?= n
6
7HOSTCC ?= $(CC)
8PREFIX ?= /usr/local
9BINDIR ?= $(PREFIX)/bin
10INSTALL ?= /usr/bin/env install
11OBJCOPY ?= objcopy
12override objutil := ..
13
14VBOOT_SOURCE ?= $(top)/3rdparty/vboot
15VBOOT_HOST_BUILD ?= $(abspath $(objutil)/vboot_lib)
16SPDX_ID_STRING := SPDX-License-Identifier
17
18.PHONY: all
19all: cbfstool ifittool fmaptool rmodtool ifwitool cbfs-compression-tool elogtool cse_fpt cse_serger
20
21cbfstool: $(objutil)/cbfstool/cbfstool
22
23fmaptool: $(objutil)/cbfstool/fmaptool
24
25rmodtool: $(objutil)/cbfstool/rmodtool
26
27ifwitool: $(objutil)/cbfstool/ifwitool
28
29ifittool: $(objutil)/cbfstool/ifittool
30
31cbfs-compression-tool: $(objutil)/cbfstool/cbfs-compression-tool
32
33elogtool: $(objutil)/cbfstool/elogtool
34
35cse_fpt: $(objutil)/cbfstool/cse_fpt
36
37cse_serger: $(objutil)/cbfstool/cse_serger
38
39.PHONY: clean cbfstool ifittool fmaptool rmodtool ifwitool cbfs-compression-tool elogtool cse_fpt cse_serger
40clean:
41	$(RM) -f fmd_parser.c fmd_parser.h fmd_scanner.c fmd_scanner.h
42	$(RM) -f $(objutil)/cbfstool/cbfstool $(cbfsobj)
43	$(RM) -f $(objutil)/cbfstool/fmaptool $(fmapobj)
44	$(RM) -f $(objutil)/cbfstool/rmodtool $(rmodobj)
45	$(RM) -f $(objutil)/cbfstool/ifwitool $(ifwiobj)
46	$(RM) -f $(objutil)/cbfstool/ifittool $(ifitobj)
47	$(RM) -f $(objutil)/cbfstool/cbfs-compression-tool $(cbfscompobj)
48	$(RM) -f $(objutil)/cbfstool/elogtool $(elogobj)
49	$(RM) -f $(objutil)/cbfstool/cse_fpt $(cse_fpt_obj)
50	$(RM) -f $(objutil)/cbfstool/cse_serger $(cse_serger_obj)
51	$(RM) -rf $(VBOOT_HOST_BUILD)
52
53linux_trampoline.c: linux_trampoline.S
54	rm -f linux_trampoline.c
55	$(CC) -m32 -o linux_trampoline linux_trampoline.S -ffreestanding -nostdlib -nostdinc -Wl,--defsym=_start=0
56	$(OBJCOPY) -Obinary -j .data linux_trampoline trampoline
57	echo "/* This file is automatically generated. Do not manually change */" > trampoline.c
58	echo "/* $(SPDX_ID_STRING): GPL-2.0-only */" >> trampoline.c
59	xxd -c 16 -i trampoline >> trampoline.c
60	mv trampoline.c linux_trampoline.c
61	rm linux_trampoline trampoline
62
63.PHONY: install distclean help
64install: all
65	mkdir -p $(DESTDIR)$(BINDIR)
66	$(INSTALL) cbfstool $(DESTDIR)$(BINDIR)
67	$(INSTALL) fmaptool $(DESTDIR)$(BINDIR)
68	$(INSTALL) rmodtool $(DESTDIR)$(BINDIR)
69	$(INSTALL) ifwitool $(DESTDIR)$(BINDIR)
70	$(INSTALL) ifittool $(DESTDIR)$(BINDIR)
71	$(INSTALL) cbfs-compression-tool $(DESTDIR)$(BINDIR)
72	$(INSTALL) elogtool $(DESTDIR)$(BINDIR)
73	$(INSTALL) cse_fpt $(DESTDIR)$(BINDIR)
74	$(INSTALL) cse_serger $(DESTDIR)$(BINDIR)
75
76distclean: clean
77
78help:
79	@echo "cbfstool & associated tools"
80	@echo "Targets: all, clean, distclean, help"
81	@echo "  cbfstool - Manipulate CBFS images"
82	@echo "  fmaptool - Compile Flashmap descriptor (fmd) files"
83	@echo "  rmodtool - Create relocatable modules"
84	@echo "  ifwitool - Manipulate Intel FW Image (IFWI)"
85	@echo "  ifittool - Manipulate Intel FW Interface Table (FIT)"
86	@echo "  cbfs-compression-tool - benchmark compression algorithms"
87	@echo "  elogtool - Display ELOG events"
88	@echo "  cse_fpt  - Manage Intel CSE Flash Partition Table (FPT)"
89	@echo "  cse_serger - Stitch Intel CSE components"
90
91ifneq ($(V),1)
92.SILENT:
93endif
94
95include Makefile.mk
96
97$(objutil)/cbfstool/cbfstool.o: $(VBOOT_SOURCE)/firmware/include/vb2_sha.h
98$(objutil)/cbfstool/elogtool.o: $(VBOOT_SOURCE)/firmware/include/vb2_sha.h
99
100$(VBOOT_SOURCE)/firmware/include/vb2_sha.h:
101	cd $(VBOOT_SOURCE) && git submodule update --init .
102