pcu.git  about / heads / tags
page cache utilities for Linux
blob 879f68b912c9761f3433a76660776dac339d9322 2075 bytes (raw)
$ git show HEAD:Makefile	# shows this blob on the CLI

 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
 
# default target
all::

prefix = $(HOME)
bindir = $(prefix)/bin
mandir = $(prefix)/share/man
INSTALL = install
PANDOC = pandoc
PANDOC_OPTS = -s -f markdown --email-obfuscation=none
pandoc = $(PANDOC) $(PANDOC_OPTS)
pandoc_html = $(pandoc) --toc -t html --no-wrap
STRIP ?= strip
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
	@./GIT-VERSION-GEN
-include GIT-VERSION-FILE

DISTNAME = pcu-$(GIT_VERSION)

# overridable from command-line
CFLAGS = -g -O2 -Wall
LDFLAGS = -Wl,-O1

pcu-mincore: mincore.c compat-util.h
pcu-fadvise: fadvise.c compat-util.h
pcu-fsync: fsync.c compat-util.h

PCU_BIN := pcu-fadvise pcu-mincore pcu-fsync

pcu-fsync: LDFLAGS += -ldl

$(PCU_BIN):
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@+ $<
	mv $@+ $@

all:: $(PCU_BIN)

install: $(PCU_BIN)
	$(INSTALL) -d -m 755 '$(DESTDIR)$(bindir)'
	$(INSTALL) $^ '$(DESTDIR)$(bindir)'

strip: $(PCU_BIN)
	$(STRIP) $(STRIP_OPTS) $(PCU_BIN)

install-strip: strip
	$(MAKE) install

%.1: %.1.txt
	$(pandoc) -t man < $< > $@+
	mv $@+ $@
%.1.html: %.1.txt
	$(pandoc_html) -T $(basename $@) < $< > $@+
	mv $@+ $@

man1 := $(addsuffix .1,$(PCU_BIN))
html := index.html INSTALL.html $(addsuffix .html, $(man1))
html: $(html)
man: $(man1)
doc: html man
install-man: install-man1
install-man1: $(man1)
	$(INSTALL) -d -m 755 '$(DESTDIR)$(mandir)/man1'
	$(INSTALL) $^ '$(DESTDIR)$(mandir)/man1'

dist: GIT-VERSION-FILE
	git archive --format=tar --prefix=$(DISTNAME)/ HEAD^{tree} \
		| gzip -9 > $(DISTNAME).tar.gz+
	mv $(DISTNAME).tar.gz+ $(DISTNAME).tar.gz
clean:
	$(RM) $(PCU_BIN) $(DISTNAME).tar.gz* GIT-VERSION-FILE
	$(RM) $(man1) $(html)

INSTALL.html index.html: title = $(shell sed -ne 1p < $<)
INSTALL.html: INSTALL
index.html: README

index.html INSTALL.html:
	$(pandoc_html) -T "$(title)" < $< > $@+
	mv $@+ $@

txt := $(addsuffix .1.txt,$(PCU_BIN))
www: index.html INSTALL.html INSTALL README $(man1) $(html) $(txt)
	mkdir -p public_html/
	install -m 644 $^ public_html/
	cd public_html && for i in $^; do \
	  gzip -9 < $$i > $$i.gz; \
	  touch -r $$i.gz $$i; \
	  done

.PHONY: .FORCE-GIT-VERSION-FILE install install-man man

git clone https://yhbt.net/pcu.git