all: man index.html
# Decide on the versionid policy.
#
# If the user has passed in $(VERSION) on the command line (`make
# VERSION="Release 0.56"'), we use that as an explicit version string.
# Otherwise, we use `svnversion' to examine the checked-out
# documentation source, and if that returns a single revision number
# then we invent a version string reflecting just that number. Failing
# _that_, we resort to versionids.but which gives 'version
# unavailable'.
#
# So here, we define VERSION using svnversion if it isn't already
# defined ...
ifndef VERSION
SVNVERSION=$(shell test -d .svn && svnversion .)
BADCHARS=$(findstring :,$(SVNVERSION))$(findstring S,$(SVNVERSION))
ifeq ($(BADCHARS),)
ifneq ($(SVNVERSION),)
ifneq ($(SVNVERSION),exported)
VERSION=Built from revision $(patsubst M,,$(SVNVERSION))
endif
endif
endif
endif
# ... and now, we condition our build behaviour on whether or not
# VERSION _is_ defined.
ifdef VERSION
VERSIONIDS=vstr
vstr.but: FORCE
printf '\\versionid $(VERSION)\n' > vstr.but
FORCE:;
else
VERSIONIDS=vids
endif
CHAPTERS := $(SITE) copy blurb intro gs using config pscp psftp plink
CHAPTERS += pubkey pageant errors faq feedback pubkeyfmt licence udp
CHAPTERS += pgpkeys sshnames
CHAPTERS += index $(VERSIONIDS)
INPUTS = $(patsubst %,%.but,$(CHAPTERS))
# This is temporary. Hack it locally or something.
HALIBUT = halibut
index.html: $(INPUTS)
$(HALIBUT) --text --html --chm $(INPUTS)
# During formal builds it's useful to be able to build this one alone.
putty.chm: $(INPUTS)
$(HALIBUT) --chm $(INPUTS)
# We don't ship this any more.
putty.hlp: $(INPUTS)
$(HALIBUT) --winhelp $(INPUTS)
putty.info: $(INPUTS)
$(HALIBUT) --info $(INPUTS)
MKMAN = $(HALIBUT) --man=$@ mancfg.but $<
MANPAGES = putty.1 puttygen.1 plink.1 pscp.1 psftp.1 puttytel.1 pterm.1 \
pageant.1 psocks.1 psusan.1
man: $(MANPAGES)
putty.1: man-putty.but mancfg.but; $(MKMAN)
puttygen.1: man-puttygen.but mancfg.but; $(MKMAN)
plink.1: man-plink.but mancfg.but; $(MKMAN)
pscp.1: man-pscp.but mancfg.but; $(MKMAN)
psftp.1: man-psftp.but mancfg.but; $(MKMAN)
puttytel.1: man-puttytel.but mancfg.but; $(MKMAN)
pterm.1: man-pterm.but mancfg.but; $(MKMAN)
pageant.1: man-pageant.but mancfg.but; $(MKMAN)
psocks.1: man-psocks.but mancfg.but; $(MKMAN)
psusan.1: man-psusan.but mancfg.but; $(MKMAN)
mostlyclean:
rm -f *.html *.txt *.hlp *.cnt *.1 *.info vstr.but *.hh[pck]
clean: mostlyclean
rm -f *.chm