Croak with usage info on no arguments
[pcu.git] / Makefile
blob64b01546881fb0dea82a70b2be640ad9e990ce3d
1 # default target
2 all::
4 prefix = $(HOME)
5 bindir = $(prefix)/bin
6 mandir = $(prefix)/share/man
7 INSTALL = install
8 TXT2MAN = txt2man
9 STRIP ?= strip
10 GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
11 @./GIT-VERSION-GEN
12 -include GIT-VERSION-FILE
14 DISTNAME = pcu-$(GIT_VERSION)
16 # overridable from command-line
17 CFLAGS = -g -O2 -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
18 LDFLAGS = -Wl,-O1
20 fadvise.c: compat-util.h
21 mincore.c: compat-util.h
23 pcu-mincore: mincore.c
24 pcu-fadvise: fadvise.c
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 $(TXT2MAN) -r 'pcu $(GIT_VERSION)' \
46 -v 'Page Cache Utilities Reference Manual' \
47 -t $(basename $@) -s 1 < $< > $@+
48 mv $@+ $@
50 man1 := $(addsuffix .1,$(PCU_BIN))
51 man: $(man1)
52 install-man: install-man1
53 install-man1: $(man1)
54 $(INSTALL) -d -m 755 '$(DESTDIR)$(mandir)/man1'
55 $(INSTALL) $^ '$(DESTDIR)$(mandir)/man1'
57 dist: GIT-VERSION-FILE
58 git archive --format=tar --prefix=$(DISTNAME)/ HEAD^{tree} \
59 | gzip -9 > $(DISTNAME).tar.gz+
60 mv $(DISTNAME).tar.gz+ $(DISTNAME).tar.gz
61 clean:
62 $(RM) $(PCU_BIN) $(DISTNAME).tar.gz* GIT-VERSION-FILE
63 $(RM) $(man1)
65 .PHONY: .FORCE-GIT-VERSION-FILE install install-man man