blob: 0d7f687f3bb1abd2d58eb2f07aa0ffd8909ea74c [file] [log] [blame]
Stefan Reinauer6559f432010-12-17 00:13:54 +00001##
2## Makefile for nvram utility
3##
4## (C) 2005-2008 coresystems GmbH
5## written by Stefan Reinauer <stepan@coresystems.de>
6##
Patrick Georgi7333a112020-05-08 20:48:04 +02007## SPDX-License-Identifier: GPL-2.0-only
Stefan Reinauer6540ae52007-07-12 16:35:42 +00008
Stefan Reinauera67aab72008-09-27 10:08:28 +00009PROGRAM = nvramtool
Stefan Reinauer6540ae52007-07-12 16:35:42 +000010
Patrick Georgi39099082020-06-02 19:50:47 +020011CC ?= gcc
Yegor Timoshenkoc2e49412018-10-07 01:58:27 +000012INSTALL = /usr/bin/env install
Stefan Reinauera67aab72008-09-27 10:08:28 +000013PREFIX = /usr/local
Jacob Garber52f0e842019-07-19 12:27:27 -060014CFLAGS = -O2 -g -Wall -Wextra -Wmissing-prototypes -I. -DCMOS_HAL=1
Stefan Reinauera67aab72008-09-27 10:08:28 +000015#CFLAGS = -Os -Wall
Stefan Reinauer6540ae52007-07-12 16:35:42 +000016
Patrick Georgic6d2b092011-01-28 07:47:10 +000017CLI_OBJS = cli/nvramtool.o cli/opts.o
18
Stefan Reinauera67aab72008-09-27 10:08:28 +000019OBJS = cmos_lowlevel.o cmos_ops.o common.o compute_ip_checksum.o \
Vikram Narayanana8111cf2012-04-14 15:25:13 +053020 hexdump.o input_file.o layout.o accessors/layout-common.o accessors/layout-text.o accessors/layout-bin.o lbtable.o \
Patrick Georgi1e916e02011-01-28 07:54:11 +000021 reg_expr.o cbfs.o accessors/cmos-hw-unix.o accessors/cmos-mem.o
Patrick Georgic6d2b092011-01-28 07:47:10 +000022
23OBJS += $(CLI_OBJS)
Stefan Reinauer6540ae52007-07-12 16:35:42 +000024
Stefan Reinauer4db6cbd2009-09-01 09:54:21 +000025OS_ARCH = $(shell uname)
26ifeq ($(OS_ARCH), Darwin)
Stefan Reinauercff573d2011-03-18 22:08:39 +000027LDFLAGS = -framework DirectHW
Stefan Reinauer4db6cbd2009-09-01 09:54:21 +000028endif
Piotr Kubaj1b36c9d2017-05-17 20:33:47 +020029ifeq ($(OS_ARCH),$(filter $(OS_ARCH),NetBSD OpenBSD))
jakllschb0c94a12011-02-08 16:07:49 +000030LDFLAGS = -l$(shell uname -p)
31endif
Zheng Baob13e94c2012-09-28 16:02:35 +080032ifeq ($(shell uname -o 2>/dev/null), Cygwin)
Raymond Danksa2937142012-04-27 08:46:55 -060033LDFLAGS = -lioperm
34CFLAGS += -D__GLIBC__
35endif
Stefan Reinauer4db6cbd2009-09-01 09:54:21 +000036
Stefan Reinauera67aab72008-09-27 10:08:28 +000037all: dep $(PROGRAM)
Stefan Reinauer6540ae52007-07-12 16:35:42 +000038
Stefan Reinauera67aab72008-09-27 10:08:28 +000039$(PROGRAM): $(OBJS)
Rudolf Marek6e296652011-01-24 21:05:53 +000040 $(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) $(CFLAGS)
Stefan Reinauer6540ae52007-07-12 16:35:42 +000041
42clean:
Martin Roth0be83c02015-10-21 14:50:00 -060043 rm -f $(PROGRAM) $(OBJS) junit.xml
Stefan Reinauer6540ae52007-07-12 16:35:42 +000044
Stefan Reinauera67aab72008-09-27 10:08:28 +000045distclean: clean
46 rm -f .dependencies
47
48dep:
Yunlian Jiang063c7c52013-08-09 11:24:00 -070049 @$(CC) -MM -MG *.c > .dependencies
Stefan Reinauera67aab72008-09-27 10:08:28 +000050
51install: $(PROGRAM)
Stefan Reinauer4db6cbd2009-09-01 09:54:21 +000052 mkdir -p $(DESTDIR)$(PREFIX)/sbin
53 $(INSTALL) $(PROGRAM) $(DESTDIR)$(PREFIX)/sbin
54 mkdir -p $(DESTDIR)$(PREFIX)/share/man/man8
Lubomir Rintelba1f9aa2014-01-28 16:52:48 +000055 $(INSTALL) -p -m644 cli/$(PROGRAM).8 $(DESTDIR)$(PREFIX)/share/man/man8
Stefan Reinauera67aab72008-09-27 10:08:28 +000056
57.PHONY: all clean distclean dep
58
59-include .dependencies