X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=README;h=ef931dd14405b688b39669a2f6de4d0aab8fceae;hb=510f49e405e71ba5c97875e7a019364e1ef5fac9;hp=7ffb09779949294ee896b3b7a4604cdfda4e829a;hpb=ad889c93d2031f00c653368c049d707bd4ea700c;p=PuTTY.git diff --git a/README b/README index 7ffb0977..ef931dd1 100644 --- a/README +++ b/README @@ -1,55 +1,133 @@ This is the README for the source archive of PuTTY, a free Win32 -Telnet and SSH client. +and Unix Telnet and SSH client. If you want to rebuild PuTTY from source, we provide a variety of -Makefiles and equivalents. +Makefiles and equivalents. (If you have fetched the source from +Git, 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: - - Makefile.vc is for command-line builds on MS Visual C++ systems. - Type `nmake -f Makefile.vc' to build all the PuTTY binaries. + - 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. + + 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. - (We've also had one report 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.) + (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 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. + - 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. - - Makefile.bor is for the Borland C compiler. Type `make -f - Makefile.bor' to build all the PuTTY binaries. + - 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.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.) - - 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. + - Inside the windows/DEVCPP subdirectory are Dev-C++ project + files for doing GUI-based builds of the various PuTTY utilities. - - Makefile.lcc is for lcc-win32. Type `make -f Makefile.lcc'. (You - will probably need to specify COMPAT=-DNO_MULTIMON.) +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/Makefile.gtk is for Unix and GTK. If you don't have GTK, you + - 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 makefile. The makefile expects - you to change into the `unix' subdirectory, then run `make -f - Makefile.gtk'. 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. + 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'. Additions and corrections -to Recipe and the mkfiles.pl are much more useful than additions and -corrections to the alternative Makefiles themselves. +`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. + +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 . The PuTTY home web site is