First stab at the ability to compile puttytel.exe, an SSH-free
[u/mdw/putty] / Makefile
CommitLineData
3d541627 1# Visual C++ Makefile for PuTTY.
2#
3# Use `nmake' to build.
4#
5
6##-- help
7#
8# Extra options you can set:
9#
10# - FWHACK=/DFWHACK
11# Enables a hack that tunnels through some firewall proxies.
12#
13# - VER=/DSNAPSHOT=1999-01-25
14# Generates executables whose About box report them as being a
15# development snapshot.
16#
17# - VER=/DRELEASE=0.43
18# Generates executables whose About box report them as being a
19# release version.
20#
21# - COMPAT=/DWIN32S_COMPAT
22# Generates a binary that works (minimally) with Win32s.
23#
6ed3635b 24# - RCFL=/DASCIICTLS
760858ff 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
28# problem with it.
29#
3d541627 30##--
676c0556 31
5f48a59c 32CFLAGS = /nologo /W3 /YX /O2 /Yd /D_WINDOWS /DDEBUG /ML /Fd
374330e2 33
34.c.obj:
676c0556 35 cl $(COMPAT) $(FWHACK) $(CFLAGS) /c $*.c
374330e2 36
3d541627 37OBJ=obj
38RES=res
39
89ee5268 40##-- objects putty puttytel
41GOBJS1 = window.$(OBJ) windlg.$(OBJ) terminal.$(OBJ) telnet.$(OBJ) raw.$(OBJ)
42GOBJS2 = xlat.$(OBJ) ldisc.$(OBJ) sizetip.$(OBJ)
3d541627 43##-- objects putty
89ee5268 44POBJS = ssh.$(OBJ) be_all.$(OBJ)
45##-- objects puttytel
46TOBJS = be_nossh.$(OBJ)
3d541627 47##-- objects pscp
89ee5268 48SOBJS = scp.$(OBJ) windlg.$(OBJ) scpssh.$(OBJ) be_none.$(OBJ)
49##-- objects putty puttytel pscp
50MOBJS = misc.$(OBJ) version.$(OBJ)
3d541627 51##-- objects putty pscp
89ee5268 52OBJS1 = sshcrc.$(OBJ) sshdes.$(OBJ) sshmd5.$(OBJ) sshrsa.$(OBJ) sshrand.$(OBJ)
53OBJS2 = sshsha.$(OBJ) sshblowf.$(OBJ) noise.$(OBJ)
3d541627 54##-- resources putty
55PRESRC = win_res.$(RES)
89ee5268 56##-- resources puttytel
57TRESRC = nossh_res.$(RES)
3d541627 58##-- resources pscp
59SRESRC = scp.$(RES)
60##--
61
62##-- gui-apps
63# putty
89ee5268 64# puttytel
3d541627 65##-- console-apps
66# pscp
67##--
68
374330e2 69LIBS1 = advapi32.lib user32.lib gdi32.lib
0cb88877 70LIBS2 = wsock32.lib comctl32.lib comdlg32.lib
4585985c 71
89ee5268 72all: putty.exe puttytel.exe pscp.exe
73
74putty.exe: $(GOBJS1) $(GOBJS2) $(POBJS) $(MOBJS) $(OBJS1) $(OBJS2) $(PRESRC) putty.rsp
75 link /debug -out:putty.exe @putty.rsp
76
77puttytel.exe: $(GOBJS1) $(GOBJS2) $(TOBJS) $(MOBJS) $(PRESRC) puttytel.rsp
78 link /debug -out:puttytel.exe @puttytel.rsp
79
80pscp.exe: $(SOBJS) $(OBJS1) $(OBJS2) $(OBJS3) $(SRESRC) pscp.rsp
81 link /debug -out:pscp.exe @pscp.rsp
82
83putty.rsp: makefile
84 echo /nologo /subsystem:windows > putty.rsp
85 echo $(GOBJS1) >> putty.rsp
86 echo $(GOBJS2) >> putty.rsp
87 echo $(POBJS) >> putty.rsp
88 echo $(MOBJS) >> putty.rsp
89 echo $(OBJS1) >> putty.rsp
90 echo $(OBJS2) >> putty.rsp
91 echo $(PRESRC) >> putty.rsp
92 echo $(LIBS1) >> putty.rsp
93 echo $(LIBS2) >> putty.rsp
94
95puttytel.rsp: makefile
96 echo /nologo /subsystem:windows > puttytel.rsp
97 echo $(GOBJS1) >> puttytel.rsp
98 echo $(GOBJS2) >> puttytel.rsp
99 echo $(TOBJS) >> puttytel.rsp
100 echo $(MOBJS) >> puttytel.rsp
101 echo $(TRESRC) >> puttytel.rsp
102 echo $(LIBS1) >> puttytel.rsp
103 echo $(LIBS2) >> puttytel.rsp
104
105pscp.rsp: makefile
106 echo /nologo /subsystem:console > pscp.rsp
107 echo $(SOBJS) >> pscp.rsp
108 echo $(MOBJS) >> pscp.rsp
109 echo $(OBJS1) >> pscp.rsp
110 echo $(OBJS2) >> pscp.rsp
111 echo $(SRESRC) >> pscp.rsp
112 echo $(LIBS1) >> pscp.rsp
113 echo $(LIBS2) >> pscp.rsp
3d541627 114
115##-- dependencies
116window.$(OBJ): window.c putty.h win_res.h
117windlg.$(OBJ): windlg.c putty.h ssh.h win_res.h
118terminal.$(OBJ): terminal.c putty.h
119sizetip.$(OBJ): sizetip.c putty.h
120telnet.$(OBJ): telnet.c putty.h
121raw.$(OBJ): raw.c putty.h
122xlat.$(OBJ): xlat.c putty.h
123ldisc.$(OBJ): ldisc.c putty.h
124misc.$(OBJ): misc.c putty.h
125noise.$(OBJ): noise.c putty.h ssh.h
126ssh.$(OBJ): ssh.c ssh.h putty.h
127sshcrc.$(OBJ): sshcrc.c ssh.h
128sshdes.$(OBJ): sshdes.c ssh.h
129sshmd5.$(OBJ): sshmd5.c ssh.h
130sshrsa.$(OBJ): sshrsa.c ssh.h
131sshsha.$(OBJ): sshsha.c ssh.h
132sshrand.$(OBJ): sshrand.c ssh.h
133sshblowf.$(OBJ): sshblowf.c ssh.h
134scp.$(OBJ): scp.c putty.h scp.h
135scpssh.$(OBJ): scpssh.c putty.h ssh.h scp.h
136version.$(OBJ): version.c
89ee5268 137be_all.$(OBJ): be_all.c
138be_nossh.$(OBJ): be_nossh.c
139be_none.$(OBJ): be_none.c
3d541627 140##--
067a15ea 141
142# Hack to force version.obj to be rebuilt always
3d541627 143version.obj: versionpseudotarget
144 @echo (built version.obj)
067a15ea 145versionpseudotarget:
146 cl $(FWHACK) $(VER) $(CFLAGS) /c version.c
374330e2 147
3d541627 148##-- dependencies
149win_res.$(RES): win_res.rc win_res.h putty.ico
150##--
151win_res.$(RES):
6ed3635b 152 rc $(FWHACK) $(RCFL) -r -DWIN32 -D_WIN32 -DWINVER=0x0400 win_res.rc
374330e2 153
3d541627 154##-- dependencies
89ee5268 155nossh_res.$(RES): nossh_res.rc win_res.h putty.ico
156##--
157nossh_res.$(RES):
158 rc $(FWHACK) $(RCFL) -r -DWIN32 -D_WIN32 -DWINVER=0x0400 nossh_res.rc
159
160##-- dependencies
3d541627 161scp.$(RES): scp.rc scp.ico
162##--
163scp.$(RES):
6ed3635b 164 rc $(FWHACK) $(RCFL) -r -DWIN32 -D_WIN32 -DWINVER=0x0400 scp.rc
4585985c 165
374330e2 166clean:
167 del *.obj
168 del *.exe
169 del *.res
170 del *.pch
171 del *.aps
172 del *.ilk
173 del *.pdb
067a15ea 174 del *.rsp