# build, since at the time of writing this <aclapi.h> is known
# not to be available in Cygwin.
#
+# - COMPAT=/DNO_MULTIMON
+# Disables PuTTY's use of <multimon.h>, which is not available
+# with some development environments. This means that PuTTY's
+# full-screen mode (configurable to work on Alt-Enter) will
+# not behave usefully in a multi-monitor environment.
+#
+# - COMPAT=/DMSVC4
+# - RCFL=/DMSVC4
+# Makes a couple of minor changes so that PuTTY compiles using
+# MSVC 4. You will also need /DNO_SECURITY and /DNO_MULTIMON.
+#
# - RCFL=/DASCIICTLS
# Uses ASCII rather than Unicode to specify the tab control in
# the resource file. Probably most useful when compiling with
# LFLAGS = /debug
# Disable debug and incremental linking and compiling
-CFLAGS = /nologo /W3 /O1 /D_WINDOWS /D_WIN32_WINDOWS=0x401
+CFLAGS = /nologo /W3 /O1 /D_WINDOWS /D_WIN32_WINDOWS=0x401 /DWINVER=0x401
LFLAGS = /incremental:no /fixed
# Use MSVC DLL
##-- objects putty puttytel
GOBJS1 = window.$(OBJ) windlg.$(OBJ) winctrls.$(OBJ) terminal.$(OBJ)
-GOBJS2 = sizetip.$(OBJ) wcwidth.$(OBJ) unicode.$(OBJ)
+GOBJS2 = sizetip.$(OBJ) wcwidth.$(OBJ) unicode.$(OBJ) logging.$(OBJ)
##-- objects putty puttytel plink
LOBJS1 = telnet.$(OBJ) raw.$(OBJ) rlogin.$(OBJ) ldisc.$(OBJ) winnet.$(OBJ)
##-- objects putty plink
##-- objects puttytel
TOBJS = be_nossh.$(OBJ)
##-- objects plink
-PLOBJS = plink.$(OBJ)
+PLOBJS = plink.$(OBJ) logging.$(OBJ)
##-- objects pscp
SOBJS = scp.$(OBJ) winnet.$(OBJ) be_none.$(OBJ) wildcard.$(OBJ)
##-- objects psftp
FOBJS = psftp.$(OBJ) winnet.$(OBJ) be_none.$(OBJ)
##-- objects pscp psftp
-SFOBJS = sftp.$(OBJ) int64.$(OBJ)
+SFOBJS = sftp.$(OBJ) int64.$(OBJ) logging.$(OBJ)
##-- objects putty puttytel pscp psftp plink
MOBJS = misc.$(OBJ) version.$(OBJ) winstore.$(OBJ) settings.$(OBJ)
MOBJ2 = tree234.$(OBJ)
+##-- objects pscp psftp plink
+COBJS = console.$(OBJ)
##-- objects putty pscp psftp plink
OBJS1 = sshcrc.$(OBJ) sshdes.$(OBJ) sshmd5.$(OBJ) sshrsa.$(OBJ) sshrand.$(OBJ)
-OBJS2 = sshsha.$(OBJ) sshblowf.$(OBJ) noise.$(OBJ) sshdh.$(OBJ) sshdss.$(OBJ)
-OBJS3 = sshbn.$(OBJ) sshpubk.$(OBJ) ssh.$(OBJ) pageantc.$(OBJ) sshzlib.$(OBJ)
-OBJS4 = x11fwd.$(OBJ) portfwd.$(OBJ) sshaes.$(OBJ) sshsh512.$(OBJ)
+OBJS2 = sshsha.$(OBJ) sshblowf.$(OBJ) noise.$(OBJ) sshdh.$(OBJ) sshcrcda.$(OBJ)
+OBJS3 = sshpubk.$(OBJ) ssh.$(OBJ) pageantc.$(OBJ) sshzlib.$(OBJ) sshdss.$(OBJ)
+OBJS4 = x11fwd.$(OBJ) portfwd.$(OBJ) sshaes.$(OBJ) sshsh512.$(OBJ) sshbn.$(OBJ)
##-- objects pageant
PAGE1 = pageant.$(OBJ) sshrsa.$(OBJ) sshpubk.$(OBJ) sshdes.$(OBJ) sshbn.$(OBJ)
PAGE2 = sshmd5.$(OBJ) version.$(OBJ) tree234.$(OBJ) misc.$(OBJ) sshaes.$(OBJ)
puttygen.exe: $(GEN1) $(GEN2) $(GEN3) $(GEN4) $(GENRC) puttygen.rsp
link $(LFLAGS) -out:puttygen.exe -map:puttygen.map @puttygen.rsp
-pscp.exe: $(SOBJS) $(SFOBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(SRESRC) pscp.rsp
+pscp.exe: $(SOBJS) $(SFOBJS) $(COBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(SRESRC) pscp.rsp
link $(LFLAGS) -out:pscp.exe -map:pscp.map @pscp.rsp
-psftp.exe: $(FOBJS) $(SFOBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(SRESRC) psftp.rsp
+psftp.exe: $(FOBJS) $(SFOBJS) $(COBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(SRESRC) psftp.rsp
link $(LFLAGS) -out:psftp.exe -map:psftp.map @psftp.rsp
-plink.exe: $(LOBJS1) $(POBJS) $(PLOBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(LRESRC) plink.rsp
+plink.exe: $(LOBJS1) $(POBJS) $(PLOBJS) $(COBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(LRESRC) plink.rsp
link $(LFLAGS) -out:plink.exe -map:plink.map @plink.rsp
ssh.obj:
- cl $(FWHACK) $(VER) $(CFLAGS) /Gi- /c ssh.c
+ cl $(COMPAT) $(FWHACK) $(VER) $(XFLAGS) $(CFLAGS) /Gi- /c ssh.c
putty.rsp: makefile
echo /nologo /subsystem:windows > putty.rsp
echo /nologo /subsystem:console > pscp.rsp
echo $(SOBJS) >> pscp.rsp
echo $(SFOBJS) >> pscp.rsp
+ echo $(COBJS) >> pscp.rsp
echo $(MOBJS) >> pscp.rsp
echo $(MOBJ2) >> pscp.rsp
echo $(OBJS1) >> pscp.rsp
echo /nologo /subsystem:console > psftp.rsp
echo $(FOBJS) >> psftp.rsp
echo $(SFOBJS) >> psftp.rsp
+ echo $(COBJS) >> psftp.rsp
echo $(MOBJS) >> psftp.rsp
echo $(MOBJ2) >> psftp.rsp
echo $(OBJS1) >> psftp.rsp
echo $(LOBJS1) >> plink.rsp
echo $(POBJS) >> plink.rsp
echo $(PLOBJS) >> plink.rsp
+ echo $(COBJS) >> plink.rsp
echo $(MOBJS) >> plink.rsp
echo $(MOBJ2) >> plink.rsp
echo $(OBJS1) >> plink.rsp
ssl.$(OBJ): ssl.c network.h asnerror.h misc.h cert.h crypto.h ssl.h int64.h puttymem.h
telnet.$(OBJ): telnet.c network.h misc.h puttymem.h putty.h
terminal.$(OBJ): terminal.c network.h misc.h puttymem.h putty.h tree234.h
+logging.$(OBJ): logging.c misc.h puttymem.h putty.h
test.$(OBJ): test.c network.h int64.h puttymem.h ssh.h
tree234.$(OBJ): tree234.c tree234.h
unicode.$(OBJ): unicode.c network.h misc.h puttymem.h putty.h