X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/8df7a775f6f8b0f81f84eafe28cd0bb8d4c6d1f4..c91409da0ac0d3fb4a225ab85e14370514e4094e:/Makefile diff --git a/Makefile b/Makefile index 27f72bb8..2dedf302 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 @@ -69,10 +80,10 @@ MOBJ2 = tree234.$(OBJ) ##-- objects putty pscp 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) +OBJS3 = sshbn.$(OBJ) sshpubk.$(OBJ) ssh.$(OBJ) pageantc.$(OBJ) sshzlib.$(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) @@ -109,22 +120,22 @@ 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 + 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 + 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 + link $(LFLAGS) -out:plink.exe -map:plink.map @plink.rsp putty.rsp: makefile echo /nologo /subsystem:windows > putty.rsp @@ -204,39 +215,42 @@ plink.rsp: makefile 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 -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 ##-- # Hack to force version.obj to be rebuilt always @@ -269,9 +283,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 @@ -283,3 +299,4 @@ clean: del *.ncb del *.opt del *.plg + del *.map