This is the README for the source archive of PuTTY, a free Win32
-Telnet and SSH client.
-
-If you want to rebuild PuTTY from source, we provide three
-Makefiles:
-
- - Makefile.vc is for MS Visual C++ systems. Type `nmake -f
- Makefile.vc' to build all the PuTTY binaries.
-
- - Makefile.bor is for the Borland C compiler. Type `make -f
- Makefile.bor' to build all the PuTTY binaries.
-
- - Makefile.cyg is for Cygwin / mingw32 installations. Type `make -f
- Makefile.cyg' to build all the PuTTY binaries. Note that by
- default the Pageant WinNT security features and the multiple
- monitor support are excluded from the Cygwin build, since at the
- time of writing this Cygwin doesn't include the necessary
- headers.
-
-If you have MS Visual Studio version 6 and you want to build a
-DevStudio project for GUI editing and debugging, you should be aware
-that the default GUI configuration of the compiler falls over on the
-nasty macros in ssh.c. This is a bug in Visual Studio. The culprit
-is the /ZI compiler option (debug info generation: Edit and
-Continue). To avoid this problem while compiling PuTTY under VS6,
-you should:
- - right-click ssh.c in the FileView
- - click Settings
- - select the C/C++ tab and the General category
- - under `Debug info:', select anything _other_ than `Program
- Database for Edit and Continue'.
-Alternatively disable the /ZI option, replacing it with a saner
-value, such as /Zi.
+and Unix Telnet and SSH client.
+
+If you want to rebuild PuTTY from source, we provide a variety of
+Makefiles and equivalents. (If you have fetched the source from
+Subversion, you'll have to generate the Makefiles yourself -- see
+below.)
+
+There are various compile-time directives that you can use to
+disable or modify certain features; it may be necessary to do this
+in some environments. They are documented in `Recipe', and in
+comments in many of the generated Makefiles.
+
+For building on Windows:
+
+ - windows/Makefile.vc is for command-line builds on MS Visual C++
+ systems. Change into the `windows' subdirectory and type `nmake
+ -f Makefile.vc' to build all the PuTTY binaries.
+
+ Last time we checked, PuTTY built with vanilla VC7, or VC6 with
+ an up-to-date Platform SDK. (It is possible to build with
+ vanilla VC6, but you'll have to remove some functionality with
+ directives such as NO_IPV6.)
+
+ (We've also had reports of success building with the
+ OpenWatcom compiler -- www.openwatcom.org -- using Makefile.vc
+ with `wmake -ms -f makefile.vc' and NO_MULTIMON, although we
+ haven't tried this ourselves. Version 1.3 is reported to work.)
+
+ - Inside the windows/MSVC subdirectory are MS Visual Studio project
+ files for doing GUI-based builds of the various PuTTY utilities.
+ These have been tested on Visual Studio 6.
+
+ You should be able to build each PuTTY utility by loading the
+ corresponding .dsp file in Visual Studio. For example,
+ MSVC/putty/putty.dsp builds PuTTY itself, MSVC/plink/plink.dsp
+ builds Plink, and so on.
+
+ - windows/Makefile.bor is for the Borland C compiler. Type `make -f
+ Makefile.bor' while in the `windows' subdirectory to build all
+ the PuTTY binaries.
+
+ - windows/Makefile.cyg is for Cygwin / mingw32 installations. Type
+ `make -f Makefile.cyg' while in the `windows' subdirectory to
+ build all the PuTTY binaries.
+
+ You'll probably need quite a recent version of the w32api package.
+ Note that by default the multiple monitor and HTML Help support are
+ excluded from the Cygwin build, since at the time of writing Cygwin
+ doesn't include the necessary headers.
+
+ - windows/Makefile.lcc is for lcc-win32. Type `make -f
+ Makefile.lcc' while in the `windows' subdirectory. (You will
+ probably need to specify COMPAT=-DNO_MULTIMON.)
+
+ - Inside the windows/DEVCPP subdirectory are Dev-C++ project
+ files for doing GUI-based builds of the various PuTTY utilities.
+
+The PuTTY team actively use Makefile.vc and Makefile.cyg, so we'll
+probably notice problems with those toolchains fairly quickly. Please
+report any problems with the other toolchains mentioned above.
+
+For building on Unix:
+
+ - unix/configure is for Unix and GTK. If you don't have GTK, you
+ should still be able to build the command-line utilities (PSCP,
+ PSFTP, Plink, PuTTYgen) using this script. To use it, change
+ into the `unix' subdirectory, run `./configure' and then `make'.
+
+ Note that Unix PuTTY has mostly only been tested on Linux so far;
+ portability problems such as BSD-style ptys or different header file
+ requirements are expected.
+
+ - unix/Makefile.gtk is for non-autoconfigured builds. This makefile
+ expects you to change into the `unix' subdirectory, then run `make
+ -f Makefile.gtk'.
+
+ - For the graphical utilities, Gtk+-1.2 and Gtk+-2.0 should both be
+ supported.
+
+ - Both Unix Makefiles have an `install' target. Note that by default
+ it tries to install `man' pages, which you may need to have built
+ using Halibut first -- see below.
All of the Makefiles are generated automatically from the file
`Recipe' by the Perl script `mkfiles.pl'. Additions and corrections
to Recipe and the mkfiles.pl are much more useful than additions and
corrections to the alternative Makefiles themselves.
+The Unix `configure' script and its various requirements are generated
+by the shell script `mkauto.sh', which requires GNU Autoconf, GNU
+Automake, and Gtk; if you've got the source from Subversion rather
+than using one of our source snapshots, you'll need to run this
+yourself.
+
+Documentation (in various formats including Windows Help and Unix
+`man' pages) is built from the Halibut (`.but') files in the `doc'
+subdirectory using `doc/Makefile'. If you aren't using one of our
+source snapshots, you'll need to do this yourself. Halibut can be
+found at <http://www.chiark.greenend.org.uk/~sgtatham/halibut/>.
+
The PuTTY home web site is
http://www.chiark.greenend.org.uk/~sgtatham/putty/