1!IFDEF CPU
2LIBS = $(LIBS) bufferoverflowU.lib 
3CFLAGS = $(CFLAGS) -GS- -Zc:forScope
4!ENDIF
5
6!IFNDEF O
7!IFDEF CPU
8O=$(CPU)
9!ELSE
10O=O
11!ENDIF
12!ENDIF
13
14!IF "$(CPU)" != "IA64"
15!IF "$(CPU)" != "AMD64"
16MY_ML = ml
17!ELSE
18MY_ML = ml64
19!ENDIF
20!ENDIF
21
22COMPL_ASM = $(MY_ML) -c -Fo$O/ $**
23
24CFLAGS = $(CFLAGS) -nologo -c -Fo$O/ -EHsc -Gz -WX -Gy
25
26!IFDEF MY_STATIC_LINK
27!IFNDEF MY_SINGLE_THREAD
28CFLAGS = $(CFLAGS) -MT
29!ENDIF
30!ELSE
31CFLAGS = $(CFLAGS) -MD
32!ENDIF
33
34!IFDEF NEW_COMPILER
35CFLAGS_O1 = $(CFLAGS) -O1 -W4 -Wp64
36CFLAGS_O2 = $(CFLAGS) -O2 -W4 -Wp64
37!ELSE
38CFLAGS_O1 = $(CFLAGS) -O1 -W3
39CFLAGS_O2 = $(CFLAGS) -O2 -W3
40!ENDIF
41
42LFLAGS = $(LFLAGS) -nologo -OPT:NOWIN98 -OPT:REF 
43
44!IFDEF DEF_FILE
45LFLAGS = $(LFLAGS) -DLL -DEF:$(DEF_FILE)
46!ENDIF
47
48PROGPATH = $O\$(PROG)
49
50COMPL_O1   = $(CPP) $(CFLAGS_O1) $**
51COMPL_O2   = $(CPP) $(CFLAGS_O2) $**
52COMPL_PCH  = $(CPP) $(CFLAGS_O1) -Yc"StdAfx.h" -Fp$O/a.pch $** 
53COMPL      = $(CPP) $(CFLAGS_O1) -Yu"StdAfx.h" -Fp$O/a.pch $**
54
55all: $(PROGPATH) 
56
57clean:
58	-del /Q $(PROGPATH) $O\*.exe $O\*.dll $O\*.obj $O\*.lib $O\*.exp $O\*.res $O\*.pch 
59
60$O:
61	if not exist "$O" mkdir "$O"
62
63$(PROGPATH): $O $(OBJS) $(DEF_FILE)
64	link $(LFLAGS) -out:$(PROGPATH) $(OBJS) $(LIBS)
65$O\resource.res: $(*B).rc
66	rc -fo$@ $**
67$O\StdAfx.obj: $(*B).cpp
68	$(COMPL_PCH)
69