* add svn ignore
[ezgdi.git] / Makefile
blob1fee43cb775fd0ce1c14395daadfe6f696898dcc
1 PREFIX = ezgdi
2 RELEASE = 1
3 BASEVER = gdi0850
4 VERSION = $(PREFIX)-r$(RELEASE)-$(BASEVER)
6 all:
7 @$(MAKE) /nologo X86=1 do-all
8 @$(MAKE) /nologo X64=1 do-all
10 clean:
11 @$(MAKE) /nologo X86=1 do-clean
12 @$(MAKE) /nologo X64=1 do-clean
13 @-rmdir /s /q build >NUL 2>NUL
15 !if defined(X86) || defined(X64)
17 !include config.mak
19 TABASE = $(PREFIX)-$(ARCH)
20 TARGET = $(TABASE).dll
21 OBJDIR = build\objs-$(ARCH)
22 SRCDIR = $(PREFIX)
24 OBJS = hook.obj override.obj settings.obj cache.obj misc.obj expfunc.obj ft.obj fteng.obj ft2vert.obj gdidll.res
25 !ifdef X86
26 OBJS = $(OBJS) optimize\memcpy__amd.obj
27 OBJS = build\objs-x86\$(OBJS: = build\objs-x86\) #-)
28 !else
29 OBJS = build\objs-x64\$(OBJS: = build\objs-x64\) #-)
30 !endif
32 do-all:
33 @$(MAKE) /nologo do-init
34 @$(MAKE) /nologo do-build
36 do-init: $(OBJDIR)
37 @xcopy /t /q /y "$(SRCDIR)" "$(OBJDIR)"
39 $(FREETYPE_DIR)\freetype-x86.lib: freetype.mak
40 $(MAKE) -f freetype.mak X86=1
42 $(FREETYPE_DIR)\freetype-x64.lib: freetype.mak
43 $(MAKE) -f freetype.mak X64=1
45 $(OBJDIR):
46 @mkdir $(OBJDIR)
48 do-build: $(TARGET)
50 do-clean: do-cleanobj
51 @-erase /f /q "$(TABASE).*" >NUL 2>NUL
53 do-cleanobj:
54 @-erase /s /f /q "$(OBJDIR)" *.idb *.pdb >NUL 2>NUL
55 @-rmdir /s /q "$(OBJDIR)" >NUL 2>NUL
57 INCDIR = $(SRCDIR) $(FREETYPE_INCDIR) $(EASYHOOK_INCDIR) $(DETOURS_INCDIR)
58 LIBDIR = $(FREETYPE_LIBDIR) $(EASYHOOK_LIBDIR) $(DETOURS_LIBDIR)
59 INCLUDE = $(INCLUDE);$(INCDIR: =;)
60 LIB = $(LIB);$(LIBDIR: =;)
61 LIBPATH = $(LIB)
63 !ifdef USE_DEBUG_LIB
64 EH_LIB_SUFFIX = d
65 !endif
67 LIBS = advapi32.lib usp10.lib freetype-$(ARCH).lib
68 !ifdef X64
69 LIBS = $(LIBS) easyhook64$(EH_LIB_SUFFIX).lib
70 !else # X86
71 ! ifdef USE_DETOURS
72 LIBS = $(LIBS) detoured.lib detours.lib
73 ! else
74 LIBS = $(LIBS) easyhook32$(EH_LIB_SUFFIX).lib
75 ! endif
76 !endif
77 DEFS = /DWIN32 /D_WINDOWS /D_UNICODE /DUNICODE
78 !if defined(X86) && defined(USE_DETOURS)
79 DEFS = $(DEFS) /DUSE_DETOURS
80 !endif
82 !ifdef DEBUG
83 CFLAGS = $(CFLAGS_DEBUG) $(DEFS)
84 LDFLAGS = $(LDFLAGS_DEBUG) /pdb:$(TABASE).pdb
85 !else
86 CFLAGS = $(CFLAGS_SAFE) $(DEFS)
87 !endif
89 $(TARGET): $(OBJS) $(SRCDIR)\expfunc.def $(FREETYPE_DIR)\freetype-$(ARCH).lib
90 $(LD) /dll $(LDFLAGS) $(LIBS) /def:$(SRCDIR)\expfunc.def /out:$@ $(OBJS)
92 .SUFFIXES: .cpp .obj .rc .res
94 {$(SRCDIR)}.c{$(OBJDIR)}.obj:
95 $(CC) /nologo $(CFLAGS) /Fo$@ /c $<
97 {$(SRCDIR)}.cpp{$(OBJDIR)}.obj:
98 $(CC) /nologo $(CFLAGS) /Fo$@ /c $<
100 {$(SRCDIR)\optimize}.cpp{$(OBJDIR)\optimize}.obj:
101 $(CC) /nologo $(CFLAGS) /Fo$@ /c $<
103 {$(SRCDIR)}.rc{$(OBJDIR)}.res:
104 rc /fo $@ /l 0x411 $<
106 !endif # defined(ARCH)