summaryrefslogtreecommitdiff
path: root/util/nvmutil/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'util/nvmutil/Makefile')
-rw-r--r--util/nvmutil/Makefile60
1 files changed, 50 insertions, 10 deletions
diff --git a/util/nvmutil/Makefile b/util/nvmutil/Makefile
index f25f6dd5..6488ca43 100644
--- a/util/nvmutil/Makefile
+++ b/util/nvmutil/Makefile
@@ -1,16 +1,56 @@
# SPDX-License-Identifier: MIT
-# SPDX-FileCopyrightText: 2022 Leah Rowe <leah@libreboot.org>
-# SPDX-FileCopyrightText: 2023 Riku Viitanen <riku.viitanen@protonmail.com>
+# Copyright (c) 2022,2026 Leah Rowe <leah@libreboot.org>
+# Copyright (c) 2023 Riku Viitanen <riku.viitanen@protonmail.com>
-CC=cc
-CFLAGS=-Os -Wall -Wextra -Werror -pedantic
-PREFIX?=/usr/bin
+CC?=cc
+HELLCC?=clang
-nvm: nvmutil.c
- $(CC) $(CFLAGS) nvmutil.c -o nvm
+CFLAGS?=
+LDFLAGS?=
+DESTDIR?=
+PREFIX?=/usr/local
+INSTALL?=install
-install: nvm
- install nvm $(PREFIX)/nvm
+.SUFFIXES:
+
+# maybe add -I. here when running make
+# e.g. make LDIR=-I.
+LDIR?=
+
+PORTABLE?=$(LDIR) $(CFLAGS)
+WARN?=$(PORTABLE) -Wall -Wextra
+STRICT?=$(WARN) -std=c90 -pedantic -Werror
+HELLFLAGS?=$(STRICT) -Weverything
+
+# program name
+PROG=nvmutil
+
+all: $(PROG)
+
+$(PROG): $(PROG).c
+ $(CC) $(PORTABLE) $(PROG).c -o $(PROG) $(LDFLAGS)
+
+warn: $(PROG).c
+ $(CC) $(WARN) $(PROG).c -o $(PROG) $(LDFLAGS)
+
+strict: $(PROG).c
+ $(CC) $(STRICT) $(PROG).c -o $(PROG) $(LDFLAGS)
+
+# clang-only extreme warnings (not portable)
+hell: $(PROG).c
+ $(HELLCC) $(HELLFLAGS) $(PROG).c -o $(PROG) $(LDFLAGS)
+
+install: $(PROG)
+ $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin
+ $(INSTALL) $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG)
+ chmod 755 $(DESTDIR)$(PREFIX)/bin/$(PROG)
+
+uninstall:
+ rm -f $(DESTDIR)$(PREFIX)/bin/$(PROG)
clean:
- rm -f nvm
+ rm -f $(PROG)
+
+distclean: clean
+
+.PHONY: all warn strict hell install uninstall clean distclean