blob: 034aca26a6be10dfd4da4b32a575361fba665c62 [file] [log] [blame]
Patrick Georgiae570d52015-09-16 16:34:15 +02001top ?= $(abspath ../..)
2objutil ?= $(top)/util
Felix Singer2060bff2022-02-27 05:06:09 +01003RM ?= rm
Patrick Georgiae570d52015-09-16 16:34:15 +02004
Alexander Couzens2c68b1c2016-06-16 20:16:54 -07005CONFIG_FMD_GENPARSER ?= n
Peter Stuge1d862de2009-04-14 00:08:34 +00006
Alexandru Gagniuc4a7b1152014-01-27 17:17:29 -06007HOSTCC ?= $(CC)
Denis 'GNUtoo' Carikli3ef241f2015-11-11 05:27:25 +01008PREFIX ?= /usr/local
9BINDIR ?= $(PREFIX)/bin
Yegor Timoshenkoc2e49412018-10-07 01:58:27 +000010INSTALL ?= /usr/bin/env install
Stefan Reinauer0316e1a2015-11-20 17:58:59 +010011OBJCOPY ?= objcopy
Felix Singer2060bff2022-02-27 05:06:09 +010012override objutil := ..
Sol Boucher0e539312015-03-05 15:38:03 -080013
Paul Kocialkowski61486b52016-07-24 12:14:38 +020014VBOOT_SOURCE ?= $(top)/3rdparty/vboot
Yu-Ping Wu0beddb52020-03-09 10:58:37 +080015VBOOT_HOST_BUILD ?= $(abspath $(objutil)/vboot_lib)
Paul Kocialkowski61486b52016-07-24 12:14:38 +020016
Sol Boucher0e539312015-03-05 15:38:03 -080017.PHONY: all
Furquan Shaikhd7fb6a92021-09-16 22:04:11 -070018all: cbfstool ifittool fmaptool rmodtool ifwitool cbfs-compression-tool elogtool cse_fpt cse_serger
Peter Stuge1d862de2009-04-14 00:08:34 +000019
Antonello Dettori75c37052016-06-05 17:26:01 +020020cbfstool: $(objutil)/cbfstool/cbfstool
21
22fmaptool: $(objutil)/cbfstool/fmaptool
23
24rmodtool: $(objutil)/cbfstool/rmodtool
25
26ifwitool: $(objutil)/cbfstool/ifwitool
27
Philipp Deppenwiese5ada0022018-11-20 13:54:49 +010028ifittool: $(objutil)/cbfstool/ifittool
29
Patrick Georgic88d16b2017-01-11 15:26:58 +010030cbfs-compression-tool: $(objutil)/cbfstool/cbfs-compression-tool
31
Ricardo Quesadac2cf3942021-07-16 16:49:04 -070032elogtool: $(objutil)/cbfstool/elogtool
33
Furquan Shaikh796aeeb2021-09-16 22:02:01 -070034cse_fpt: $(objutil)/cbfstool/cse_fpt
35
Furquan Shaikhd7fb6a92021-09-16 22:04:11 -070036cse_serger: $(objutil)/cbfstool/cse_serger
37
38.PHONY: clean cbfstool ifittool fmaptool rmodtool ifwitool cbfs-compression-tool elogtool cse_fpt cse_serger
Patrick Georgib7b56dd82009-09-14 13:29:27 +000039clean:
Felix Singer2060bff2022-02-27 05:06:09 +010040 $(RM) -f fmd_parser.c fmd_parser.h fmd_scanner.c fmd_scanner.h
41 $(RM) -f $(objutil)/cbfstool/cbfstool $(cbfsobj)
42 $(RM) -f $(objutil)/cbfstool/fmaptool $(fmapobj)
43 $(RM) -f $(objutil)/cbfstool/rmodtool $(rmodobj)
44 $(RM) -f $(objutil)/cbfstool/ifwitool $(ifwiobj)
45 $(RM) -f $(objutil)/cbfstool/ifittool $(ifitobj)
46 $(RM) -f $(objutil)/cbfstool/cbfs-compression-tool $(cbfscompobj)
47 $(RM) -f $(objutil)/cbfstool/elogtool $(elogobj)
48 $(RM) -f $(objutil)/cbfstool/cse_fpt $(cse_fpt_obj)
49 $(RM) -f $(objutil)/cbfstool/cse_serger $(cse_serger_obj)
50 $(RM) -rf $(VBOOT_HOST_BUILD)
Peter Stuge1d862de2009-04-14 00:08:34 +000051
Stefan Reinauer0316e1a2015-11-20 17:58:59 +010052linux_trampoline.c: linux_trampoline.S
53 rm -f linux_trampoline.c
54 $(CC) -m32 -o linux_trampoline linux_trampoline.S -ffreestanding -nostdlib -nostdinc -Wl,--defsym=_start=0
55 $(OBJCOPY) -Obinary -j .data linux_trampoline trampoline
56 echo "/* This file is automatically generated. Do not manually change */" > trampoline.c
Patrick Georgi1dd517c2020-05-10 20:45:08 +020057 echo "/* SPDX-License-Identifier: GPL-2.0-only */" >> trampoline.c
Stefan Reinauer0316e1a2015-11-20 17:58:59 +010058 xxd -c 16 -i trampoline >> trampoline.c
Stefan Reinauer0316e1a2015-11-20 17:58:59 +010059 mv trampoline.c linux_trampoline.c
60 rm linux_trampoline trampoline
61
Martin Roth92f447a2021-02-14 14:57:06 -070062.PHONY: install distclean help
Denis 'GNUtoo' Carikli3ef241f2015-11-11 05:27:25 +010063install: all
64 mkdir -p $(DESTDIR)$(BINDIR)
65 $(INSTALL) cbfstool $(DESTDIR)$(BINDIR)
66 $(INSTALL) fmaptool $(DESTDIR)$(BINDIR)
67 $(INSTALL) rmodtool $(DESTDIR)$(BINDIR)
68 $(INSTALL) ifwitool $(DESTDIR)$(BINDIR)
Philipp Deppenwiese5ada0022018-11-20 13:54:49 +010069 $(INSTALL) ifittool $(DESTDIR)$(BINDIR)
Denis 'GNUtoo' Carikli3ef241f2015-11-11 05:27:25 +010070 $(INSTALL) cbfs-compression-tool $(DESTDIR)$(BINDIR)
Ricardo Quesadac2cf3942021-07-16 16:49:04 -070071 $(INSTALL) elogtool $(DESTDIR)$(BINDIR)
Furquan Shaikh796aeeb2021-09-16 22:02:01 -070072 $(INSTALL) cse_fpt $(DESTDIR)$(BINDIR)
Furquan Shaikhd7fb6a92021-09-16 22:04:11 -070073 $(INSTALL) cse_serger $(DESTDIR)$(BINDIR)
Denis 'GNUtoo' Carikli3ef241f2015-11-11 05:27:25 +010074
Martin Roth92f447a2021-02-14 14:57:06 -070075distclean: clean
76
77help:
78 @echo "cbfstool & associated tools"
79 @echo "Targets: all, clean, distclean, help"
80 @echo " cbfstool - Manipulate CBFS images"
81 @echo " fmaptool - Compile Flashmap descriptor (fmd) files"
82 @echo " rmodtool - Create relocatable modules"
83 @echo " ifwitool - Manipulate Intel FW Image (IFWI)"
84 @echo " ifittool - Manipulate Intel FW Interface Table (FIT)"
85 @echo " cbfs-compression-tool - benchmark compression algorithms"
Ricardo Quesadac2cf3942021-07-16 16:49:04 -070086 @echo " elogtool - Display ELOG events"
Furquan Shaikh796aeeb2021-09-16 22:02:01 -070087 @echo " cse_fpt - Manage Intel CSE Flash Partition Table (FPT)"
Furquan Shaikhd7fb6a92021-09-16 22:04:11 -070088 @echo " cse_serger - Stitch Intel CSE components"
Martin Roth92f447a2021-02-14 14:57:06 -070089
Vadim Bendebury98485de2018-11-01 20:48:21 -070090ifneq ($(V),1)
Stefan Reinauer30ff3622015-11-21 17:53:32 +010091.SILENT:
Vadim Bendebury98485de2018-11-01 20:48:21 -070092endif
Stefan Reinauer30ff3622015-11-21 17:53:32 +010093
Patrick Georgiae570d52015-09-16 16:34:15 +020094include Makefile.inc
Patrick Georgi67d958b2021-05-29 16:12:29 +020095
96$(objutil)/cbfstool/cbfstool.o: $(VBOOT_SOURCE)/firmware/include/vb2_sha.h
Ricardo Quesadac2cf3942021-07-16 16:49:04 -070097$(objutil)/cbfstool/elogtool.o: $(VBOOT_SOURCE)/firmware/include/vb2_sha.h
Patrick Georgi67d958b2021-05-29 16:12:29 +020098
99$(VBOOT_SOURCE)/firmware/include/vb2_sha.h:
100 cd $(VBOOT_SOURCE) && git submodule update --init .