diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 139 |
1 files changed, 21 insertions, 118 deletions
@@ -1,129 +1,32 @@ -This is the README for the source archive of PuTTY, a free Windows -and Unix Telnet and SSH client. +This is the README for PuTTY, a free Windows 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 -Git, you'll have to generate the Makefiles yourself -- see -below.) +PuTTY is built using CMake <https://cmake.org/>. To compile in the +simplest way (on any of Linux, Windows or Mac), run these commands in +the source directory: -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. + cmake . + cmake --build . -For building on Windows: +Then, to install in the simplest way on Linux or Mac: - - 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. + cmake --build . --target install - As of 2017, we successfully compile PuTTY with both Visual Studio - 7 (2003) and Visual Studio 14 (2015), so our guess is that it will - probably build with versions in between those as well. - - (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.) - - - 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 7 and 10. - - 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.mgw is for MinGW / Cygwin installations. Type - `make -f Makefile.mgw' while in the `windows' subdirectory to - build all the PuTTY binaries. - - 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. - - - 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/10) and Makefile.mgw -(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. - - - 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, 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'. - - - 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 - Git 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.mgw 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 Git 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. +On Unix, 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.) The cmake install step +doesn't attempt to add these privileges, so if you want user login +recording to work, you should manually ch{own,grp} and chmod the +pterm binary yourself after installation. If you don't do this, +pterm will still work, but not update the user login databases. 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 <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>. +subdirectory. If you aren't using one of our source snapshots, +you'll need to do this yourself. Halibut can be found at +<https://www.chiark.greenend.org.uk/~sgtatham/halibut/>. The PuTTY home web site is |