c7cc56f04e7cec733e0217d37b05bebb16427c38 / aldermon/Makefile · 1514 bytes · raw
# aldermon — btop-style Alder Lake monitor. Gentoo-friendly: respects
# PREFIX, DESTDIR. `make check` runs fmt+clippy+test.
PREFIX ?= /usr/local
SYSCONF ?= /etc
DATADIR ?= /usr/share
BIN := $(DESTDIR)$(PREFIX)/bin/aldermon
MSRBIN := $(DESTDIR)$(PREFIX)/bin/aldermon-msr
CONF := $(DESTDIR)$(SYSCONF)/aldermon/aldermon.conf
SETUP := $(DESTDIR)$(DATADIR)/aldermon/aldermon-install.sh
.PHONY: all build check install uninstall clean
all: build
build:
cargo build --release
check:
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
install: build
install -Dm755 target/release/aldermon $(BIN)
install -Dm755 target/release/aldermon-msr $(MSRBIN)
# never clobber a hand-edited system conf; aldermon-install.sh owns
# force-replacing it (--clean)
[ -e $(CONF) ] || install -Dm644 aldermon.conf $(CONF)
install -Dm755 aldermon-install.sh $(SETUP)
ifeq ($(DESTDIR),)
# VID needs the cap half of a two-gate check (msr nodes also go 0440 adm
# via the rules installed by aldermon-install.sh); grant cap_sys_rawio
# to the read-only helper only. Re-applied on every install since
# rebuilding drops file caps.
setcap cap_sys_rawio+ep $(MSRBIN)
endif
uninstall:
rm -f $(BIN) $(MSRBIN) $(CONF) $(SETUP)
rm -f $(DESTDIR)$(DATADIR)/aldermon/powercap-pl-rules.sh
rm -f $(DESTDIR)$(DATADIR)/aldermon/aldermon-setup.sh
rmdir -p --ignore-fail-on-non-empty $(CONF) 2>/dev/null || true
rmdir -p --ignore-fail-on-non-empty $(SETUP) 2>/dev/null || true
clean:
cargo clean