clone
ssh://git@git.notashelf.dev:33/notashelf/beer.git| 1 | # - make # build the release binary |
| 2 | # - make install # install under $(PREFIX), honouring $(DESTDIR) |
| 3 | # - make uninstall |
| 4 | # |
| 5 | # Override PREFIX/DESTDIR as usual, e.g. `make install PREFIX=/usr DESTDIR=pkg`. |
| 6 | |
| 7 | PREFIX ?= /usr/local |
| 8 | DESTDIR ?= |
| 9 | |
| 10 | BINDIR := $(DESTDIR)$(PREFIX)/bin |
| 11 | MANDIR := $(DESTDIR)$(PREFIX)/share/man |
| 12 | TERMINFODIR := $(DESTDIR)$(PREFIX)/share/terminfo |
| 13 | APPDIR := $(DESTDIR)$(PREFIX)/share/applications |
| 14 | ICONDIR := $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps |
| 15 | DOCDIR := $(DESTDIR)$(PREFIX)/share/doc/beer |
| 16 | |
| 17 | CARGO ?= cargo |
| 18 | SCDOC ?= scdoc |
| 19 | TIC ?= tic |
| 20 | INSTALL ?= install |
| 21 | |
| 22 | APPID := dev.notashelf.beer |
| 23 | |
| 24 | .PHONY: all build man install install-bin install-man install-terminfo \ |
| 25 | install-desktop install-doc uninstall clean |
| 26 | |
| 27 | all: build |
| 28 | |
| 29 | build: |
| 30 | $(CARGO) build --release --locked |
| 31 | |
| 32 | man: beer.1 beer.toml.5 beer-themes.7 |
| 33 | |
| 34 | beer.1: doc/beer.1.scd |
| 35 | $(SCDOC) < $< > $@ |
| 36 | beer.toml.5: doc/beer.toml.5.scd |
| 37 | $(SCDOC) < $< > $@ |
| 38 | beer-themes.7: doc/beer-themes.7.scd |
| 39 | $(SCDOC) < $< > $@ |
| 40 | |
| 41 | install: install-bin install-man install-terminfo install-desktop install-doc |
| 42 | |
| 43 | install-bin: build |
| 44 | $(INSTALL) -Dm755 target/release/beer $(BINDIR)/beer |
| 45 | |
| 46 | install-man: man |
| 47 | $(INSTALL) -Dm644 beer.1 $(MANDIR)/man1/beer.1 |
| 48 | $(INSTALL) -Dm644 beer.toml.5 $(MANDIR)/man5/beer.toml.5 |
| 49 | $(INSTALL) -Dm644 beer-themes.7 $(MANDIR)/man7/beer-themes.7 |
| 50 | |
| 51 | install-terminfo: |
| 52 | $(TIC) -x -o $(TERMINFODIR) terminfo/beer.info |
| 53 | |
| 54 | install-desktop: |
| 55 | $(INSTALL) -Dm644 contrib/$(APPID).desktop $(APPDIR)/$(APPID).desktop |
| 56 | $(INSTALL) -Dm644 contrib/$(APPID).svg $(ICONDIR)/$(APPID).svg |
| 57 | |
| 58 | install-doc: |
| 59 | $(INSTALL) -Dm644 contrib/beer.toml $(DOCDIR)/beer.toml.example |
| 60 | |
| 61 | uninstall: |
| 62 | $(RM) $(BINDIR)/beer |
| 63 | $(RM) $(MANDIR)/man1/beer.1 $(MANDIR)/man5/beer.toml.5 $(MANDIR)/man7/beer-themes.7 |
| 64 | $(RM) $(APPDIR)/$(APPID).desktop $(ICONDIR)/$(APPID).svg |
| 65 | $(RM) $(DOCDIR)/beer.toml.example |
| 66 | |
| 67 | clean: |
| 68 | $(RM) beer.1 beer.toml.5 beer-themes.7 |
| 69 | $(CARGO) clean |