7b77cafa6402fb1d9d01c4ae47caf2a9b0d87724 / aldermon/Makefile · 1308 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-setup.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)
install -Dm644 aldermon.conf $(CONF)
install -Dm755 aldermon-setup.sh $(SETUP)
ifeq ($(DESTDIR),)
# VID needs the cap half of a two-gate check (msr nodes also go 0440 adm
# via aldermon-setup.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
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