Added automatic version distinguishing code, to differentiate releases
[u/mdw/putty] / Makefile
1 # Makefile for PuTTY. Use `FWHACK=/DFWHACK' to cause the firewall hack
2 # to be built in. (requires rebuild of ssh.obj only)
3
4 # Can also build with `VER=/DSNAPSHOT=1999-01-25' or
5 # `VER=/DRELEASE=0.43' to get version numbering; otherwise you'll
6 # get `Unidentified build'.
7
8 CFLAGS = /nologo /W3 /YX /O2 /Yd /D_WINDOWS /DDEBUG /ML /Fd
9
10 .c.obj:
11 cl $(FWHACK) $(CFLAGS) /c $*.c
12
13 PUTTYOBJS = window.obj windlg.obj terminal.obj telnet.obj
14 OBJS1 = misc.obj noise.obj
15 OBJS2 = ssh.obj sshcrc.obj sshdes.obj sshmd5.obj sshrsa.obj sshrand.obj
16 OBJS3 = sshsha.obj version.obj
17 RESRC = win_res.res
18 LIBS1 = advapi32.lib user32.lib gdi32.lib
19 LIBS2 = ws2_32.lib comctl32.lib comdlg32.lib
20
21 putty.exe: $(PUTTYOBJS) $(OBJS1) $(OBJS2) $(OBJS3) $(RESRC) link.rsp
22 link /debug -out:putty.exe @link.rsp
23
24 puttyd.exe: $(PUTTYOBJS) $(OBJS1) $(OBJS2) $(OBJS3) $(RESRC) link.rsp
25 link /debug -out:puttyd.exe @link.rsp
26
27 link.rsp: makefile
28 echo /nologo /subsystem:windows > link.rsp
29 echo $(PUTTYOBJS) >> link.rsp
30 echo $(OBJS1) >> link.rsp
31 echo $(OBJS2) >> link.rsp
32 echo $(OBJS3) >> link.rsp
33 echo $(RESRC) >> link.rsp
34 echo $(LIBS1) >> link.rsp
35 echo $(LIBS2) >> link.rsp
36
37 window.obj: window.c putty.h win_res.h
38 windlg.obj: windlg.c putty.h ssh.h win_res.h
39 terminal.obj: terminal.c putty.h
40 telnet.obj: telnet.c putty.h
41 misc.obj: misc.c putty.h
42 noise.obj: noise.c putty.h ssh.h
43 ssh.obj: ssh.c ssh.h putty.h
44 sshcrc.obj: sshcrc.c ssh.h
45 sshdes.obj: sshdes.c ssh.h
46 sshmd5.obj: sshmd5.c ssh.h
47 sshrsa.obj: sshrsa.c ssh.h
48 sshsha.obj: sshsha.c ssh.h
49 sshrand.obj: sshrand.c ssh.h
50 version.obj: versionpseudotarget
51
52 # Hack to force version.obj to be rebuilt always
53 versionpseudotarget:
54 cl $(FWHACK) $(VER) $(CFLAGS) /c version.c
55
56 win_res.res: win_res.rc win_res.h putty.ico
57 rc $(FWHACK) -r -DWIN32 -D_WIN32 -DWINVER=0x0400 win_res.rc
58
59 clean:
60 del *.obj
61 del *.exe
62 del *.res
63 del *.pch
64 del *.aps
65 del *.ilk
66 del *.pdb
67 del *.rsp