50 lines
700 B
Makefile
50 lines
700 B
Makefile
.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 $@
|