master Makefile
 1.POSIX:
 2.SUFFIXES:
 3
 4GO ?= go
 5RM ?= rm
 6INSTALL ?= install
 7SCDOC ?= scdoc
 8GIT ?= git
 9GOFLAGS ?=
10VERSION ?=
11PREFIX ?= /usr/local
12BINDIR ?= bin
13MANDIR ?= share/man
14APPDIR ?= share/applications
15ICONDIR ?= share/icons
16
17ifeq (0, $(shell $(GIT) status >/dev/null 2>&1; echo $$?))
18export SOURCE_DATE_EPOCH ?= $(shell $(GIT) log -1 --pretty=%ct)
19endif
20
21all: senpai doc
22
23senpai:
24	$(GO) build $(GOFLAGS) -ldflags "-X git.sr.ht/~delthas/senpai.version=$(VERSION)" ./cmd/senpai
25
26ifeq (, $(shell which $(SCDOC) 2>/dev/null))
27$(warning "$(SCDOC) not found, skipping building documentation")
28doc:
29else
30doc: doc/senpai.1 doc/senpai.5
31doc/senpai.1: doc/senpai.1.scd
32	$(SCDOC) < doc/senpai.1.scd > doc/senpai.1
33doc/senpai.5: doc/senpai.5.scd
34	$(SCDOC) < doc/senpai.5.scd > doc/senpai.5
35endif
36
37res: res/icon.128.png res/icon.48.png
38res/icon.128.png: res/icon.svg
39	rsvg-convert -o res/icon.128.png res/icon.svg
40res/icon.48.png: res/icon.svg
41	rsvg-convert -w 48 -h 48 -o res/icon.48.png res/icon.svg
42
43clean:
44	$(RM) -rf senpai doc/senpai.1 doc/senpai.5
45install:
46	$(INSTALL) -d $(DESTDIR)$(PREFIX)/$(BINDIR)
47	$(INSTALL) senpai $(DESTDIR)$(PREFIX)/$(BINDIR)/senpai
48	$(INSTALL) -d $(DESTDIR)$(PREFIX)/$(MANDIR)/man1
49	$(INSTALL) -m644 doc/senpai.1 $(DESTDIR)$(PREFIX)/$(MANDIR)/man1/senpai.1
50	$(INSTALL) -d $(DESTDIR)$(PREFIX)/$(MANDIR)/man5
51	$(INSTALL) -m644 doc/senpai.5 $(DESTDIR)$(PREFIX)/$(MANDIR)/man5/senpai.5
52	$(INSTALL) -d $(DESTDIR)$(PREFIX)/$(APPDIR)
53	$(INSTALL) -m644 contrib/senpai.desktop $(DESTDIR)$(PREFIX)/$(APPDIR)/senpai.desktop
54	$(INSTALL) -d $(DESTDIR)$(PREFIX)/$(ICONDIR)/hicolor/48x48/apps
55	$(INSTALL) -m644 res/icon.48.png $(DESTDIR)$(PREFIX)/$(ICONDIR)/hicolor/48x48/apps/senpai.png
56	$(INSTALL) -d $(DESTDIR)$(PREFIX)/$(ICONDIR)/hicolor/scalable/apps
57	$(INSTALL) -m644 res/icon.svg $(DESTDIR)$(PREFIX)/$(ICONDIR)/hicolor/scalable/apps/senpai.svg
58uninstall:
59	$(RM) $(DESTDIR)$(PREFIX)/$(BINDIR)/senpai
60	$(RM) $(DESTDIR)$(PREFIX)/$(MANDIR)/man1/senpai.1
61	$(RM) $(DESTDIR)$(PREFIX)/$(MANDIR)/man5/senpai.5
62	$(RM) $(DESTDIR)$(PREFIX)/$(APPDIR)/senpai.desktop
63	$(RM) $(DESTDIR)$(PREFIX)/$(ICONDIR)/hicolor/48x48/apps/senpai.png
64	$(RM) $(DESTDIR)$(PREFIX)/$(ICONDIR)/hicolor/scalable/apps/senpai.svg
65
66emoji:
67	curl -sSfL -o emoji.json "https://raw.githubusercontent.com/delthas/gemoji-json/master/emoji.json"
68
69.PHONY: all senpai doc res clean install uninstall emoji