# Makefile for passwdgen # Supports: build, test, install, uninstall, clean # Vars: PREFIX=/usr/local make install # DESTDIR=/tmp/staging make install PREFIX ?= /usr/local BUILD_DIR ?= build JOBS ?= $(shell sysctl -n hw.ncpu 2>/dev/null || echo 4) .PHONY: all build test clean install uninstall all: build build: cmake -S . -B $(BUILD_DIR) -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release cmake --build $(BUILD_DIR) -j$(JOBS) test: build ctest --test-dir $(BUILD_DIR) -V clean: rm -rf $(BUILD_DIR) install: build mkdir -p $(DESTDIR)$(PREFIX)/bin cp $(BUILD_DIR)/passwdgen $(DESTDIR)$(PREFIX)/bin/passwdgen chmod 755 $(DESTDIR)$(PREFIX)/bin/passwdgen mkdir -p $(DESTDIR)$(PREFIX)/lib cp $(BUILD_DIR)/libpasswdgen_lib.a $(DESTDIR)$(PREFIX)/lib/libpasswdgen_lib.a chmod 644 $(DESTDIR)$(PREFIX)/lib/libpasswdgen_lib.a mkdir -p $(DESTDIR)$(PREFIX)/include cp include/passwdgen.h $(DESTDIR)$(PREFIX)/include/passwdgen.h chmod 644 $(DESTDIR)$(PREFIX)/include/passwdgen.h uninstall: rm -f $(DESTDIR)$(PREFIX)/bin/passwdgen rm -f $(DESTDIR)$(PREFIX)/lib/libpasswdgen_lib.a rm -f $(DESTDIR)$(PREFIX)/include/passwdgen.h