Mercurial > dwindows
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 |