diff options
author | EuAndreh <eu@euandre.org> | 2021-02-23 00:12:27 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-02-23 00:12:27 -0300 |
commit | e11b4db2a3bd4fea77ad67569196055f241d1649 (patch) | |
tree | 0e86672e618ca1ee1879d57c4d7916b77170f271 /Makefile | |
parent | Add aux/workflow/public.sh, update aux/workflow/README.sh (diff) | |
download | remembering-e11b4db2a3bd4fea77ad67569196055f241d1649.tar.gz remembering-e11b4db2a3bd4fea77ad67569196055f241d1649.tar.xz |
Use plain Makefile over ./configure + Makefile.in
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3688316 --- /dev/null +++ b/Makefile @@ -0,0 +1,83 @@ +.POSIX: +CC = c99 +CFLAGS = -std=c99 -Wall -Wextra -Wpedantic -fPIC -g -DVERSION='"$(VERSION)"' -DDATE='"$(DATE)"' +LDFLAGS = +LDLIBS = +PREFIX = /usr/local +MANPREFIX = $(PREFIX)/share/man +VERSION = 0.2.0 +DATE = 2021-02-21 + +sources = src/remembering.c + +manpages = \ + doc/remembering.1 \ + doc/remembering.5 + +all: remembering remembering-c run-tests + +remembering: src/remembering.in + $(do_subst) < $? > $@-t + chmod +x $@-t + mv $@-t $@ + +remembering-c: $(sources) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(sources) $(LDLIBS) + +run-tests: $(sources) + $(CC) $(CFLAGS) $(LDFLAGS) -DTEST -o $@ $(sources) $(LDLIBS) + +fallible-tests: $(sources) + $(CC) $(CFLAGS) $(LDFLAGS) -DTEST -DFALLIBLE -o $@ $(sources) $(LDLIBS) + +check: all + ./run-tests + sh tests/cli-opts.sh + sh tests/ranking.sh + sh tests/signals.sh + if [ -d .git ]; then \ + echo 'Assuming Git repository, running development checks.'; \ + $(MAKE) dev-check; \ + fi + +VALGRIND_FLAGS= \ + --show-error-list=yes \ + --show-leak-kinds=all \ + --leak-check=full \ + --track-origins=yes \ + --error-exitcode=1 + +dev-check: all fallible-tests + valgrind $(VALGRIND_FLAGS) ./run-tests + fallible-check ./fallible-tests + sh aux/assert-clang-format.sh + sh aux/assert-shellcheck.sh + sh aux/workflow/assert-todos.sh + +clean: + rm -rf public/ tests/test-profiles/ remembering remembering-c run-tests fallible* vgcore* + +do_subst = sed \ + -e 's:[@]VERSION[@]:$(VERSION):g' \ + -e 's:[@]DATE[@]:$(DATE):g' + +install: all + install -m 755 -D remembering $(DESTDIR)$(PREFIX)/bin/remembering + for m in $(manpages); do \ + n=$${m##*.}; \ + mkdir -p $(DESTDIR)$(MANPREFIX)/man$$n; \ + $(do_subst) < $$m | gzip > $(DESTDIR)$(MANPREFIX)/man$$n/`basename $$m`.gz; \ + done + +uninstall: + rm -f $(DESTDIR)$(PREFIX)/bin/remembering + for m in $(manpages); do rm -f $(DESTDIR)$(MANPREFIX)/man$${##*.}/`basename $$m`.gz; done + +dist: + sh aux/workflow/dist.sh $(DATE) $(VERSION) + +public: README.md TODOs.md CHANGELOG.md $(manpages) + sh aux/workflow/public.sh Remembering remembering 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 |