1 # Visual C++ Makefile for PuTTY.
3 # Use `nmake' to build.
8 # Extra options you can set:
11 # Enables a hack that tunnels through some firewall proxies.
13 # - VER=/DSNAPSHOT=1999-01-25
14 # Generates executables whose About box report them as being a
15 # development snapshot.
17 # - VER=/DRELEASE=0.43
18 # Generates executables whose About box report them as being a
21 # - COMPAT=/DWIN32S_COMPAT
22 # Generates a binary that works (minimally) with Win32s.
25 # Uses ASCII rather than Unicode to specify the tab control in
26 # the resource file. Probably most useful when compiling with
27 # Cygnus/mingw32, whose resource compiler may have less of a
32 CFLAGS
= /nologo
/W3
/YX
/O2
/Yd
/D_WINDOWS
/DDEBUG
/ML
/Fd
36 # CFLAGS = /nologo /W3 /YX /O2 /Yd /D_WINDOWS /DDEBUG /ML /Fd
38 # Disable debug and incremental linking
39 LFLAGS
= /incremental
:no
42 cl
$(COMPAT
) $(FWHACK
) $(CFLAGS
) /c
$*.c
47 ##-- objects putty puttytel
48 GOBJS1
= window.
$(OBJ
) windlg.
$(OBJ
) terminal.
$(OBJ
) telnet.
$(OBJ
) raw.
$(OBJ
)
49 GOBJS2
= xlat.
$(OBJ
) ldisc.
$(OBJ
) sizetip.
$(OBJ
)
51 POBJS
= ssh.
$(OBJ
) be_all.
$(OBJ
)
53 TOBJS
= be_nossh.
$(OBJ
)
55 SOBJS
= scp.
$(OBJ
) windlg.
$(OBJ
) scpssh.
$(OBJ
) be_none.
$(OBJ
)
56 ##-- objects putty puttytel pscp
57 MOBJS
= misc.
$(OBJ
) version.
$(OBJ
)
58 ##-- objects putty pscp
59 OBJS1
= sshcrc.
$(OBJ
) sshdes.
$(OBJ
) sshmd5.
$(OBJ
) sshrsa.
$(OBJ
) sshrand.
$(OBJ
)
60 OBJS2
= sshsha.
$(OBJ
) sshblowf.
$(OBJ
) noise.
$(OBJ
)
62 PRESRC
= win_res.
$(RES
)
63 ##-- resources puttytel
64 TRESRC
= nossh_res.
$(RES
)
76 LIBS1
= advapi32.lib user32.lib gdi32.lib
77 LIBS2
= wsock32.lib comctl32.lib comdlg32.lib
79 all: putty.exe puttytel.exe pscp.exe
81 putty.exe
: $(GOBJS1
) $(GOBJS2
) $(POBJS
) $(MOBJS
) $(OBJS1
) $(OBJS2
) $(PRESRC
) putty.rsp
82 link
$(LFLAGS
) -out
:putty.exe @putty.rsp
84 puttytel.exe
: $(GOBJS1
) $(GOBJS2
) $(TOBJS
) $(MOBJS
) $(TRESRC
) puttytel.rsp
85 link
$(LFLAGS
) -out
:puttytel.exe @puttytel.rsp
87 pscp.exe
: $(SOBJS
) $(OBJS1
) $(OBJS2
) $(OBJS3
) $(SRESRC
) pscp.rsp
88 link
$(LFLAGS
) -out
:pscp.exe @pscp.rsp
91 echo
/nologo
/subsystem
:windows
> putty.rsp
92 echo
$(GOBJS1
) >> putty.rsp
93 echo
$(GOBJS2
) >> putty.rsp
94 echo
$(POBJS
) >> putty.rsp
95 echo
$(MOBJS
) >> putty.rsp
96 echo
$(OBJS1
) >> putty.rsp
97 echo
$(OBJS2
) >> putty.rsp
98 echo
$(PRESRC
) >> putty.rsp
99 echo
$(LIBS1
) >> putty.rsp
100 echo
$(LIBS2
) >> putty.rsp
102 puttytel.rsp
: makefile
103 echo
/nologo
/subsystem
:windows
> puttytel.rsp
104 echo
$(GOBJS1
) >> puttytel.rsp
105 echo
$(GOBJS2
) >> puttytel.rsp
106 echo
$(TOBJS
) >> puttytel.rsp
107 echo
$(MOBJS
) >> puttytel.rsp
108 echo
$(TRESRC
) >> puttytel.rsp
109 echo
$(LIBS1
) >> puttytel.rsp
110 echo
$(LIBS2
) >> puttytel.rsp
113 echo
/nologo
/subsystem
:console
> pscp.rsp
114 echo
$(SOBJS
) >> pscp.rsp
115 echo
$(MOBJS
) >> pscp.rsp
116 echo
$(OBJS1
) >> pscp.rsp
117 echo
$(OBJS2
) >> pscp.rsp
118 echo
$(SRESRC
) >> pscp.rsp
119 echo
$(LIBS1
) >> pscp.rsp
120 echo
$(LIBS2
) >> pscp.rsp
123 window.
$(OBJ
): window.c putty.h win_res.h
124 windlg.
$(OBJ
): windlg.c putty.h ssh.h win_res.h
125 terminal.
$(OBJ
): terminal.c putty.h
126 sizetip.
$(OBJ
): sizetip.c putty.h
127 telnet.
$(OBJ
): telnet.c putty.h
128 raw.
$(OBJ
): raw.c putty.h
129 xlat.
$(OBJ
): xlat.c putty.h
130 ldisc.
$(OBJ
): ldisc.c putty.h
131 misc.
$(OBJ
): misc.c putty.h
132 noise.
$(OBJ
): noise.c putty.h ssh.h
133 ssh.
$(OBJ
): ssh.c ssh.h putty.h
134 sshcrc.
$(OBJ
): sshcrc.c ssh.h
135 sshdes.
$(OBJ
): sshdes.c ssh.h
136 sshmd5.
$(OBJ
): sshmd5.c ssh.h
137 sshrsa.
$(OBJ
): sshrsa.c ssh.h
138 sshsha.
$(OBJ
): sshsha.c ssh.h
139 sshrand.
$(OBJ
): sshrand.c ssh.h
140 sshblowf.
$(OBJ
): sshblowf.c ssh.h
141 scp.
$(OBJ
): scp.c putty.h scp.h
142 scpssh.
$(OBJ
): scpssh.c putty.h ssh.h scp.h
143 version.
$(OBJ
): version.c
144 be_all.
$(OBJ
): be_all.c
145 be_nossh.
$(OBJ
): be_nossh.c
146 be_none.
$(OBJ
): be_none.c
149 # Hack to force version.obj to be rebuilt always
150 version.obj
: versionpseudotarget
151 @echo
(built version.obj
)
153 cl
$(FWHACK
) $(VER
) $(CFLAGS
) /c version.c
156 win_res.
$(RES
): win_res.rc win_res.h putty.ico
159 rc
$(FWHACK
) $(RCFL
) -r
-DWIN32
-D_WIN32
-DWINVER
=0x0400 win_res.rc
162 nossh_res.
$(RES
): nossh_res.rc win_res.rc win_res.h putty.ico
165 rc
$(FWHACK
) $(RCFL
) -r
-DWIN32
-D_WIN32
-DWINVER
=0x0400 nossh_res.rc
168 scp.
$(RES
): scp.rc scp.ico
171 rc
$(FWHACK
) $(RCFL
) -r
-DWIN32
-D_WIN32
-DWINVER
=0x0400 scp.rc