xref: /aosp_15_r20/external/coreboot/util/nvramtool/Makefile (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1##
2## Makefile for nvram utility
3##
4## (C) 2005-2008 coresystems GmbH
5## written by Stefan Reinauer <[email protected]>
6##
7## SPDX-License-Identifier: GPL-2.0-only
8
9PROGRAM = nvramtool
10
11CC     ?= gcc
12INSTALL = /usr/bin/env install
13PREFIX  = /usr/local
14CFLAGS  = -O2 -g -Wall -Wextra -Wmissing-prototypes -I. -DCMOS_HAL=1
15#CFLAGS  = -Os -Wall
16
17CLI_OBJS = cli/nvramtool.o cli/opts.o
18
19OBJS =  cmos_lowlevel.o cmos_ops.o common.o compute_ip_checksum.o \
20	hexdump.o input_file.o layout.o accessors/layout-common.o accessors/layout-text.o accessors/layout-bin.o lbtable.o   \
21	reg_expr.o cbfs.o accessors/cmos-hw-unix.o accessors/cmos-mem.o
22
23OBJS += $(CLI_OBJS)
24
25OS_ARCH        = $(shell uname)
26ifeq ($(OS_ARCH), Darwin)
27LDFLAGS = -framework DirectHW
28endif
29ifeq ($(OS_ARCH),$(filter $(OS_ARCH),NetBSD OpenBSD))
30LDFLAGS = -l$(shell uname -p)
31endif
32ifeq ($(shell uname -o 2>/dev/null), Cygwin)
33LDFLAGS = -lioperm
34CFLAGS += -D__GLIBC__
35endif
36
37all: dep $(PROGRAM)
38
39$(PROGRAM): $(OBJS)
40	$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) $(CFLAGS)
41
42clean:
43	rm -f $(PROGRAM) $(OBJS) junit.xml
44
45distclean: clean
46	rm -f .dependencies
47
48dep:
49	@$(CC) -MM -MG *.c > .dependencies
50
51install: $(PROGRAM)
52	mkdir -p $(DESTDIR)$(PREFIX)/sbin
53	$(INSTALL) $(PROGRAM) $(DESTDIR)$(PREFIX)/sbin
54	mkdir -p $(DESTDIR)$(PREFIX)/share/man/man8
55	$(INSTALL) -p -m644 cli/$(PROGRAM).8 $(DESTDIR)$(PREFIX)/share/man/man8
56
57.PHONY: all clean distclean dep
58
59-include .dependencies
60