PuTTY builds should save the map files.
[u/mdw/putty] / Buildscr
1 # -*- sh -*-
2 # Build script to construct a full distribution directory of PuTTY.
3
4 # Set up the arguments for the main make command.
5 set Makeargs VER="-DSVN_REV=$(revision)"
6 ifneq "$(RELEASE)" "" set Makeargs $(Makeargs) VER="-DRELEASE=$(RELEASE)"
7 ifneq "$(date)" "" set Makeargs $(Makeargs) VER="-DSNAPSHOT=$(date)"
8 ifneq "$(XFLAGS)" "" set Makeargs $(makeargs) XFLAGS="$(XFLAGS)"
9 ifneq "$(MAKEARGS)" "" set Makeargs $(makeargs) $(MAKEARGS)
10
11 # Set up the version string for the docs build.
12 set Docmakeargs VERSION="PuTTY revision $(revision)"
13 ifneq "$(RELEASE)" "" set Docmakeargs VERSION="PuTTY release $(RELEASE)"
14 ifneq "$(date)" "" set Docmakeaargs VERSION="PuTTY development snapshot $(date)"
15
16 # Set up the various version strings for the installer.
17 set Iversion r$(revision)
18 set Iname PuTTY revision $(revision)
19 set Ivertext Revision $(revision)
20 set Irev $(revision)
21 ifneq "$(RELEASE)" "" set Iversion $(RELEASE)
22 ifneq "$(RELEASE)" "" set Iname PuTTY version $(RELEASE)
23 ifneq "$(RELEASE)" "" set Ivertext Release $(RELEASE)
24 ifneq "$(RELEASE)" "" set Irev
25 ifneq "$(date)" "" set Iversion $(date):r$(revision)
26 ifneq "$(date)" "" set Iname PuTTY development snapshot $(date):r$(revision)
27 ifneq "$(date)" "" set Ivertext Development snapshot $(date):r$(revision)
28
29 # Set up the version string for the installer.
30 set Iversion r$(revision)
31 ifneq "$(RELEASE)" "" set Iversion $(RELEASE)
32 ifneq "$(date)" "" set Iversion $(date):r$(revision)
33
34 in putty do ./mksrcarc.sh
35 in putty do ./mkunxarc.sh $(RELEASE)
36 in putty do perl mkfiles.pl
37 in putty/doc do make $(Docmakeargs) putty.hlp
38 in putty/doc do make $(Docmakeargs) chm
39
40 # Munge the installer script locally so that it reports the version
41 # we're really building.
42 in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;}s/^(AppVerName=).*$$/$$1$$a/' '$(Iname)' putty.iss
43 in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;}s/^(VersionInfoTextVersion=).*$$/$$1$$a/' '$(Ivertext)' putty.iss
44 in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;}s/^(AppVersion=).*$$/$$1$$a/' '$(Iversion)' putty.iss
45 in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;$$a=~s/M//;}s/^(VersionInfoVersion=\d+\.\d+\.)\d+(\.\d+)\r?$$/$$1$$a$$2/' '$(Irev)' putty.iss
46
47 delegate windows
48 # FIXME: Cygwin alternative?
49 in putty/windows do cmd /c 'vcvars32 & nmake -f Makefile.vc $(Makeargs)'
50 # Ignore exit code from hhc, in favour of seeing whether the .chm
51 # file was created. (Yuck; but hhc appears to return non-zero
52 # exit codes on whim.)
53 in putty/doc do hhc putty.hhp; test -f putty.chm
54 in putty/windows do iscc putty.iss
55 return putty/windows/*.exe
56 return putty/windows/*.map
57 return putty/doc/putty.chm
58 return putty/windows/Output/setup.exe
59 enddelegate
60 in putty/doc do make mostlyclean
61 in putty/doc do make $(Docmakeargs)
62 in putty/windows do zip -k -j putty.zip `ls *.exe | grep -v puttytel` ../doc/putty.chm ../doc/putty.hlp ../doc/putty.cnt
63 in putty/doc do zip puttydoc.zip *.html
64
65 deliver putty/windows/*.exe x86/$@
66 deliver putty/windows/*.map maps-x86/$@
67 deliver putty/windows/putty.zip x86/$@
68 deliver putty/windows/Output/setup.exe x86/putty-$(Iversion)-installer.exe
69 deliver putty/doc/puttydoc.zip $@
70 deliver putty/doc/putty.chm $@
71 deliver putty/doc/putty.hlp $@
72 deliver putty/doc/putty.cnt $@
73 deliver putty/doc/puttydoc.txt $@
74 deliver putty/doc/*.html htmldoc/$@
75 deliver putty/putty-src.zip $@
76 deliver putty/*.tar.gz $@
77
78 # Building the md5sums file is most easily done in the destination
79 # directory.
80 in-dest . do md5sum `\find * -type f -print` > md5sums