From 4ec27919454102386f18d24df188cac3f663dbdc Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Wed, 13 Sep 2017 19:24:17 +0100 Subject: [PATCH] Remove Makefile.bor. After a conversation this week with a user who tried to use it, it's clear that Borland C can't build the up-to-date PuTTY without having to make too many compromises of functionality (unsupported API details, no 'long long' type), even above the issues that could be worked round with extra porting ifdefs. --- .gitignore | 2 - README | 4 -- Recipe | 1 - doc/udp.but | 6 +-- mkfiles.pl | 117 +--------------------------------------------- windows/rcstuff.h | 2 +- 6 files changed, 5 insertions(+), 127 deletions(-) diff --git a/.gitignore b/.gitignore index 15c253c2..c04f119b 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,6 @@ /*.tds /*.td2 /*.map -/Makefile.bor /Makefile.mgw /Makefile.vc /Makefile.lcc @@ -128,7 +127,6 @@ /windows/*.td2 /windows/*.map /windows/Makefile.clangcl -/windows/Makefile.bor /windows/Makefile.mgw /windows/Makefile.vc /windows/Makefile.lcc diff --git a/README b/README index 50314ca6..de6eb9b0 100644 --- a/README +++ b/README @@ -34,10 +34,6 @@ For building on Windows: 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.mgw is for MinGW / Cygwin installations. Type `make -f Makefile.mgw' while in the `windows' subdirectory to build all the PuTTY binaries. diff --git a/Recipe b/Recipe index f5458122..5715938b 100644 --- a/Recipe +++ b/Recipe @@ -16,7 +16,6 @@ !makefile vc windows/Makefile.vc !makefile vcproj windows/MSVC !makefile cygwin windows/Makefile.mgw -!makefile borland windows/Makefile.bor !makefile lcc windows/Makefile.lcc !makefile gtk unix/Makefile.gtk !makefile unix unix/Makefile.ux diff --git a/doc/udp.but b/doc/udp.but index 9ca8ed3f..b71688b7 100644 --- a/doc/udp.but +++ b/doc/udp.but @@ -138,9 +138,9 @@ construct. Use these wherever possible. \H{udp-multi-compiler} Independence of specific compiler -Windows PuTTY can currently be compiled with any of four Windows -compilers: MS Visual C, Borland's freely downloadable C compiler, -the Cygwin / \cw{mingw32} GNU tools, and \cw{lcc-win32}. +Windows PuTTY can currently be compiled with any of three Windows +compilers: MS Visual C, the Cygwin / \cw{mingw32} GNU tools, and +\cw{clang} (in MS compatibility mode). This is a really useful property of PuTTY, because it means people who want to contribute to the coding don't depend on having a diff --git a/mkfiles.pl b/mkfiles.pl index 02421316..6765f2a8 100755 --- a/mkfiles.pl +++ b/mkfiles.pl @@ -268,7 +268,7 @@ sub mfval($) { # Returns true if the argument is a known makefile type. Otherwise, # prints a warning and returns false; if (grep { $type eq $_ } - ("vc","vcproj","cygwin","borland","lcc","devcppproj","gtk","unix", + ("vc","vcproj","cygwin","lcc","devcppproj","gtk","unix", "am","osx","vstudio10","vstudio12","clangcl")) { return 1; } @@ -659,121 +659,6 @@ if (defined $makefiles{'cygwin'}) { } -##-- Borland makefile -if (defined $makefiles{'borland'}) { - $dirpfx = &dirpfx($makefiles{'borland'}, "\\"); - - %stdlibs = ( # Borland provides many Win32 API libraries intrinsically - "advapi32" => 1, - "comctl32" => 1, - "comdlg32" => 1, - "gdi32" => 1, - "imm32" => 1, - "shell32" => 1, - "user32" => 1, - "winmm" => 1, - "winspool" => 1, - "wsock32" => 1, - ); - open OUT, ">$makefiles{'borland'}"; select OUT; - print - "# Makefile for $project_name under Borland C.\n". - "#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\n". - "# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n"; - # bcc32 command line option is -D not /D - ($_ = $help) =~ s/([=" ])\/D/$1-D/gs; - print $_; - print - "\n". - "# If you rename this file to `Makefile', you should change this line,\n". - "# so that the .rsp files still depend on the correct makefile.\n". - "MAKEFILE = Makefile.bor\n". - "\n". - "# C compilation flags\n". - "CFLAGS = -D_WINDOWS -DWINVER=0x0500\n". - "# Resource compilation flags\n". - "RCFLAGS = -DNO_WINRESRC_H -DWIN32 -D_WIN32 -DWINVER=0x0401\n". - "\n". - "# Get include directory for resource compiler\n". - "!if !\$d(BCB)\n". - "BCB = \$(MAKEDIR)\\..\n". - "!endif\n". - "\n". - &def($makefile_extra{'borland'}->{'vars'}) . - "\n". - ".c.obj:\n". - &splitline("\tbcc32 -w-aus -w-ccc -w-par -w-pia \$(COMPAT)". - " \$(CFLAGS) \$(XFLAGS) ". - (join " ", map {"-I$dirpfx$_"} @srcdirs) . - " /c \$*.c",69)."\n". - ".rc.res:\n". - &splitline("\tbrcc32 \$(RCFL) -i \$(BCB)\\include -r". - " \$(RCFLAGS) \$*.rc",69)."\n". - "\n"; - print &splitline("all:" . join "", map { " $_.exe" } &progrealnames("G:C")); - print "\n\n"; - foreach $p (&prognames("G:C")) { - ($prog, $type) = split ",", $p; - $objstr = &objects($p, "X.obj", "X.res", undef); - print &splitline("$prog.exe: " . $objstr . " $prog.rsp"), "\n"; - my $ap = ($type eq "G") ? "-aa" : "-ap"; - print "\tilink32 $ap -Gn -L\$(BCB)\\lib \@$prog.rsp\n\n"; - } - foreach $p (&prognames("G:C")) { - ($prog, $type) = split ",", $p; - print $prog, ".rsp: \$(MAKEFILE)\n"; - $objstr = &objects($p, "X.obj", undef, undef); - @objlist = split " ", $objstr; - @objlines = (""); - foreach $i (@objlist) { - if (length($objlines[$#objlines] . " $i") > 50) { - push @objlines, ""; - } - $objlines[$#objlines] .= " $i"; - } - $c0w = ($type eq "G") ? "c0w32" : "c0x32"; - print "\techo $c0w + > $prog.rsp\n"; - for ($i=0; $i<=$#objlines; $i++) { - $plus = ($i < $#objlines ? " +" : ""); - print "\techo$objlines[$i]$plus >> $prog.rsp\n"; - } - print "\techo $prog.exe >> $prog.rsp\n"; - $objstr = &objects($p, "X.obj", "X.res", undef); - @libs = split " ", &objects($p, undef, undef, "X"); - @libs = grep { !$stdlibs{$_} } @libs; - unshift @libs, "cw32", "import32"; - $libstr = join ' ', @libs; - print "\techo nul,$libstr, >> $prog.rsp\n"; - print "\techo " . &objects($p, undef, "X.res", undef) . " >> $prog.rsp\n"; - print "\n"; - } - foreach $d (&deps("X.obj", "X.res", $dirpfx, "\\", "borland")) { - if ($forceobj{$d->{obj_orig}}) { - printf("%s: FORCE\n", $d->{obj}); - } else { - print &splitline(sprintf("%s: %s", $d->{obj}, - join " ", @{$d->{deps}})), "\n"; - } - } - print "\n"; - print &def($makefile_extra{'borland'}->{'end'}); - print "\nclean:\n". - "\t-del *.obj\n". - "\t-del *.exe\n". - "\t-del *.res\n". - "\t-del *.pch\n". - "\t-del *.aps\n". - "\t-del *.il*\n". - "\t-del *.pdb\n". - "\t-del *.rsp\n". - "\t-del *.tds\n". - "\t-del *.\$\$\$\$\$\$\n". - "\n". - "FORCE:\n". - "\t-rem dummy command\n"; - select STDOUT; close OUT; -} - if (defined $makefiles{'vc'}) { $dirpfx = &dirpfx($makefiles{'vc'}, "\\"); diff --git a/windows/rcstuff.h b/windows/rcstuff.h index 22b22035..ee2c7696 100644 --- a/windows/rcstuff.h +++ b/windows/rcstuff.h @@ -9,7 +9,7 @@ #include #else -/* Some compilers, like Borland, don't have winresrc.h */ +/* Some compilers don't have winresrc.h */ #ifndef NO_WINRESRC_H #ifndef MSVC4 #include