2017-05-08 23:33:03 +03:00
|
|
|
This is the README for the source archive of PuTTY, a free Windows
|
2004-09-09 22:00:05 +04:00
|
|
|
and Unix Telnet and SSH client.
|
1999-11-10 12:47:31 +03:00
|
|
|
|
2004-01-17 16:48:40 +03:00
|
|
|
If you want to rebuild PuTTY from source, we provide a variety of
|
2004-11-16 21:01:39 +03:00
|
|
|
Makefiles and equivalents. (If you have fetched the source from
|
2014-11-01 20:17:57 +03:00
|
|
|
Git, you'll have to generate the Makefiles yourself -- see
|
2004-11-16 21:01:39 +03:00
|
|
|
below.)
|
2004-02-07 20:38:54 +03:00
|
|
|
|
2005-12-16 19:43:28 +03:00
|
|
|
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.
|
|
|
|
|
2004-02-07 20:38:54 +03:00
|
|
|
For building on Windows:
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2004-11-17 01:14:56 +03:00
|
|
|
- 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.
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2017-01-24 02:41:39 +03:00
|
|
|
As of 2017, we successfully compile PuTTY with both Visual Studio
|
2016-03-27 22:25:09 +03:00
|
|
|
7 (2003) and Visual Studio 14 (2015), so our guess is that it will
|
|
|
|
probably build with versions in between those as well.
|
2003-07-06 13:34:03 +04:00
|
|
|
|
2017-02-17 02:47:03 +03:00
|
|
|
(The binaries from Visual Studio 14 are only compatible with
|
|
|
|
Windows XP and up. Binaries from Visual Studio 7 ought to work
|
|
|
|
with anything from Windows 95 onward.)
|
|
|
|
|
2004-11-17 01:14:56 +03:00
|
|
|
- Inside the windows/MSVC subdirectory are MS Visual Studio project
|
|
|
|
files for doing GUI-based builds of the various PuTTY utilities.
|
2016-03-27 22:25:09 +03:00
|
|
|
These have been tested on Visual Studio 7 and 10.
|
2004-01-17 16:48:40 +03:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2016-04-10 16:26:54 +03:00
|
|
|
- windows/Makefile.mgw is for MinGW / Cygwin installations. Type
|
|
|
|
`make -f Makefile.mgw' while in the `windows' subdirectory to
|
2007-01-10 03:54:08 +03:00
|
|
|
build all the PuTTY binaries.
|
|
|
|
|
2016-04-10 16:40:39 +03:00
|
|
|
MinGW and friends can lag behind other toolchains in their support
|
|
|
|
for the Windows API. Compile-time levers are provided to exclude
|
|
|
|
some features; the defaults are set appropriately for the
|
|
|
|
'mingw-w64' cross-compiler provided with Ubuntu 14.04. If you are
|
|
|
|
using an older toolchain, you may need to exclude more features;
|
|
|
|
alternatively, you may find that upgrading to a recent version of
|
|
|
|
the 'w32api' package helps.
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2004-11-17 01:14:56 +03:00
|
|
|
- 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.)
|
2004-01-20 23:35:49 +03:00
|
|
|
|
2005-08-23 00:37:13 +04:00
|
|
|
- Inside the windows/DEVCPP subdirectory are Dev-C++ project
|
|
|
|
files for doing GUI-based builds of the various PuTTY utilities.
|
|
|
|
|
2017-02-17 02:47:03 +03:00
|
|
|
The PuTTY team actively use Makefile.vc (with VC7/10) and Makefile.mgw
|
2009-07-29 03:30:38 +04:00
|
|
|
(with mingw32), so we'll probably notice problems with those
|
|
|
|
toolchains fairly quickly. Please report any problems with the other
|
|
|
|
toolchains mentioned above.
|
2007-01-10 03:54:08 +03:00
|
|
|
|
2004-02-07 20:38:54 +03:00
|
|
|
For building on Unix:
|
|
|
|
|
2005-04-25 19:55:06 +04:00
|
|
|
- unix/configure is for Unix and GTK. If you don't have GTK, you
|
2004-02-07 20:38:54 +03:00
|
|
|
should still be able to build the command-line utilities (PSCP,
|
2011-07-23 15:40:26 +04:00
|
|
|
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.
|
2005-05-23 16:41:21 +04:00
|
|
|
|
2009-07-29 03:30:38 +04:00
|
|
|
- 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.
|
2004-02-07 20:38:54 +03:00
|
|
|
|
2016-03-19 23:05:03 +03:00
|
|
|
- For the graphical utilities, any of Gtk+-1.2, Gtk+-2.0, and Gtk+-3.0
|
|
|
|
should be supported. If you have more than one installed, you can
|
|
|
|
manually specify which one you want by giving the option
|
|
|
|
'--with-gtk=N' to the configure script where N is 1, 2, or 3.
|
|
|
|
(The default is the newest available, of course.) In the absence
|
|
|
|
of any Gtk version, 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'.
|
Switch to using automake for the Unix autoconfigured build.
mkfiles.pl no longer generates a Makefile.in, but instead generates a
Makefile.am on which mkauto.sh runs automake. This means that the
autoconfigured makefile now does build-time dependency tracking (a
standard feature of automake-generated makefiles), and is generally
more like what Unix people will expect.
Some of the old-style make command-line settings (VER=-DRELEASE=foo,
XFLAGS=-DDEBUG) will still work; the COMPAT settings are better done
by autoconfiguration, and my habitual 'XFLAGS="-g -O0"' for an easily
debuggable build will actually not work any more because CFLAGS is
specified _after_ XFLAGS, so I should instead write 'make CFLAGS=-O0'
(-g is the default in automake, removed at 'make install' time).
The new makefile will automatically degrade into one that builds the
command-line tools only, in the case where GTK could not be found. In
principle, therefore, it should be an adequate replacement for _both_
the static Unix makefiles, Makefile.gtk and Makefile.ux. I haven't
actually retired those in this commit, but I'm pretty tempted.
[originally from svn r9239]
2011-07-23 15:33:29 +04:00
|
|
|
|
|
|
|
- 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
|
2014-11-01 20:17:57 +03:00
|
|
|
Git then you will need to have built these using Halibut
|
Switch to using automake for the Unix autoconfigured build.
mkfiles.pl no longer generates a Makefile.in, but instead generates a
Makefile.am on which mkauto.sh runs automake. This means that the
autoconfigured makefile now does build-time dependency tracking (a
standard feature of automake-generated makefiles), and is generally
more like what Unix people will expect.
Some of the old-style make command-line settings (VER=-DRELEASE=foo,
XFLAGS=-DDEBUG) will still work; the COMPAT settings are better done
by autoconfiguration, and my habitual 'XFLAGS="-g -O0"' for an easily
debuggable build will actually not work any more because CFLAGS is
specified _after_ XFLAGS, so I should instead write 'make CFLAGS=-O0'
(-g is the default in automake, removed at 'make install' time).
The new makefile will automatically degrade into one that builds the
command-line tools only, in the case where GTK could not be found. In
principle, therefore, it should be an adequate replacement for _both_
the static Unix makefiles, Makefile.gtk and Makefile.ux. I haven't
actually retired those in this commit, but I'm pretty tempted.
[originally from svn r9239]
2011-07-23 15:33:29 +04:00
|
|
|
first - see below.
|
2004-07-29 14:09:25 +04:00
|
|
|
|
2012-09-19 03:07:42 +04:00
|
|
|
- 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'
|
2016-04-10 16:26:54 +03:00
|
|
|
directory and run `make -f Makefile.mgw CC=winegcc RC=wrc'.
|
2012-09-19 03:07:42 +04:00
|
|
|
|
2002-03-16 18:49:28 +03:00
|
|
|
All of the Makefiles are generated automatically from the file
|
Switch to using automake for the Unix autoconfigured build.
mkfiles.pl no longer generates a Makefile.in, but instead generates a
Makefile.am on which mkauto.sh runs automake. This means that the
autoconfigured makefile now does build-time dependency tracking (a
standard feature of automake-generated makefiles), and is generally
more like what Unix people will expect.
Some of the old-style make command-line settings (VER=-DRELEASE=foo,
XFLAGS=-DDEBUG) will still work; the COMPAT settings are better done
by autoconfiguration, and my habitual 'XFLAGS="-g -O0"' for an easily
debuggable build will actually not work any more because CFLAGS is
specified _after_ XFLAGS, so I should instead write 'make CFLAGS=-O0'
(-g is the default in automake, removed at 'make install' time).
The new makefile will automatically degrade into one that builds the
command-line tools only, in the case where GTK could not be found. In
principle, therefore, it should be an adequate replacement for _both_
the static Unix makefiles, Makefile.gtk and Makefile.ux. I haven't
actually retired those in this commit, but I'm pretty tempted.
[originally from svn r9239]
2011-07-23 15:33:29 +04:00
|
|
|
`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.
|
2005-05-23 16:41:21 +04:00
|
|
|
|
|
|
|
The Unix `configure' script and its various requirements are generated
|
|
|
|
by the shell script `mkauto.sh', which requires GNU Autoconf, GNU
|
2014-11-01 20:17:57 +03:00
|
|
|
Automake, and Gtk; if you've got the source from Git rather
|
2005-05-23 16:41:21 +04:00
|
|
|
than using one of our source snapshots, you'll need to run this
|
Switch to using automake for the Unix autoconfigured build.
mkfiles.pl no longer generates a Makefile.in, but instead generates a
Makefile.am on which mkauto.sh runs automake. This means that the
autoconfigured makefile now does build-time dependency tracking (a
standard feature of automake-generated makefiles), and is generally
more like what Unix people will expect.
Some of the old-style make command-line settings (VER=-DRELEASE=foo,
XFLAGS=-DDEBUG) will still work; the COMPAT settings are better done
by autoconfiguration, and my habitual 'XFLAGS="-g -O0"' for an easily
debuggable build will actually not work any more because CFLAGS is
specified _after_ XFLAGS, so I should instead write 'make CFLAGS=-O0'
(-g is the default in automake, removed at 'make install' time).
The new makefile will automatically degrade into one that builds the
command-line tools only, in the case where GTK could not be found. In
principle, therefore, it should be an adequate replacement for _both_
the static Unix makefiles, Makefile.gtk and Makefile.ux. I haven't
actually retired those in this commit, but I'm pretty tempted.
[originally from svn r9239]
2011-07-23 15:33:29 +04:00
|
|
|
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.
|
1999-12-13 20:21:42 +03:00
|
|
|
|
2004-07-29 14:09:25 +04:00
|
|
|
Documentation (in various formats including Windows Help and Unix
|
2005-05-23 16:41:21 +04:00
|
|
|
`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
|
2017-05-07 18:29:01 +03:00
|
|
|
found at <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>.
|
2004-07-29 14:09:25 +04:00
|
|
|
|
1999-11-10 12:47:31 +03:00
|
|
|
The PuTTY home web site is
|
|
|
|
|
2017-05-07 18:29:01 +03:00
|
|
|
https://www.chiark.greenend.org.uk/~sgtatham/putty/
|
1999-11-10 12:47:31 +03:00
|
|
|
|
2002-09-20 22:57:05 +04:00
|
|
|
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.
|
1999-11-10 12:47:31 +03:00
|
|
|
|
|
|
|
See the file LICENCE for the licence conditions.
|