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