xref: /aosp_15_r20/external/coreboot/util/smmstoretool/Makefile (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
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