.POSIX: .PHONY: build docs NAME := args ifneq "$(wildcard src/*.h)" '' HEADERS = $(wildcard src/*.h) endif define DOCS $(subst docs/, build/man/, $(patsubst %.md, %, $(wildcard docs/*.md) ) ) endef build: build/ build/$(NAME) build/$(NAME): src/main.c $(HEADERS) cc -o $@ $< define PREFIX ifeq $(UID) 0 /usr/local else $(HOME)/.local endif endef install: install -CDm0755 -t $(PREFIX)/bin/ build/$(NAME) install -CDm0644 -t $(PREFIX)/share/man/man1 build/$(NAME) test: $(error testing using `make' not supported; use `just') docs: make $(strip $(DOCS)) build/man/%: docs/%.md build/man/ docs/ pandoc --to man \ --standalone \ --output $@ \ $< %/: @mkdir -p $@