* add svn ignore
[ezgdi.git] / ezgdi / Makefile
blob0b6b6c174d66effd5f1a043570227ec324a36c21
1 # usage:
2 # nmake release build
3 # nmake debug=1 debug build
4 # nmake ddk=1 using DDK compiler
5 # nmake sse=1 build for SSE capable CPUs (uses with ddk=1)
6 # nmake clean clean all file(s)
7 # nmake cleanobj clean object file(s)
9 GDI_PREFIX = ..\gdi++
10 GDI_PREFIX_SSE = ..\gdi++_sse
12 TARGET_EXE = $(GDI_PREFIX).exe
13 TARGET_DLL = $(GDI_PREFIX).dll
15 EXE_OBJS = run.obj gdiexe.res
16 DLL_OBJS = hook.obj override.obj settings.obj cache.obj misc.obj expfunc.obj ft.obj fteng.obj ft2vert.obj gdidll.res
17 LINK_LIBS = memcpy_amd.lib
19 EXE_PREFIX = ..\gdiexe
20 DLL_PREFIX = ..\gdidll
22 .SUFFIXES: .c .cpp .obj .rc .res
24 CPPFLAGS = /nologo /D "WIN32"
25 LINKFLAGS = /nologo
26 LINK_EXE = /map:$(EXE_PREFIX).map
27 LINK_DLL = /map:$(DLL_PREFIX).map
29 CPPOPT = /G6 /Gy /QI0f- /QIfdiv-
30 LINKOPT = /opt:nowin98 /opt:icf /opt:ref
32 !ifdef ddk
34 !ifdef sse
35 TARGET_EXE = $(GDI_PREFIX_SSE).exe
36 TARGET_DLL = $(GDI_PREFIX_SSE).dll
37 CPPOPT = $(CPPOPT) /GL /arch:SSE
38 !else
39 CPPOPT = /G7 /Gy /QI0f- /QIfdiv- /GL /arch:SSE2
40 !endif
42 LINKOPT = $(LINKOPT) /ltcg /ignore:4070,4078 bufferoverflowU.lib
43 LINK_LIBS = detoured_.lib detours_.lib $(LINK_LIBS)
45 !else
46 LINK_LIBS = detoured.lib detours.lib $(LINK_LIBS)
47 !endif
49 !ifdef ftstatic
50 FTLIB = freetypeMT
51 !else
52 FTLIB = freetype
53 !endif
55 !ifdef debug
56 CPPFLAGS = $(CPPFLAGS) /Od /MDd /FD /GZ /Zi /D"DEBUG" /D"_DEBUG"
57 LINKFLAGS = $(LINKFLAGS) /incremental:no /debug /machine:I386 /opt:ref /opt:noicf /map
58 LINK_EXE = $(LINK_EXE) /pdb:$(EXE_PREFIX).pdb
59 #LINK_DLL = $(LINK_DLL) $(FTLIB)D.lib /pdb:$(DLL_PREFIX).pdb
60 LINK_DLL = $(LINK_DLL) $(FTLIB).lib /pdb:$(DLL_PREFIX).pdb
61 !else
62 CPPFLAGS = $(CPPFLAGS) $(CPPOPT) /O2 /MD
63 LINK_DLL = $(LINK_DLL) $(LINKOPT) $(FTLIB).lib
64 LINK_EXE = $(LINK_EXE) $(LINKOPT)
65 !endif
67 all: $(TARGET_EXE) $(TARGET_DLL)
69 $(TARGET_EXE): $(EXE_OBJS)
70 link $(LINKFLAGS) $(LINK_EXE) $(LINK_LIBS) /out:$@ $(EXE_OBJS)
72 $(TARGET_DLL): $(DLL_OBJS) expfunc.def
73 link /dll $(LINKFLAGS) $(LINK_DLL) $(LINK_LIBS) /def:expfunc.def /out:$@ $(DLL_OBJS)
75 .c.obj:
76 cl $(CPPFLAGS) /GF /GA /W3 /Fo$@ /c $<
78 .cpp.obj:
79 cl $(CPPFLAGS) /GF /GA /W3 /Fo$@ /c $<
81 .rc.res:
82 rc /l 0x411 $<
84 clean: cleanobj
85 @-erase "$(TARGET_EXE)"
86 @-erase "$(TARGET_DLL)"
88 cleanobj:
89 @-erase $(EXE_OBJS)
90 @-erase $(DLL_OBJS)
91 @-erase ..\gdi???.map
92 @-erase vc??.pdb
93 @-erase vc??.idb
94 @-erase "$(EXE_PREFIX).pdb"
95 @-erase "$(DLL_PREFIX).pdb"
96 @-erase "$(GDI_PREFIX).exp"
97 @-erase "$(GDI_PREFIX).lib"
98 @-erase "$(GDI_PREFIX_DDK).exp"
99 @-erase "$(GDI_PREFIX_DDK).lib"
100 @-erase "$(GDI_PREFIX_SSE).exp"
101 @-erase "$(GDI_PREFIX_SSE).lib"
103 hook.obj: hook.cpp ft.h hooklist.h override.h common.h array.h cache.h settings.h tlsdata.h fteng.h
104 override.obj: override.cpp ft.h hooklist.h override.h common.h array.h cache.h settings.h tlsdata.h fteng.h supinfo.h
105 cache.obj: cache.cpp hooklist.h override.h common.h array.h cache.h
106 misc.obj: misc.cpp common.h array.h
107 settings.obj: settings.cpp common.h array.h cache.h settings.h strtoken.h supinfo.h fteng.h
108 expfunc.obj: expfunc.cpp common.h array.h cache.h settings.h
109 ft.obj: ft.cpp ft.h override.h common.h array.h cache.h settings.h fteng.h ft2vert.h
110 fteng.obj: fteng.cpp ft.h override.h common.h array.h cache.h settings.h fteng.h
111 ft2vert.obj: ft2vert.c ft2vert.h ivs_otft.h
112 run.obj: run.cpp expfunc.cpp supinfo.h gdiexe.rc
113 gdiexe.res: gdiexe.rc gdidll.rc
114 gdidll.res: gdidll.rc