summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2021-01-11 15:17:59 +0100
committerPatrick Georgi <pgeorgi@google.com>2021-01-12 14:43:26 +0000
commit227055bdeb84072bf094ccb9fc330a1aefcfc2c9 (patch)
tree0675f92bf50752ba6d7f87d25736514a9c67ab00
parent83bdb4511632daeb67e53e8ed4b03e2165d4188e (diff)
util/ifdtool: Add coreboot build system support
When building as part of the coreboot build system, use the same mechanism as other tools (cbfstool, amdfwtool, ...) so that abuild builds ifdtool once into sharedutils instead of once per board (while avoiding other race conditions, too). Change-Id: I42c7b43cc0859916174d59cba6b62630e70287fd Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/49312 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
-rw-r--r--Makefile.inc5
-rw-r--r--util/ifdtool/Makefile.inc18
2 files changed, 19 insertions, 4 deletions
diff --git a/Makefile.inc b/Makefile.inc
index ae61c2ebf3..72f5d24da0 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -85,6 +85,7 @@ subdirs-y += $(wildcard src/drivers/*) $(wildcard src/drivers/*/*) $(wildcard sr
subdirs-y += src/cpu src/vendorcode
subdirs-y += util/cbfstool util/sconfig util/nvramtool util/pgtblgen util/amdfwtool
subdirs-y += util/futility util/marvell util/bincfg util/supermicro util/qemu
+subdirs-y += util/ifdtool
subdirs-y += $(wildcard src/arch/*)
subdirs-y += src/mainboard/$(MAINBOARDDIR)
subdirs-y += src/security
@@ -576,10 +577,6 @@ endif
BINCFG:=$(objutil)/bincfg/bincfg
IFDTOOL:=$(objutil)/ifdtool/ifdtool
-$(IFDTOOL):
- @printf " Compile IFDTOOL\n"
- +$(MAKE) -C $(top)/util/ifdtool
- cp -a $(top)/util/ifdtool/ifdtool $@
AMDFWTOOL:=$(objutil)/amdfwtool/amdfwtool
diff --git a/util/ifdtool/Makefile.inc b/util/ifdtool/Makefile.inc
new file mode 100644
index 0000000000..b2d8f87804
--- /dev/null
+++ b/util/ifdtool/Makefile.inc
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+
+ifdtoolobj = ifdtool.o fmap.o kv_pair.o valstr.o
+
+IFDTOOLCFLAGS = -O2 -g -Wall -Wextra -Wmissing-prototypes -Werror
+IFDTOOLCFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
+IFDTOOLCFLAGS += -I$(top)/util/cbfstool/flashmap
+IFDTOOLCFLAGS += -include $(top)/src/commonlib/bsd/include/commonlib/bsd/compiler.h
+
+$(objutil)/ifdtool/%.o: $(top)/util/ifdtool/%.c
+ $(HOSTCC) $(IFDTOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
+
+$(objutil)/ifdtool/%.o: $(top)/util/cbfstool/flashmap/%.c
+ $(HOSTCC) $(IFDTOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
+
+$(objutil)/ifdtool/ifdtool: $(addprefix $(objutil)/ifdtool/,$(ifdtoolobj))
+ printf " IFDTOOL\n"
+ $(HOSTCC) $(addprefix $(objutil)/ifdtool/,$(ifdtoolobj)) -o $@