Increase FONT_MAXNO from 0x2f to 0x40, to ensure the fonts[] array
[u/mdw/putty] / README
diff --git a/README b/README
index 44f650a..72fc68c 100644 (file)
--- a/README
+++ b/README
-This is the README for PuTTY, a free Win32 Telnet and SSH client.
+This is the README for the source archive of PuTTY, a free Win32
+and Unix Telnet and SSH client.
 
-The provided Makefile is for MS Visual C++ systems. Type `nmake' to
-build both putty.exe (the main program) and pscp.exe (an SCP
-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.)
 
-Setting up a project file in the Visual C++ IDE sometimes fails to
-work. In particular, Visual Studio 6 falls over on the odd macro
-usage in ssh.c. This is a bug in Visual Studio, since the VC++6
-command line compiler works fine. If in doubt, just use `nmake'.
+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 might still be possible to build
+   with vanilla VC6, but you'll certainly 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 / MinGW 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 (with VC7) and Makefile.cyg
+(with mingw32), 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'. Or you
+   can do the same in the top-level directory (we provide a little
+   wrapper that invokes configure one level down), which is more like
+   a normal Unix source archive but doesn't do so well at keeping the
+   per-platform stuff in each platform's subdirectory; it's up to you.
+
+   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 and unix/Makefile.ux are for non-autoconfigured
+   builds. These makefiles expect you to change into the `unix'
+   subdirectory, then run `make -f Makefile.gtk' or `make -f
+   Makefile.ux' respectively. Makefile.gtk builds all the programs but
+   relies on Gtk, whereas Makefile.ux builds only the command-line
+   utilities and has no Gtk dependence.
+
+ - For the graphical utilities, Gtk+-1.2 and Gtk+-2.0 should both be
+   supported. If you have both installed, you can manually specify
+   which one you want by giving the option '--with-gtk=1' or
+   '--with-gtk=2' to the configure script. (2 is the default, of
+   course.) In the absence of either, the configure script will
+   automatically construct a Makefile which builds only the
+   command-line utilities; you can manually create this condition by
+   giving configure the option '--without-gtk'.
+
+ - pterm would like to be setuid or setgid, as appropriate, to permit
+   it to write records of user logins to /var/run/utmp and
+   /var/log/wtmp. (Of course it will not use this privilege for
+   anything else, and in particular it will drop all privileges before
+   starting up complex subsystems like GTK.) By default the makefile
+   will not attempt to add privileges to the pterm executable at 'make
+   install' time, but you can ask it to do so by running configure
+   with the option '--enable-setuid=USER' or '--enable-setgid=GROUP'.
+
+ - The Unix Makefiles have an `install' target. Note that by default
+   it tries to install `man' pages; if you have fetched the source via
+   Subversion then you will need to have built these using Halibut
+   first - see below.
+
+ - It's also possible to build the Windows version of PuTTY to run
+   on Unix by using Winelib.  To do this, change to the `windows'
+   directory and run `make -f Makefile.cyg CC=winegcc RC=wrc'.
+
+All of the Makefiles are generated automatically from the file
+`Recipe' by the Perl script `mkfiles.pl' (except for the Unix one,
+which is generated by the `configure' script; mkfiles.pl only
+generates the input to automake). Additions and corrections to Recipe,
+mkfiles.pl and/or configure.ac are much more useful than additions and
+corrections to the actual Makefiles, Makefile.am or Makefile.in.
+
+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. The input file to Automake is generated by mkfiles.pl along
+with all the rest of the makefiles, so you will need to run mkfiles.pl
+and then mkauto.sh.
+
+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.html
+    http://www.chiark.greenend.org.uk/~sgtatham/putty/
 
-Bug reports and feature requests should be sent to
-<putty-bugs@lists.tartarus.org>. PLEASE read the section on the web
-site about how to report bugs effectively. Do NOT send one-line
-reports saying `it doesn't work'!
+If you want to send bug reports or feature requests, please read the
+Feedback section of the web site before doing so. Sending one-line
+reports saying `it doesn't work' will waste your time as much as
+ours.
 
 See the file LICENCE for the licence conditions.