xref: /aosp_15_r20/external/coreboot/util/nvramtool/Makefile.mk (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1##
2## Integration of nvramtool into the coreboot build system
3##
4## (C) 2005-2008 coresystems GmbH
5## written by Stefan Reinauer <[email protected]>
6## (C) 2012 secunet Security Networks AG
7##
8## SPDX-License-Identifier: GPL-2.0-only
9
10OS_ARCH        = $(shell uname)
11NVRAMTOOLFLAGS := -I$(top)/util/nvramtool
12ifeq ($(OS_ARCH), NetBSD)
13NVRAMTOOLLDLFLAGS = -l$(shell uname -p)
14endif
15ifeq ($(shell uname -o 2>/dev/null), Cygwin)
16NVRAMTOOLFLAGS += -O2 -g -Wall -W -D__GLIBC__
17HOSTCFLAGS =
18endif
19
20nvramtoolobj :=
21nvramtoolobj += cli/nvramtool.o cli/opts.o
22nvramtoolobj += cmos_lowlevel.o cmos_ops.o common.o compute_ip_checksum.o
23nvramtoolobj += hexdump.o input_file.o layout.o accessors/layout-common.o accessors/layout-text.o accessors/layout-bin.o lbtable.o
24nvramtoolobj += reg_expr.o cbfs.o accessors/cmos-mem.o
25
26ifeq ($(shell uname -s 2>/dev/null | cut -c-7), MINGW32)
27NVRAMTOOLLDFLAGS += -lregex -lwsock32
28nvramtoolobj += win32mmap.o
29endif
30
31additional-dirs += $(objutil)/nvramtool/accessors $(objutil)/nvramtool/cli
32
33$(objutil)/nvramtool/%.o: $(top)/util/nvramtool/%.c
34	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
35	$(HOSTCC) $(NVRAMTOOLFLAGS) $(HOSTCFLAGS) -c -o $@ $<
36
37$(objutil)/nvramtool/nvramtool: $(objutil)/nvramtool $(objutil)/nvramtool/accessors $(objutil)/nvramtool/cli $(addprefix $(objutil)/nvramtool/,$(nvramtoolobj))
38	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
39	$(HOSTCC) $(NVRAMTOOLFLAGS) -o $@ $(addprefix $(objutil)/nvramtool/,$(nvramtoolobj)) $(NVRAMTOOLLDFLAGS)
40