X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/8ce999b9504afef593ba6f91a6ddb2377f5bd70d..3d5040f8f85f049cbb072a827a6184b4b4314b08:/README diff --git a/README b/README index ef369c5a..72fc68c3 100644 --- a/README +++ b/README @@ -18,12 +18,14 @@ For building on Windows: -f Makefile.vc' to build all the PuTTY binaries. Last time we checked, PuTTY built with vanilla VC7, or VC6 with - the Platform SDK. + 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 one report of success building with the + (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.) + 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. @@ -38,11 +40,14 @@ For building on Windows: Makefile.bor' while in the `windows' subdirectory to build all the PuTTY binaries. - - windows/Makefile.cyg is for Cygwin / mingw32 installations. Type + - windows/Makefile.cyg is for Cygwin / MinGW installations. Type `make -f Makefile.cyg' while in the `windows' subdirectory to - build all the PuTTY binaries. Note that by default the multiple - monitor support is excluded from the Cygwin build, since at the - time of writing Cygwin doesn't include the necessary headers. + 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 @@ -51,38 +56,74 @@ For building on Windows: - 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'. + 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 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 is required. Gtk+-2.0 is not - yet 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. + - 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'. 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 Subversion rather than using one of our source snapshots, you'll need to run this -yourself. +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'