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 /MD /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
) ssh.
$(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
) sshdh.
$(OBJ
) sshdss.
$(OBJ
)
63 PRESRC
= win_res.
$(RES
)
64 ##-- resources puttytel
65 TRESRC
= nosshres.
$(RES
)
77 LIBS1
= advapi32.lib user32.lib gdi32.lib
78 LIBS2
= wsock32.lib comctl32.lib comdlg32.lib
80 all: putty.exe puttytel.exe pscp.exe
82 putty.exe
: $(GOBJS1
) $(GOBJS2
) $(POBJS
) $(MOBJS
) $(OBJS1
) $(OBJS2
) $(OBJS3
) $(PRESRC
) putty.rsp
83 link
$(LFLAGS
) -out
:putty.exe @putty.rsp
85 puttytel.exe
: $(GOBJS1
) $(GOBJS2
) $(TOBJS
) $(MOBJS
) $(TRESRC
) puttytel.rsp
86 link
$(LFLAGS
) -out
:puttytel.exe @puttytel.rsp
88 pscp.exe
: $(SOBJS
) $(MOBJS
) $(OBJS1
) $(OBJS2
) $(OBJS3
) $(SRESRC
) pscp.rsp
89 link
$(LFLAGS
) -out
:pscp.exe @pscp.rsp
92 echo
/nologo
/subsystem
:windows
> putty.rsp
93 echo
$(GOBJS1
) >> putty.rsp
94 echo
$(GOBJS2
) >> putty.rsp
95 echo
$(POBJS
) >> putty.rsp
96 echo
$(MOBJS
) >> putty.rsp
97 echo
$(OBJS1
) >> putty.rsp
98 echo
$(OBJS2
) >> putty.rsp
99 echo
$(OBJS3
) >> putty.rsp
100 echo
$(PRESRC
) >> putty.rsp
101 echo
$(LIBS1
) >> putty.rsp
102 echo
$(LIBS2
) >> putty.rsp
104 puttytel.rsp
: makefile
105 echo
/nologo
/subsystem
:windows
> puttytel.rsp
106 echo
$(GOBJS1
) >> puttytel.rsp
107 echo
$(GOBJS2
) >> puttytel.rsp
108 echo
$(TOBJS
) >> puttytel.rsp
109 echo
$(MOBJS
) >> puttytel.rsp
110 echo
$(TRESRC
) >> puttytel.rsp
111 echo
$(LIBS1
) >> puttytel.rsp
112 echo
$(LIBS2
) >> puttytel.rsp
115 echo
/nologo
/subsystem
:console
> pscp.rsp
116 echo
$(SOBJS
) >> pscp.rsp
117 echo
$(MOBJS
) >> pscp.rsp
118 echo
$(OBJS1
) >> pscp.rsp
119 echo
$(OBJS2
) >> pscp.rsp
120 echo
$(OBJS3
) >> pscp.rsp
121 echo
$(SRESRC
) >> pscp.rsp
122 echo
$(LIBS1
) >> pscp.rsp
123 echo
$(LIBS2
) >> pscp.rsp
126 window.
$(OBJ
): window.c putty.h win_res.h
127 windlg.
$(OBJ
): windlg.c putty.h ssh.h win_res.h
128 terminal.
$(OBJ
): terminal.c putty.h
129 sizetip.
$(OBJ
): sizetip.c putty.h
130 telnet.
$(OBJ
): telnet.c putty.h
131 raw.
$(OBJ
): raw.c putty.h
132 xlat.
$(OBJ
): xlat.c putty.h
133 ldisc.
$(OBJ
): ldisc.c putty.h
134 misc.
$(OBJ
): misc.c putty.h
135 noise.
$(OBJ
): noise.c putty.h ssh.h
136 ssh.
$(OBJ
): ssh.c ssh.h putty.h
137 sshcrc.
$(OBJ
): sshcrc.c ssh.h
138 sshdes.
$(OBJ
): sshdes.c ssh.h
139 sshmd5.
$(OBJ
): sshmd5.c ssh.h
140 sshrsa.
$(OBJ
): sshrsa.c ssh.h
141 sshsha.
$(OBJ
): sshsha.c ssh.h
142 sshrand.
$(OBJ
): sshrand.c ssh.h
143 sshblowf.
$(OBJ
): sshblowf.c ssh.h
144 sshdh.
$(OBJ
): sshdh.c ssh.h
145 sshdss.
$(OBJ
): sshdss.c ssh.h
146 sshbn.
$(OBJ
): sshbn.c ssh.h
147 scp.
$(OBJ
): scp.c putty.h scp.h
148 version.
$(OBJ
): version.c
149 be_all.
$(OBJ
): be_all.c
150 be_nossh.
$(OBJ
): be_nossh.c
151 be_none.
$(OBJ
): be_none.c
154 # Hack to force version.obj to be rebuilt always
155 version.obj
: versionpseudotarget
156 @echo
(built version.obj
)
158 cl
$(FWHACK
) $(VER
) $(CFLAGS
) /c version.c
161 win_res.
$(RES
): win_res.rc win_res.h putty.ico
164 rc
$(FWHACK
) $(RCFL
) -r
-DWIN32
-D_WIN32
-DWINVER
=0x0400 win_res.rc
167 nosshres.
$(RES
): nosshres.rc win_res.rc win_res.h putty.ico
170 rc
$(FWHACK
) $(RCFL
) -r
-DWIN32
-D_WIN32
-DWINVER
=0x0400 nosshres.rc
173 scp.
$(RES
): scp.rc scp.ico
176 rc
$(FWHACK
) $(RCFL
) -r
-DWIN32
-D_WIN32
-DWINVER
=0x0400 scp.rc