comparison makefile.vc @ 750:e6a9f1c7b0d7

Changes to be smarter about source and destination directories with Visual C. Also add support for manifests and targeting 64bit binaries.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 16 Mar 2011 22:01:05 +0000
parents f09977bc9b5c
children ef17c8079f1d
comparison
equal deleted inserted replaced
749:9e147366147b 750:e6a9f1c7b0d7
1 # 1 #
2 # Get our source directory 2 # Visual C Makefile for Dynamic Windows
3 # 3 #
4 VER = 11 4 VER = 11
5 VERDOT = 1.1 5 VERDOT = 1.1
6 6
7 #
8 # Setup the source and destination directories
9 #
7 !if "$(DWINDOWS_SRCDIR)" == "" 10 !if "$(DWINDOWS_SRCDIR)" == ""
8 SRCDIR=. 11 SRCDIR=.
9 !else 12 !else
10 SRCDIR=$(DWINDOWS_SRCDIR) 13 SRCDIR=$(DWINDOWS_SRCDIR)
11 !endif 14 !endif
12 15
13 FXLIBDIR=.\lib 16 !if "$(DWLIBDIR)" == ""
14 FXDLLDIR=.\dll 17 DWLIBDIR=.\lib
18 !endif
15 19
20 !if "$(DWDLLDIR)" == ""
21 DWDLLDIR=.\dll
22 !endif
23
24 #
25 # Configure settings for the target platform
26 # Default to x86 if not specified
27 #
28 !if "$(TARGET_CPU)" == ""
29 TARGET_CPU=x86
30 !endif
31
32 !if "$(TARGET_CPU)" == "x86"
33 PLATFORM_DEF = -DWIN32
34 !else
35 PLATFORM_DEF = -DWIN64
36 !endif
37
38 #
39 # Settings for either debug or release
40 #
16 !if "$(DEBUG)" == "Y" 41 !if "$(DEBUG)" == "Y"
17 CFLAGS_DEBUG = -DDEBUG -Z7 -Od # was -Zi 42 CFLAGS_DEBUG = -DDEBUG -Z7 -Od # was -Zi
18 LINK_DEBUG = -debug 43 LINK_DEBUG = -debug
19 !else 44 !else
20 CFLAGS_DEBUG = -Ox 45 CFLAGS_DEBUG = -Ox
21 LINK_DEBUG = -release 46 LINK_DEBUG = -release
22 !endif 47 !endif
23 48
24 CC = cl 49 CC = cl
25 CFLAGS = -c -Zp1 -DWIN32 -D__WIN32__ -DMSVC -DBUILD_DLL -I$(SRCDIR)\platform -I$(SRCDIR) 50 CFLAGS = -c -Zp1 $(PLATFORM_DEF) -D__WIN32__ -DMSVC -DBUILD_DLL -I$(SRCDIR)\platform -I$(SRCDIR)
26 CFLAGS_COMPILE = -MTd # was -MD 51 CFLAGS_COMPILE = -MTd # was -MD
27 LIBS = wsock32.lib kernel32.lib user32.lib comctl32.lib gdi32.lib advapi32.lib shell32.lib comdlg32.lib ole32.lib oleaut32.lib 52 LIBS = wsock32.lib kernel32.lib user32.lib comctl32.lib gdi32.lib advapi32.lib shell32.lib comdlg32.lib ole32.lib oleaut32.lib
28 RES = 53 RES =
29 LINKFLAGS = -machine:i386 $(LINK_DEBUG) 54 LINKFLAGS = -machine:$(TARGET_CPU) -manifest $(LINK_DEBUG)
30 DLLLINKFLAGS = -dll 55 DLLLINKFLAGS = -dll
31 LINK = link 56 LINK = link
32 DEFFILE = $(SRCDIR)\dww.def 57 DEFFILE = $(SRCDIR)\dww.def
33 DEFFILE2 = $(SRCDIR)\dwcompatw.def 58 DEFFILE2 = $(SRCDIR)\dwcompatw.def
34 59
51 -erase *~ 76 -erase *~
52 77
53 dw: dw.dll 78 dw: dw.dll
54 79
55 dw.dll: $(OBJS) $(DEFFILE) 80 dw.dll: $(OBJS) $(DEFFILE)
56 -mkdir $(FXLIBDIR) 81 -mkdir $(DWLIBDIR)
57 -mkdir $(FXDLLDIR) 82 -mkdir $(DWDLLDIR)
58 $(LINK) @<< 83 $(LINK) @<<
59 -out:$(@) -def:$(DEFFILE) 84 -out:$(@) -def:$(DEFFILE)
60 $(LINKFLAGS) $(DLLLINKFLAGS) 85 $(LINKFLAGS) $(DLLLINKFLAGS)
61 $(OBJS) $(RES) 86 $(OBJS) $(RES)
62 $(LIBS) 87 $(LIBS)
63 << 88 <<
64 lib /def:$(DEFFILE) /out:dw.lib 89 lib /def:$(DEFFILE) /out:dw.lib
65 copy dw.lib $(FXLIBDIR)\dw.lib 90 mt.exe /manifest dw.dll.manifest /outputresource:dw.dll;2
66 copy dw.dll $(FXDLLDIR)\dw.dll 91 copy dw.lib $(DWLIBDIR)\dw.lib
92 copy dw.dll $(DWDLLDIR)\dw.dll
67 93
68 dwcompat: dwcompat.dll 94 dwcompat: dwcompat.dll
69 95
70 dwcompat.dll: $(OBJS2) $(DEFFILE2) 96 dwcompat.dll: $(OBJS2) $(DEFFILE2)
71 $(LINK) @<< 97 $(LINK) @<<
73 $(LINKFLAGS) $(DLLLINKFLAGS) 99 $(LINKFLAGS) $(DLLLINKFLAGS)
74 $(OBJS2) $(RES) 100 $(OBJS2) $(RES)
75 $(LIBS) 101 $(LIBS)
76 << 102 <<
77 lib /def:$(DEFFILE2) /out:dwcompat.lib 103 lib /def:$(DEFFILE2) /out:dwcompat.lib
78 copy dwcompat.lib $(FXLIBDIR)\dwcompat.lib 104 mt.exe /manifest dwcompat.dll.manifest /outputresource:dwcompat.dll;2
79 copy dwcompat.dll $(FXDLLDIR)\dwcompat.dll 105 copy dwcompat.lib $(DWLIBDIR)\dwcompat.lib
106 copy dwcompat.dll $(DWDLLDIR)\dwcompat.dll
80 107
81 dw.obj: $(SRCDIR)\win\dw.c 108 dw.obj: $(SRCDIR)\win\dw.c
82 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(CFLAGS_COMPILE) $(SRCDIR)\win\dw.c 109 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(CFLAGS_COMPILE) $(SRCDIR)\win\dw.c
83 110
84 browser.obj: $(SRCDIR)\win\browser.c 111 browser.obj: $(SRCDIR)\win\browser.c
97 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(CFLAGS_COMPILE) $(SRCDIR)\dwtest.c 124 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(CFLAGS_COMPILE) $(SRCDIR)\dwtest.c
98 125
99 dwtest: dwtest.exe 126 dwtest: dwtest.exe
100 127
101 dwtest.exe: dwtest.obj winmain.obj 128 dwtest.exe: dwtest.obj winmain.obj
102 $(LINK) $(LINKFLAGS) /out:dwtest.exe dwtest.obj winmain.obj /subsystem:windows $(FXLIBDIR)\dwcompat.lib $(FXLIBDIR)\dw.lib $(LIBS) 129 $(LINK) $(LINKFLAGS) /out:dwtest.exe dwtest.obj winmain.obj /subsystem:windows $(DWLIBDIR)\dwcompat.lib $(DWLIBDIR)\dw.lib $(LIBS)
130 mt.exe /manifest dwtest.exe.manifest /outputresource:dwtest.exe;1
103 131
104 zip: dw.dll 132 zip: dw.dll
105 copy win\readme-win.txt . 133 copy win\readme-win.txt .
106 zip dwindows-win32-$(VERDOT).zip readme-win.txt dw.dll dwcompat.dll dw.lib dwcompat.lib dw.h 134 zip dwindows-win32-$(VERDOT).zip readme-win.txt dw.dll dwcompat.dll dw.lib dwcompat.lib dw.h