.POSIX: PREFIX = /usr/local MANPREFIX = $(PREFIX)/share/man DATE = 1970-01-01 VERSION = 0.1.0 NAME = gistatic manpages = \ doc/$(NAME).1 \ all: target/release/$(NAME) target/release/$(NAME): cargo build --release check: all cargo test --release dev-check: check sh aux/assert-shellcheck.sh sh aux/workflow/assert-todos.sh sh aux/workflow/assert-changelog.sh $(NAME) do_subst = sed \ -e 's:[@]VERSION[@]:$(VERSION):g' \ -e 's:[@]DATE[@]:$(DATE):g' install: all install -m 755 -D target/release/$(NAME) $(DESTDIR)$(PREFIX)/bin/$(NAME) for m in $(manpages); do \ n=$${m##*.}; \ mkdir -p $(DESTDIR)$(MANPREFIX)/man$$n; \ $(do_subst) < $$m > $(DESTDIR)$(MANPREFIX)/man$$n/`basename $${m%%.*}.$$n`.gz; \ done uninstall: rm -f $(DESTDIR)$(PREFIX)/bin/$(NAME) for m in $(manpages); do rm -f $(DESTDIR)$(MANPREFIX)/man$${m##*.}/`basename $${m%%.*}`.$${m##*.}.gz; done clean: rm -rf public/ cargo clean dist: sh aux/workflow/dist.sh $(DATE) $(VERSION) $(NAME) public: README.md TODOs.md CHANGELOG.md sh aux/workflow/public.sh $(NAME) $(NAME) public-inbox for m in $(manpages); do groff -m man -Thtml $$m > public/`basename $$m`.html; done .PHONY: all clean check dev-check dist install uninstall