| 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 | ifneq ($(SVNVERSION),exported) |
| 21 | VERSION=Built from revision $(patsubst M,,$(SVNVERSION)) |
| 22 | endif |
| 23 | endif |
| 24 | endif |
| 25 | endif |
| 26 | # ... and now, we condition our build behaviour on whether or not |
| 27 | # VERSION _is_ defined. |
| 28 | ifdef VERSION |
| 29 | VERSIONIDS=vstr |
| 30 | vstr.but: FORCE |
| 31 | echo \\versionid $(VERSION) > vstr.but |
| 32 | FORCE:; |
| 33 | else |
| 34 | VERSIONIDS=vids |
| 35 | endif |
| 36 | |
| 37 | CHAPTERS := $(SITE) blurb intro gs using config pscp psftp plink pubkey |
| 38 | CHAPTERS += pageant errors faq feedback licence udp pgpkeys |
| 39 | CHAPTERS += index $(VERSIONIDS) |
| 40 | |
| 41 | INPUTS = $(patsubst %,%.but,$(CHAPTERS)) |
| 42 | |
| 43 | # This is temporary. Hack it locally or something. |
| 44 | HALIBUT = halibut |
| 45 | |
| 46 | index.html: $(INPUTS) |
| 47 | $(HALIBUT) --text --html --winhelp $(INPUTS) |
| 48 | |
| 49 | MKMAN = $(HALIBUT) --man=$@ mancfg.but $< |
| 50 | MANPAGES = putty.1 puttygen.1 plink.1 pscp.1 psftp.1 puttytel.1 pterm.1 |
| 51 | man: $(MANPAGES) |
| 52 | |
| 53 | putty.1: man-putt.but mancfg.but; $(MKMAN) |
| 54 | puttygen.1: man-pg.but mancfg.but; $(MKMAN) |
| 55 | plink.1: man-pl.but mancfg.but; $(MKMAN) |
| 56 | pscp.1: man-pscp.but mancfg.but; $(MKMAN) |
| 57 | psftp.1: man-psft.but mancfg.but; $(MKMAN) |
| 58 | puttytel.1: man-ptel.but mancfg.but; $(MKMAN) |
| 59 | pterm.1: man-pter.but mancfg.but; $(MKMAN) |
| 60 | |
| 61 | clean: |
| 62 | rm -f *.html *.txt *.hlp *.cnt *.1 vstr.but |