X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/4ba9b64bfae2a77b1c8376d027f26e172ec1412d..4a8fc3c43e71f1500b1f1203431ce944a832110e:/Makefile diff --git a/Makefile b/Makefile index 3c97cc19..d842399e 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,17 @@ # Cygnus/mingw32, whose resource compiler may have less of a # problem with it. # +# - XFLAGS=/DMALLOC_LOG +# Causes PuTTY to emit a file called putty_mem.log, logging every +# memory allocation and free, so you can track memory leaks. +# +# - XFLAGS=/DMINEFIELD +# Causes PuTTY to use a custom memory allocator, similar in +# concept to Electric Fence, in place of regular malloc(). Wastes +# huge amounts of RAM, but should cause heap-corruption bugs to +# show up as GPFs at the point of failure rather than appearing +# later on as second-level damage. +# ##-- CFLAGS = /nologo /W3 /YX /O2 /Yd /D_WINDOWS /DDEBUG /ML /Fd @@ -45,7 +56,7 @@ CFLAGS = /nologo /W3 /YX /O2 /Yd /D_WINDOWS /DDEBUG /ML /Fd LFLAGS = /incremental:no .c.obj: - cl $(COMPAT) $(FWHACK) $(CFLAGS) /c $*.c + cl $(COMPAT) $(FWHACK) $(XFLAGS) $(CFLAGS) /c $*.c OBJ=obj RES=res @@ -54,7 +65,7 @@ RES=res GOBJS1 = window.$(OBJ) windlg.$(OBJ) winctrls.$(OBJ) terminal.$(OBJ) GOBJS2 = xlat.$(OBJ) sizetip.$(OBJ) ##-- objects putty puttytel plink -LOBJS1 = telnet.$(OBJ) raw.$(OBJ) ldisc.$(OBJ) winnet.$(OBJ) +LOBJS1 = telnet.$(OBJ) raw.$(OBJ) rlogin.$(OBJ) ldisc.$(OBJ) winnet.$(OBJ) ##-- objects putty plink POBJS = be_all.$(OBJ) ##-- objects puttytel @@ -63,16 +74,19 @@ TOBJS = be_nossh.$(OBJ) PLOBJS = plink.$(OBJ) ##-- objects pscp SOBJS = scp.$(OBJ) winnet.$(OBJ) be_none.$(OBJ) -##-- objects putty puttytel pscp plink +##-- objects psftp +SOBJS = psftp.$(OBJ) sftp.$(OBJ) int64.$(OBJ) winnet.$(OBJ) be_none.$(OBJ) +##-- objects putty puttytel pscp psftp plink MOBJS = misc.$(OBJ) version.$(OBJ) winstore.$(OBJ) settings.$(OBJ) MOBJ2 = tree234.$(OBJ) -##-- objects putty pscp plink +##-- 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) ##-- objects pageant PAGE1 = pageant.$(OBJ) sshrsa.$(OBJ) sshpubk.$(OBJ) sshdes.$(OBJ) sshbn.$(OBJ) -PAGE2 = sshmd5.$(OBJ) version.$(OBJ) tree234.$(OBJ) +PAGE2 = sshmd5.$(OBJ) version.$(OBJ) tree234.$(OBJ) misc.$(OBJ) ##-- objects puttygen GEN1 = puttygen.$(OBJ) sshrsag.$(OBJ) sshprime.$(OBJ) sshdes.$(OBJ) GEN2 = sshbn.$(OBJ) sshmd5.$(OBJ) version.$(OBJ) sshrand.$(OBJ) noise.$(OBJ) @@ -84,7 +98,7 @@ PRESRC = win_res.$(RES) PAGERC = pageant.$(RES) ##-- resources puttygen GENRC = puttygen.$(RES) -##-- resources pscp +##-- resources pscp psftp SRESRC = scp.$(RES) ##-- resources plink LRESRC = plink.$(RES) @@ -97,6 +111,7 @@ LRESRC = plink.$(RES) # puttygen ##-- console-apps # pscp +# psftp # plink ws2_32 ##-- @@ -108,23 +123,23 @@ SOCK2 = ws2_32.lib all: putty.exe puttytel.exe pscp.exe plink.exe pageant.exe puttygen.exe -putty.exe: $(GOBJS1) $(GOBJS2) $(LOBJS1) $(POBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(PRESRC) putty.rsp - link $(LFLAGS) -out:putty.exe @putty.rsp +putty.exe: $(GOBJS1) $(GOBJS2) $(LOBJS1) $(POBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(PRESRC) putty.rsp + link $(LFLAGS) -out:putty.exe -map:putty.map @putty.rsp puttytel.exe: $(GOBJS1) $(GOBJS2) $(LOBJS1) $(TOBJS) $(MOBJS) $(MOBJ2) $(PRESRC) puttytel.rsp - link $(LFLAGS) -out:puttytel.exe @puttytel.rsp + link $(LFLAGS) -out:puttytel.exe -map:puttytel.map @puttytel.rsp pageant.exe: $(PAGE1) $(PAGE2) $(PAGERC) pageant.rsp - link $(LFLAGS) -out:pageant.exe @pageant.rsp + link $(LFLAGS) -out:pageant.exe -map:pageant.map @pageant.rsp puttygen.exe: $(GEN1) $(GEN2) $(GEN3) $(GEN4) $(GENRC) puttygen.rsp - link $(LFLAGS) -out:puttygen.exe @puttygen.rsp + link $(LFLAGS) -out:puttygen.exe -map:puttygen.map @puttygen.rsp -pscp.exe: $(SOBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(SRESRC) pscp.rsp - link $(LFLAGS) -out:pscp.exe @pscp.rsp +pscp.exe: $(SOBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(SRESRC) pscp.rsp + link $(LFLAGS) -out:pscp.exe -map:pscp.map @pscp.rsp -plink.exe: $(LOBJS1) $(POBJS) $(PLOBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(LRESRC) plink.rsp - link $(LFLAGS) -out:plink.exe @plink.rsp +plink.exe: $(LOBJS1) $(POBJS) $(PLOBJS) $(MOBJS) $(MOBJ2) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(LRESRC) plink.rsp + link $(LFLAGS) -out:plink.exe -map:plink.map @plink.rsp putty.rsp: makefile echo /nologo /subsystem:windows > putty.rsp @@ -137,6 +152,7 @@ putty.rsp: makefile echo $(OBJS1) >> putty.rsp echo $(OBJS2) >> putty.rsp echo $(OBJS3) >> putty.rsp + echo $(OBJS4) >> putty.rsp echo $(PRESRC) >> putty.rsp echo $(LIBS1) >> putty.rsp echo $(LIBS2) >> putty.rsp @@ -183,6 +199,7 @@ pscp.rsp: makefile echo $(OBJS1) >> pscp.rsp echo $(OBJS2) >> pscp.rsp echo $(OBJS3) >> pscp.rsp + echo $(OBJS4) >> pscp.rsp echo $(SRESRC) >> pscp.rsp echo $(LIBS1) >> pscp.rsp echo $(LIBS2) >> pscp.rsp @@ -198,46 +215,53 @@ plink.rsp: makefile echo $(OBJS1) >> plink.rsp echo $(OBJS2) >> plink.rsp echo $(OBJS3) >> plink.rsp + echo $(OBJS4) >> plink.rsp echo $(LRESRC) >> plink.rsp echo $(LIBS1) >> plink.rsp echo $(LIBS2) >> plink.rsp echo $(SOCK2) >> plink.rsp ##-- dependencies -window.$(OBJ): window.c putty.h network.h win_res.h storage.h winstuff.h -windlg.$(OBJ): windlg.c putty.h network.h ssh.h win_res.h winstuff.h +window.$(OBJ): window.c putty.h puttymem.h network.h win_res.h storage.h winstuff.h +windlg.$(OBJ): windlg.c putty.h puttymem.h network.h ssh.h win_res.h winstuff.h winctrls.$(OBJ): winctrls.c winstuff.h winstuff.h -settings.$(OBJ): settings.c putty.h network.h storage.h -winstore.$(OBJ): winstore.c putty.h network.h storage.h -terminal.$(OBJ): terminal.c putty.h network.h -sizetip.$(OBJ): sizetip.c putty.h network.h winstuff.h -telnet.$(OBJ): telnet.c putty.h network.h -raw.$(OBJ): raw.c putty.h network.h -xlat.$(OBJ): xlat.c putty.h network.h -ldisc.$(OBJ): ldisc.c putty.h network.h -misc.$(OBJ): misc.c putty.h network.h -noise.$(OBJ): noise.c putty.h network.h ssh.h storage.h -ssh.$(OBJ): ssh.c ssh.h putty.h network.h tree234.h -sshcrc.$(OBJ): sshcrc.c ssh.h -sshdes.$(OBJ): sshdes.c ssh.h -sshmd5.$(OBJ): sshmd5.c ssh.h -sshrsa.$(OBJ): sshrsa.c ssh.h -sshsha.$(OBJ): sshsha.c ssh.h -sshrand.$(OBJ): sshrand.c ssh.h -sshblowf.$(OBJ): sshblowf.c ssh.h -sshdh.$(OBJ): sshdh.c ssh.h -sshdss.$(OBJ): sshdss.c ssh.h -sshbn.$(OBJ): sshbn.c ssh.h -sshpubk.$(OBJ): sshpubk.c ssh.h -sshzlib.$(OBJ): sshzlib.c ssh.h -scp.$(OBJ): scp.c putty.h network.h winstuff.h +settings.$(OBJ): settings.c putty.h puttymem.h network.h storage.h +winstore.$(OBJ): winstore.c putty.h puttymem.h network.h storage.h +terminal.$(OBJ): terminal.c putty.h puttymem.h network.h +sizetip.$(OBJ): sizetip.c putty.h puttymem.h network.h winstuff.h +telnet.$(OBJ): telnet.c putty.h puttymem.h network.h +raw.$(OBJ): raw.c putty.h puttymem.h network.h +rlogin.$(OBJ): rlogin.c putty.h puttymem.h network.h +xlat.$(OBJ): xlat.c putty.h puttymem.h network.h +ldisc.$(OBJ): ldisc.c putty.h puttymem.h network.h +misc.$(OBJ): misc.c putty.h puttymem.h network.h +noise.$(OBJ): noise.c putty.h puttymem.h network.h ssh.h storage.h +ssh.$(OBJ): ssh.c ssh.h putty.h puttymem.h network.h tree234.h +sshcrc.$(OBJ): sshcrc.c ssh.h puttymem.h +sshdes.$(OBJ): sshdes.c ssh.h puttymem.h +sshmd5.$(OBJ): sshmd5.c ssh.h puttymem.h +sshrsa.$(OBJ): sshrsa.c ssh.h puttymem.h +sshsha.$(OBJ): sshsha.c ssh.h puttymem.h +sshrand.$(OBJ): sshrand.c ssh.h puttymem.h +sshblowf.$(OBJ): sshblowf.c ssh.h puttymem.h +sshdh.$(OBJ): sshdh.c ssh.h puttymem.h +sshdss.$(OBJ): sshdss.c ssh.h puttymem.h +sshbn.$(OBJ): sshbn.c ssh.h puttymem.h +sshpubk.$(OBJ): sshpubk.c ssh.h puttymem.h +sshzlib.$(OBJ): sshzlib.c ssh.h puttymem.h +scp.$(OBJ): scp.c putty.h puttymem.h network.h winstuff.h version.$(OBJ): version.c be_all.$(OBJ): be_all.c be_nossh.$(OBJ): be_nossh.c be_none.$(OBJ): be_none.c -plink.$(OBJ): plink.c putty.h network.h winstuff.h -pageant.$(OBJ): pageant.c ssh.h tree234.h -tree234.$(OBJ): tree234.c tree234.h +plink.$(OBJ): plink.c putty.h puttymem.h network.h winstuff.h +pageant.$(OBJ): pageant.c ssh.h puttymem.h tree234.h +pageantc.$(OBJ): pageantc.c puttymem.h +tree234.$(OBJ): tree234.c tree234.h puttymem.h +puttygen.$(OBJ): puttygen.c putty.h ssh.h winstuff.h +psftp.$(OBJ): psftp.c putty.h ssh.h storage.h sftp.h int64.h +sftp.$(OBJ): psftp.c sftp.h int64.h +int64.$(OBJ): int64.c int64.h ##-- # Hack to force version.obj to be rebuilt always @@ -270,9 +294,11 @@ puttygen.$(RES): puttygen.rc puttygen.ico puttygen.$(RES): rc $(FWHACK) $(RCFL) -r -DWIN32 -D_WIN32 -DWINVER=0x0400 puttygen.rc -clean: - del *.obj +clean: tidy del *.exe + +tidy: + del *.obj del *.res del *.pch del *.aps @@ -284,3 +310,4 @@ clean: del *.ncb del *.opt del *.plg + del *.map