diff options
| author | Leah Rowe <leah@libreboot.org> | 2026-03-18 14:00:30 +0000 |
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2026-03-18 14:00:30 +0000 |
| commit | 4dbb1c9bf3e88612ccaf471d3f6db120d255b33b (patch) | |
| tree | b219c3b98eefcf5391dee1e45aa0328d2d0a7433 | |
| parent | bd7be7bb7ef208e9cc8f9f6d70a0a34f96a37cc6 (diff) | |
util/nvmutil: put objects in obj/
Signed-off-by: Leah Rowe <leah@libreboot.org>
| -rw-r--r-- | util/nvmutil/Makefile | 119 |
1 files changed, 57 insertions, 62 deletions
diff --git a/util/nvmutil/Makefile b/util/nvmutil/Makefile index 31d902ae..73721cf3 100644 --- a/util/nvmutil/Makefile +++ b/util/nvmutil/Makefile @@ -2,18 +2,21 @@ # Copyright (c) 2022,2026 Leah Rowe <leah@libreboot.org> # Copyright (c) 2023 Riku Viitanen <riku.viitanen@protonmail.com> +# Makefile for nvmutil, which is an application +# that modifies Intel GbE NVM configurations. + CC = cc HELLCC = clang -CFLAGS= -LDFLAGS= -DESTDIR= +CFLAGS = +LDFLAGS = +DESTDIR = PREFIX = /usr/local INSTALL = install .SUFFIXES: .c .o -LDIR= +LDIR = PORTABLE = $(LDIR) $(CFLAGS) WARN = $(PORTABLE) -Wall -Wextra @@ -22,71 +25,65 @@ HELLFLAGS = $(STRICT) -Weverything PROG = nvmutil -# source files +OBJS = \ + obj/nvmutil.o \ + obj/state.o \ + obj/file.o \ + obj/string.o \ + obj/usage.o \ + obj/command.o \ + obj/num.o \ + obj/io.o \ + obj/checksum.o \ + obj/word.o -SRCS = nvmutil.c state.c file.c string.c usage.c command.c num.c io.c \ - checksum.c word.c +# default mode +CFLAGS_MODE = $(PORTABLE) +CC_MODE = $(CC) -# object files +all: $(PROG) -OBJS = $(SRCS:.c=.o) +$(PROG): $(OBJS) + $(CC_MODE) $(OBJS) -o $(PROG) $(LDFLAGS) -# default mode +# ensure obj directory exists +$(OBJS): obj -MODE = portable +obj: + mkdir obj || true -# default mode, options +obj/nvmutil.o: nvmutil.c + $(CC_MODE) $(CFLAGS_MODE) -c nvmutil.c -o obj/nvmutil.o -CFLAGS_MODE = $(PORTABLE) -CC_MODE = $(CC) +obj/state.o: state.c + $(CC_MODE) $(CFLAGS_MODE) -c state.c -o obj/state.o -# override modes (options) - -ifeq ($(MODE),warn) -CFLAGS_MODE = $(WARN) -endif - -ifeq ($(MODE),strict) -CFLAGS_MODE = $(STRICT) -endif - -ifeq ($(MODE),hell) -CFLAGS_MODE = $(HELLFLAGS) -CC_MODE = $(HELLCC) -endif - -# (rebuild on .h changes) -# (commented for portability) -# -# CFLAGS_MODE += -MMD -MP -# -include $(OBJS:.o=.d) -# -# likely more compatible, -# on its own: -# -include $(OBJS:.o=.d) -# -# i want this to build on -# old make, so i'll leave -# this blanked by default +obj/file.o: file.c + $(CC_MODE) $(CFLAGS_MODE) -c file.c -o obj/file.o -all: $(PROG) +obj/string.o: string.c + $(CC_MODE) $(CFLAGS_MODE) -c string.c -o obj/string.o -$(PROG): $(OBJS) - $(CC_MODE) $(OBJS) -o $(PROG) $(LDFLAGS) +obj/usage.o: usage.c + $(CC_MODE) $(CFLAGS_MODE) -c usage.c -o obj/usage.o + +obj/command.o: command.c + $(CC_MODE) $(CFLAGS_MODE) -c command.c -o obj/command.o -# generic rules +obj/num.o: num.c + $(CC_MODE) $(CFLAGS_MODE) -c num.c -o obj/num.o -# .c.o: is the old style (portable) -# modern equivalent: -# %.o: %.c -# -.c.o: - $(CC_MODE) $(CFLAGS_MODE) -c $< -o $@ +obj/io.o: io.c + $(CC_MODE) $(CFLAGS_MODE) -c io.c -o obj/io.o + +obj/checksum.o: checksum.c + $(CC_MODE) $(CFLAGS_MODE) -c checksum.c -o obj/checksum.o + +obj/word.o: word.c + $(CC_MODE) $(CFLAGS_MODE) -c word.c -o obj/word.o + +# install -# -m in install is not portable -# to old/other/weird versions. -# use chmod directly. -# install: $(PROG) $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin $(INSTALL) $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG) @@ -100,15 +97,13 @@ clean: distclean: clean -# easy commands +# mode targets (portable replacement for ifeq) warn: - $(MAKE) MODE=warn + $(MAKE) CFLAGS_MODE="$(WARN)" strict: - $(MAKE) MODE=strict + $(MAKE) CFLAGS_MODE="$(STRICT)" hell: - $(MAKE) MODE=hell - -.PHONY: all warn strict hell install uninstall clean distclean + $(MAKE) CFLAGS_MODE="$(HELLFLAGS)" CC_MODE="$(HELLCC)" |
