Now we use Subversion, it seems excessive to have an individual $Id$
[u/mdw/putty] / doc / Makefile
1 all: man index.html
2
3 # Decide on the versionid policy.
4 #
5 # If the user has passed in $(VERSION) on the command line (`make
6 # VERSION="Release 0.56"'), we use that as an explicit version
7 # string. Otherwise, we use `svnversion' to examine the checked-out
8 # documentation source, and if that returns a single revision
9 # number then we invent a version string reflecting just that
10 # number. Failing _that_, we resort to versionids.but which shows a
11 # $Id for each individual file.
12 #
13 # So here, we define VERSION using svnversion if it isn't already
14 # defined ...
15 ifndef VERSION
16 SVNVERSION=$(shell test -d .svn && svnversion .)
17 BADCHARS=$(findstring :,$(SVNVERSION))$(findstring S,$(SVNVERSION))
18 ifeq ($(BADCHARS),)
19 ifneq ($(SVNVERSION),)
20 VERSION=Built from revision $(patsubst M,,$(SVNVERSION))
21 endif
22 endif
23 endif
24 # ... and now, we condition our build behaviour on whether or not
25 # VERSION _is_ defined.
26 ifdef VERSION
27 VERSIONIDS=vstr
28 vstr.but: FORCE
29 echo \\versionid $(VERSION) > vstr.but
30 FORCE:;
31 else
32 VERSIONIDS=vids
33 endif
34
35 CHAPTERS := $(SITE) blurb intro gs using config pscp psftp plink pubkey
36 CHAPTERS += pageant errors faq feedback licence
37 CHAPTERS += index $(VERSIONIDS)
38
39 INPUTS = $(patsubst %,%.but,$(CHAPTERS))
40
41 # This is temporary. Hack it locally or something.
42 HALIBUT = $(HOME)/src/halibut/build/halibut
43
44 index.html: $(INPUTS)
45 $(HALIBUT) --text --html --winhelp $(INPUTS)
46
47 MKMAN = $(HALIBUT) --man=$@ mancfg.but $<
48 MANPAGES = putty.1 puttygen.1 plink.1 pscp.1 psftp.1 puttytel.1 pterm.1
49 man: $(MANPAGES)
50
51 putty.1: man-putt.but mancfg.but; $(MKMAN)
52 puttygen.1: man-pg.but mancfg.but; $(MKMAN)
53 plink.1: man-pl.but mancfg.but; $(MKMAN)
54 pscp.1: man-pscp.but mancfg.but; $(MKMAN)
55 psftp.1: man-psft.but mancfg.but; $(MKMAN)
56 puttytel.1: man-ptel.but mancfg.but; $(MKMAN)
57 pterm.1: man-pter.but mancfg.but; $(MKMAN)
58
59 clean:
60 rm -f *.html *.txt *.hlp *.cnt *.1 vstr.but