| # SPDX-License-Identifier: GPL-2.0-or-later |
| |
| PRG := smmstoretool |
| TOP ?= $(abspath ../..) |
| ROOT := $(TOP)/src |
| MDE := $(ROOT)/vendorcode/intel/edk2/UDK2017/MdePkg/Include/ |
| |
| CC ?= $(CROSS_COMPILE)gcc |
| HOSTCC ?= $(CC) |
| INSTALL ?= /usr/bin/env install |
| PREFIX ?= /usr/local |
| |
| HOSTCFLAGS ?= $(CFLAGS) |
| HOSTCFLAGS += -Wall -Wextra -MMD -MP -O3 |
| HOSTCFLAGS += -I $(ROOT)/commonlib/bsd/include |
| HOSTCFLAGS += -I $(ROOT)/vendorcode/intel/edk2/ |
| HOSTCFLAGS += -I $(TOP)/util/cbfstool/flashmap/ |
| HOSTCFLAGS += -I $(MDE) |
| |
| HOSTLDFLAGS ?= $(LDFLAGS) |
| |
| MACHINE := $(shell uname -m) |
| ifeq ($(MACHINE),x86_64) |
| HOSTCFLAGS += -I $(MDE)/X64 |
| else ifeq ($(patsubst i%86,Ia32,$(MACHINE)),Ia32) |
| HOSTCFLAGS += -I $(MDE)/Ia32 |
| else |
| $(error Unsupported machine: '$(MACHINE)') |
| endif |
| |
| # there files are in this directory |
| SRC := data.c fv.c guids.c main.c storage.c utils.c vs.c |
| # and these are in $(TOP)/util/cbfstool/flashmap/ |
| SRC += fmap.c kv_pair.c valstr.c |
| |
| OBJ := $(SRC:.c=.o) |
| DEP := $(SRC:.c=.o.d) |
| |
| .PHONY: all debug clean install |
| |
| all: $(PRG) |
| |
| debug: HOSTCFLAGS += -O0 -g |
| debug: HOSTLDFLAGS += -g |
| debug: all |
| |
| install: $(PRG) |
| $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin/ |
| $(INSTALL) $^ $(DESTDIR)$(PREFIX)/bin/ |
| |
| clean: |
| -$(RM) $(PRG) $(OBJ) $(DEP) |
| |
| $(PRG): $(OBJ) |
| $(HOSTCC) -o $@ $^ $(HOSTLDFLAGS) |
| |
| %.o: %.c |
| $(HOSTCC) $(HOSTCFLAGS) -c -o $@ -MF $@.d $< |
| |
| %.o: $(TOP)/util/cbfstool/flashmap/%.c |
| $(HOSTCC) $(HOSTCFLAGS) -c -o $@ -MF $@.d $< |
| |
| -include $(DEP) |