-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGNUmakefile
33 lines (27 loc) · 912 Bytes
/
GNUmakefile
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
.PHONY: all clean install package package-install
PREFIX := /usr/local
DATADIR := $(PREFIX)/share
MANDIR := $(DATADIR)/man
STAGE := stage
PKGDIR := out
all: text-gemini.5.gz anachronauts.7.gz gemini.7.gz
clean:
-rm *.gz install.log
-rm -r $(STAGE)
%.gz: %.scd suffix.txt
cat $^ | scdoc | gzip > $@
install: all
install -d -Minstall.log $(MANDIR)/man5
install -Minstall.log text-gemini.5.gz $(MANDIR)/man5
install -d -Minstall.log $(MANDIR)/man7
install -Minstall.log anachronauts.7.gz gemini.7.gz $(MANDIR)/man7
package:
-rm install.log
-rm -r $(STAGE)
$(MAKE) PREFIX=$(STAGE)$(PREFIX) install
cat MANIFEST > $(STAGE)/+MANIFEST
echo prefix $(PREFIX) >> $(STAGE)/+MANIFEST
awk '/type=file/ { print substr($$1, index($$1, "$(PREFIX)")) }' install.log > $(STAGE)/plist
mkdir -p $(PKGDIR)
pkg create -o "$(PKGDIR)" -r "$(STAGE)" -M "$(STAGE)/+MANIFEST" -p "$(STAGE)/plist"
pkg repo "$(PKGDIR)"