blob: d73c25165a12a1cf83406ab99b0d46e3a5b41824 [file] [log] [blame]
Sergii Dmytruk04bd9652023-11-17 19:31:20 +02001# 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/
Sergii Dmytruk89e056b2024-03-02 17:02:00 +020017HOSTCFLAGS += -I $(TOP)/util/cbfstool/flashmap/
Sergii Dmytruk04bd9652023-11-17 19:31:20 +020018HOSTCFLAGS += -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
Sergii Dmytruk89e056b2024-03-02 17:02:00 +020031# there files are in this directory
Sergii Dmytruk04bd9652023-11-17 19:31:20 +020032SRC := data.c fv.c guids.c main.c storage.c utils.c vs.c
Sergii Dmytruk89e056b2024-03-02 17:02:00 +020033# and these are in $(TOP)/util/cbfstool/flashmap/
34SRC += fmap.c kv_pair.c valstr.c
Sergii Dmytruk04bd9652023-11-17 19:31:20 +020035
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
Sergii Dmytruk89e056b2024-03-02 17:02:00 +020060%.o: $(TOP)/util/cbfstool/flashmap/%.c
61 $(HOSTCC) $(HOSTCFLAGS) -c -o $@ -MF $@.d $<
62
Sergii Dmytruk04bd9652023-11-17 19:31:20 +020063-include $(DEP)