cast sizeof() to unsigned to avoid warnings on 64-bit
[pcu.git] / Makefile
blob787195244fe46460b2db32ab1bdc1e4c59d35708
1 # default target
2 all::
4 prefix = $(HOME)
5 bindir = $(prefix)/bin
6 mandir = $(prefix)/share/man
7 INSTALL = install
8 PANDOC = pandoc
9 PANDOC_OPTS = -s -f markdown --email-obfuscation=none --sanitize-html
10 pandoc = $(PANDOC) $(PANDOC_OPTS)
11 pandoc_html = $(pandoc) --toc -t html --no-wrap
12 STRIP ?= strip
13 GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
14 @./GIT-VERSION-GEN
15 -include GIT-VERSION-FILE
17 DISTNAME = pcu-$(GIT_VERSION)
19 # overridable from command-line
20 CFLAGS = -g -O2 -Wall
21 LDFLAGS = -Wl,-O1
23 pcu-mincore: mincore.c compat-util.h
24 pcu-fadvise: fadvise.c compat-util.h
26 PCU_BIN := pcu-fadvise pcu-mincore
28 $(PCU_BIN):
29 $(CC) $(CFLAGS) $(LDFLAGS) -o $@+ $<
30 mv $@+ $@
32 all:: $(PCU_BIN)
34 install: $(PCU_BIN)
35 $(INSTALL) -d -m 755 '$(DESTDIR)$(bindir)'
36 $(INSTALL) $^ '$(DESTDIR)$(bindir)'
38 strip: $(PCU_BIN)
39 $(STRIP) $(STRIP_OPTS) $(PCU_BIN)
41 install-strip: strip
42 $(MAKE) install
44 %.1: %.1.txt
45 $(pandoc) -t man < $< > $@+
46 mv $@+ $@
47 %.1.html: %.1.txt
48 $(pandoc_html) -T $(basename $@) < $< > $@+
49 mv $@+ $@
51 man1 := $(addsuffix .1,$(PCU_BIN))
52 html := index.html INSTALL.html $(addsuffix .html, $(man1))
53 html: $(html)
54 man: $(man1)
55 doc: html man
56 install-man: install-man1
57 install-man1: $(man1)
58 $(INSTALL) -d -m 755 '$(DESTDIR)$(mandir)/man1'
59 $(INSTALL) $^ '$(DESTDIR)$(mandir)/man1'
61 dist: GIT-VERSION-FILE
62 git archive --format=tar --prefix=$(DISTNAME)/ HEAD^{tree} \
63 | gzip -9 > $(DISTNAME).tar.gz+
64 mv $(DISTNAME).tar.gz+ $(DISTNAME).tar.gz
65 clean:
66 $(RM) $(PCU_BIN) $(DISTNAME).tar.gz* GIT-VERSION-FILE
67 $(RM) $(man1) $(html)
69 INSTALL.html index.html: title = $(shell sed -ne 1p < $<)
70 INSTALL.html: INSTALL
71 index.html: README
73 index.html INSTALL.html:
74 $(pandoc_html) -T "$(title)" < $< > $@+
75 mv $@+ $@
77 .PHONY: .FORCE-GIT-VERSION-FILE install install-man man