1# SPDX-License-Identifier: GPL-2.0-or-later 2 3PRG := smmstoretool 4TOP ?= $(abspath ../..) 5ROOT := $(TOP)/src 6MDE := $(ROOT)/vendorcode/intel/edk2/UDK2017/MdePkg/Include/ 7 8CC ?= $(CROSS_COMPILE)gcc 9HOSTCC ?= $(CC) 10INSTALL ?= /usr/bin/env install 11PREFIX ?= /usr/local 12 13HOSTCFLAGS ?= $(CFLAGS) 14HOSTCFLAGS += -Wall -Wextra -MMD -MP -O3 15HOSTCFLAGS += -I $(ROOT)/commonlib/bsd/include 16HOSTCFLAGS += -I $(ROOT)/vendorcode/intel/edk2/ 17HOSTCFLAGS += -I $(TOP)/util/cbfstool/flashmap/ 18HOSTCFLAGS += -I $(MDE) 19 20HOSTLDFLAGS ?= $(LDFLAGS) 21 22MACHINE := $(shell uname -m) 23ifeq ($(MACHINE),x86_64) 24 HOSTCFLAGS += -I $(MDE)/X64 25else ifeq ($(patsubst i%86,Ia32,$(MACHINE)),Ia32) 26 HOSTCFLAGS += -I $(MDE)/Ia32 27else 28 $(error Unsupported machine: '$(MACHINE)') 29endif 30 31# there files are in this directory 32SRC := data.c fv.c guids.c main.c storage.c utils.c vs.c 33# and these are in $(TOP)/util/cbfstool/flashmap/ 34SRC += fmap.c kv_pair.c valstr.c 35 36OBJ := $(SRC:.c=.o) 37DEP := $(SRC:.c=.o.d) 38 39.PHONY: all debug clean install 40 41all: $(PRG) 42 43debug: HOSTCFLAGS += -O0 -g 44debug: HOSTLDFLAGS += -g 45debug: all 46 47install: $(PRG) 48 $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin/ 49 $(INSTALL) $^ $(DESTDIR)$(PREFIX)/bin/ 50 51clean: 52 -$(RM) $(PRG) $(OBJ) $(DEP) 53 54$(PRG): $(OBJ) 55 $(HOSTCC) -o $@ $^ $(HOSTLDFLAGS) 56 57%.o: %.c 58 $(HOSTCC) $(HOSTCFLAGS) -c -o $@ -MF $@.d $< 59 60%.o: $(TOP)/util/cbfstool/flashmap/%.c 61 $(HOSTCC) $(HOSTCFLAGS) -c -o $@ -MF $@.d $< 62 63-include $(DEP) 64