aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 6b9b4188481e073becb5ace0b1467549a78aeb1c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
PREFIX =
SYSCONF = /etc
DEV = /dev
BIN = /bin
SBIN = /sbin
DATA = /usr/share
LICENSES = $(DATA)/licenses
COMMAND = got
PKGNAME = gates-of-tartaros
SSH = ssh

BASH_SHEBANG = /usr/bin/env bash
ECHO = /usr/bin/echo

EXAMPLES = lower-left-ponysay allow-uppercase issue-file commands no-empty-user



.PHONY: all
all: cmd doc

.PHONY: doc
doc: info

.PHONY: info
info: gates-of-tartaros.info.gz

%.info.gz: info/%.texinfo.install
	makeinfo "$<"
	gzip -9 -f "$*.info"

info/%.texinfo.install: info/%.texinfo
	cp "$<" "$@"
	sed -i 's:^@set BIN /bin:@set BIN $(PREFIX)$(BIN):g' "$@"
	sed -i 's:^@set SBIN /sbin:@set SBIN $(PREFIX)$(SBIN):g' "$@"
	sed -i 's:^@set DEV /dev:@set DEV $(DEV):g' "$@"
	sed -i 's:^@set ETC /etc:@set ETC $(SYSCONF):g' "$@"
	sed -i 's:^@set GOT got:@set GOT $(COMMAND):g' "$@"
	sed -i 's:^@set SSH ssh:@set SSH $(SSH):g' "$@"

.PHONY: cmd
cmd: got.install

got.install: got
	cp "$<" "$@"
	sed -i 's:#!/usr/bin/env bash:#!$(BASH_SHEBANG):g' "$@"
	sed -i 's:@prefix@:$(PREFIX):g' "$@"
	sed -i 's:@dev@:$(DEV):g' "$@"
	sed -i 's:@etc@:$(SYSCONF):g' "$@"
	sed -i 's:@command@:$(COMMAND):g' "$@"
	sed -i 's:@ssh@:$(SSH):g' "$@"
	sed -i 's:@echo@:$(ECHO):g' "$@"



.PHONY: install
install: install-cmd install-doc

.PHONY: install-cmd
install-cmd: install-core install-examples

.PHONY: install-core
install-core: got.install
	install -Dm755 -- "got.install"     "$(DESTDIR)$(PREFIX)$(SBIN)/got"
	install -d     --                   "$(DESTDIR)$(LICENSES)/$(PKGNAME)"
	install  -m644 -- COPYING LICENSE   "$(DESTDIR)$(LICENSES)/$(PKGNAME)"

.PHONY: install-examples
install-examples: $(foreach EXAMPLE, $(EXAMPLES), gotrc-examples/$(EXAMPLE))
	install -d     --    "$(DESTDIR)$(SYSCONF)/gotrc.examples"
	install  -m644 -- $^ "$(DESTDIR)$(SYSCONF)/gotrc.examples"

.PHONY: install-doc
install-doc: install-info

.PHONY: install-info
install-info: gates-of-tartaros.info.gz
	install -Dm644 -- "$<" "$(DESTDIR)$(DATA)/info/$(PKGNAME).info.gz"



.PHONY: uninstall
uninstall:
	-rm -- "$(DESTDIR)$(PREFIX)$(SBIN)/got"
	-rm -r -- "$(DESTDIR)$(SYSCONF)/gotrc.examples"
	-rm -- "$(DESTDIR)$(LICENSES)/$(PKGNAME)/COPYING"
	-rm -- "$(DESTDIR)$(LICENSES)/$(PKGNAME)/LICENSE"
	-rm -d -- "$(DESTDIR)$(LICENSES)/$(PKGNAME)"
	-rm -- "$(DESTDIR)$(DATA)/info/$(PKGNAME).info.gz"



.PHONY: clean
clean:
	-rm *.install *.info.gz 2>/dev/null