annotate makefile.vc @ 2171:6533fc42c951

Fix building on Windows 2000 and changes to avoid CRT warnings. Was using __has_extension() to check for clang, use __clang__ instead.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 05 Oct 2020 00:49:20 +0000
parents a89841c500f8
children 81c50388851d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1 #
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
2 # Visual C Makefile for Dynamic Windows
381
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
3 #
1350
4333b58d879d Upped the version number to 2.2. Added a Version file to reduce the number of places
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1251
diff changeset
4 !include Version
4333b58d879d Upped the version number to 2.2. Added a Version file to reduce the number of places
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1251
diff changeset
5 VER = $(DW_MAJOR_VERSION)$(DW_MINOR_VERSION)
4333b58d879d Upped the version number to 2.2. Added a Version file to reduce the number of places
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1251
diff changeset
6 VERDOT = $(DW_MAJOR_VERSION).$(DW_MINOR_VERSION)
1163
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
7 VERREV = 0
640
cd1f9f0bd7e1 Support for building zip file on Win32
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 634
diff changeset
8
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
9 #
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
10 # Setup the source and destination directories
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
11 #
381
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
12 !if "$(DWINDOWS_SRCDIR)" == ""
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
13 SRCDIR=.
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
14 !else
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
15 SRCDIR=$(DWINDOWS_SRCDIR)
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
16 !endif
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
17
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
18 !if "$(DWLIBDIR)" == ""
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
19 DWLIBDIR=.\lib
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
20 !endif
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
21
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
22 !if "$(DWDLLDIR)" == ""
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
23 DWDLLDIR=.\dll
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
24 !endif
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
25
2167
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
26 # Configure alternate compiler based on Clang/LLVM
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
27 !if "$(CLANG)" == "Y"
2168
b08df531fd71 Win: Rename LIB to WLIB to prevent clobbering the library path.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2167
diff changeset
28 WLIB=llvm-lib.exe
2167
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
29 CC=clang-cl.exe
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
30 LINK=lld-link.exe
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
31 !else
2168
b08df531fd71 Win: Rename LIB to WLIB to prevent clobbering the library path.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2167
diff changeset
32 WLIB=lib.exe
2167
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
33 CC=cl.exe
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
34 LINK=link.exe
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
35 !endif
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
36
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
37 #
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
38 # Configure settings for the target platform
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
39 # Default to x86 if not specified
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
40 #
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
41 !if "$(TARGET_CPU)" == ""
1928
e07a1e176995 Try to get the target CPU from the Visual Studio environment, so you don't need to set TARGET_CPU.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1726
diff changeset
42 !if "$(VSCMD_ARG_TGT_ARCH)" == ""
2080
8f08d4c9d3fc Win: Visual Studio 2015 sets PLATFORM=x64 in 64bit intel mode so
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2079
diff changeset
43 !if "$(PLATFORM)" == ""
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
44 TARGET_CPU=x86
1928
e07a1e176995 Try to get the target CPU from the Visual Studio environment, so you don't need to set TARGET_CPU.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1726
diff changeset
45 !else
2080
8f08d4c9d3fc Win: Visual Studio 2015 sets PLATFORM=x64 in 64bit intel mode so
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2079
diff changeset
46 TARGET_CPU=$(PLATFORM)
8f08d4c9d3fc Win: Visual Studio 2015 sets PLATFORM=x64 in 64bit intel mode so
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2079
diff changeset
47 !endif
8f08d4c9d3fc Win: Visual Studio 2015 sets PLATFORM=x64 in 64bit intel mode so
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2079
diff changeset
48 !else
1928
e07a1e176995 Try to get the target CPU from the Visual Studio environment, so you don't need to set TARGET_CPU.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1726
diff changeset
49 TARGET_CPU=$(VSCMD_ARG_TGT_ARCH)
e07a1e176995 Try to get the target CPU from the Visual Studio environment, so you don't need to set TARGET_CPU.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1726
diff changeset
50 !endif
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
51 !endif
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
52
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
53 !if "$(TARGET_CPU)" == "x86"
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
54 PLATFORM_DEF = -DWIN32
1113
a049f447999c Updated makefiles to 2.1 on Windows and OS/2 for packaging.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1030
diff changeset
55 PLATFORM_NAME = win32
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
56 !else
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
57 PLATFORM_DEF = -DWIN64
1113
a049f447999c Updated makefiles to 2.1 on Windows and OS/2 for packaging.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1030
diff changeset
58 PLATFORM_NAME = win64
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
59 !endif
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
60
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
61 #
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
62 # Settings for either debug or release
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
63 #
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 631
diff changeset
64 !if "$(DEBUG)" == "Y"
1601
71e0a3ad07f7 Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1595
diff changeset
65 # -D_CRT_SECURE_NO_WARNINGS disables unsafe string function warnings
71e0a3ad07f7 Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1595
diff changeset
66 # These can be perfectly safe if used properly but get enabled by -W3
2167
da33732f182d Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2088
diff changeset
67 CFLAGS_DEBUG = -DDEBUG -Z7 -W3 -Od -MTd # was -Zi
647
f09977bc9b5c Fixed building with Visual Studio 2008.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
68 LINK_DEBUG = -debug
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 631
diff changeset
69 !else
772
b28ec71cfc88 Add -MT or -MTd switch to DEBUG switches
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 758
diff changeset
70 CFLAGS_DEBUG = -Ox -MT
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 631
diff changeset
71 LINK_DEBUG = -release
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 631
diff changeset
72 !endif
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 631
diff changeset
73
1163
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
74 # Check the SVN revision number if possible
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
75 !if ![subwcrev . win\__SVN__.REV SVN.REV > NUL]
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
76 !include SVN.REV
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
77 !message Revision is [$(VERREV)]
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
78 SVNVERSION=-DVER_REV=$(VERREV)
1626
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
79 !else
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
80
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
81 # Check the Mercurial revision number if possible
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
82 !if ![hg log -r . --template="VER_REV={rev}" > HG.REV]
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
83 !include HG.REV
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
84 !message Revision is [$(VER_REV)]
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
85 SVNVERSION=-DVER_REV=$(VER_REV)
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
86 !endif
fdeeba6c6d09 Add support for mercurial revisions in addition to subversion on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1618
diff changeset
87
1163
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
88 !endif
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
89
2078
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
90 #
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
91 # Settings for supporting embedded Edge (Chromium) WebView2
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
92 #
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
93 !if "$(WEBVIEW2DIR)" == ""
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
94 WEBVIEW2DIR=$(SRCDIR)\packages\Microsoft.Web.WebView2
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
95 !endif
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
96
2082
3144912829e2 Minor build issues
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2080
diff changeset
97 !if exists($(WEBVIEW2DIR)\build\native\include\WebView2.h)
2078
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
98 WEBVIEW2INC=-DBUILD_EDGE -I$(WEBVIEW2DIR)\build\native\include
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
99 WEBVIEW2LIB=$(WEBVIEW2DIR)\build\native\$(TARGET_CPU)\WebView2Loader.dll.lib
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
100 WEBVIEW2OBJ=edge.obj
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
101 !endif
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
102
2088
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
103 #
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
104 # Settings for supporting WinToast notifications
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
105 #
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
106 !if "$(WINTOASTDIR)" == ""
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
107 WINTOASTDIR=$(SRCDIR)\packages\WinToast
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
108 !endif
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
109
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
110 !if exists($(WINTOASTDIR)\src\wintoastlib.h)
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
111 WINTOASTINC=-DBUILD_TOAST -I$(WINTOASTDIR)\src
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
112 WINTOASTOBJ=wintoast.obj wintoastlib.obj
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
113 !endif
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
114
2171
6533fc42c951 Fix building on Windows 2000 and changes to avoid CRT warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2169
diff changeset
115 # Visual C CRT deprecates a lot of common functions, these lines
6533fc42c951 Fix building on Windows 2000 and changes to avoid CRT warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2169
diff changeset
116 # will hide the deprecation warnings, remove these options to see them
6533fc42c951 Fix building on Windows 2000 and changes to avoid CRT warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2169
diff changeset
117 CRT_FLAGS = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNING
6533fc42c951 Fix building on Windows 2000 and changes to avoid CRT warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2169
diff changeset
118
6533fc42c951 Fix building on Windows 2000 and changes to avoid CRT warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2169
diff changeset
119 CFLAGS = -c $(PLATFORM_DEF) -D__WIN32__ -DMSVC -DTOOLBAR -DGDIPLUS -DAEROGLASS -D_UNICODE -DUNICODE -DBUILD_DLL -DISOLATION_AWARE_ENABLED=1 -I$(SRCDIR)\platform -I$(SRCDIR) $(WEBVIEW2INC) $(WINTOASTINC) $(SVNVERSION) $(CRT_FLAGS)
2078
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
120 LIBS = wsock32.lib kernel32.lib user32.lib comctl32.lib gdi32.lib advapi32.lib shell32.lib comdlg32.lib ole32.lib oleaut32.lib userenv.lib msimg32.lib gdiplus.lib $(WEBVIEW2LIB)
598
78a8c4123818 Specify library output filenames.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 584
diff changeset
121 RES =
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
122 LINKFLAGS = -machine:$(TARGET_CPU) -manifest $(LINK_DEBUG)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
123 DLLLINKFLAGS = -dll
1360
32a5be18e187 Source tree cleanup, move import/export definition files to their platform folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1350
diff changeset
124 DEFFILE = $(SRCDIR)\win\dw.def
32a5be18e187 Source tree cleanup, move import/export definition files to their platform folder.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1350
diff changeset
125 DEFFILE2 = $(SRCDIR)\win\dwcompat.def
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
126
2088
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
127 OBJS = dw.obj browser.obj XBrowseForFolder.obj $(WEBVIEW2OBJ) $(WINTOASTOBJ)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
128
1594
6baf177f335c Rename compat.c/h dwcompat.c/h and configure option to --with-dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
129 OBJS2 = dwcompat.obj dirent.obj
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
130
381
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
131 all: dw dwcompat dwtest
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
132
1163
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
133
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
134
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
135 clean:
2078
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
136 -erase *.dll
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
137 -erase *.exe
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
138 -erase *.opt
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
139 -erase *.lib
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
140 -erase *.obj
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
141 -erase *.map
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
142 -erase *.pdb
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
143 -erase *.ilk
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
144 -erase *.exp
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
145 -erase *.REV
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
146 -erase *~
598
78a8c4123818 Specify library output filenames.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 584
diff changeset
147
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
148 dw: dw.dll
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
149
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
150 dw.dll: $(OBJS) $(DEFFILE)
1163
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
151 -md $(DWLIBDIR)
2991afb3bf71 Added support for including the svn revision number as the sub version with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1113
diff changeset
152 -md $(DWDLLDIR)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
153 $(LINK) @<<
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
154 -out:$(@) -def:$(DEFFILE)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
155 $(LINKFLAGS) $(DLLLINKFLAGS)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
156 $(OBJS) $(RES)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
157 $(LIBS)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
158 <<
2169
a89841c500f8 Win: Clang/LLVM tools don't seem to accept / to specify options...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2168
diff changeset
159 $(WLIB) -def:$(DEFFILE) -machine:$(TARGET_CPU) -out:dw.lib
a89841c500f8 Win: Clang/LLVM tools don't seem to accept / to specify options...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2168
diff changeset
160 mt.exe -manifest dw.dll.manifest $(SRCDIR)\win\dw.dll.$(TARGET_CPU).manifest -outputresource:dw.dll;2
1447
5417b312801e Add -DISOLATION_AWARE_ENABLED=1 to Visual C compile flags and delete temporary manifest files after build.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1431
diff changeset
161 -erase dw.dll.manifest
2078
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
162 copy dw.lib $(DWLIBDIR)\dw.lib
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
163 copy dw.dll $(DWDLLDIR)\dw.dll
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
164
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
165 dwcompat: dwcompat.dll
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
166
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
167 dwcompat.dll: $(OBJS2) $(DEFFILE2)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
168 $(LINK) @<<
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
169 -out:$(@) -def:$(DEFFILE2)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
170 $(LINKFLAGS) $(DLLLINKFLAGS)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
171 $(OBJS2) $(RES)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
172 $(LIBS)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
173 <<
2169
a89841c500f8 Win: Clang/LLVM tools don't seem to accept / to specify options...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2168
diff changeset
174 $(WLIB) -def:$(DEFFILE2) -machine:$(TARGET_CPU) -out:dwcompat.lib
a89841c500f8 Win: Clang/LLVM tools don't seem to accept / to specify options...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2168
diff changeset
175 mt.exe -manifest dwcompat.dll.manifest -outputresource:dwcompat.dll;2
1447
5417b312801e Add -DISOLATION_AWARE_ENABLED=1 to Visual C compile flags and delete temporary manifest files after build.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1431
diff changeset
176 -erase dwcompat.dll.manifest
2078
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
177 copy dwcompat.lib $(DWLIBDIR)\dwcompat.lib
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
178 copy dwcompat.dll $(DWDLLDIR)\dwcompat.dll
2082
3144912829e2 Minor build issues
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2080
diff changeset
179 !if exists($(WEBVIEW2DIR)\build\native\$(TARGET_CPU)\WebView2Loader.dll)
2079
f02266370e74 Win: Copy WebView2Loader.dll to the dll\ directory if building Edge support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2078
diff changeset
180 copy $(WEBVIEW2DIR)\build\native\$(TARGET_CPU)\WebView2Loader.dll $(DWDLLDIR)\WebView2Loader.dll
f02266370e74 Win: Copy WebView2Loader.dll to the dll\ directory if building Edge support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2078
diff changeset
181 !endif
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
182
381
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
183 dw.obj: $(SRCDIR)\win\dw.c
772
b28ec71cfc88 Add -MT or -MTd switch to DEBUG switches
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 758
diff changeset
184 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(SRCDIR)\win\dw.c
381
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
185
584
420c6c94abc7 Added dw_html_* functionality for embedding HTML pages in Dynamic Windows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 381
diff changeset
186 browser.obj: $(SRCDIR)\win\browser.c
772
b28ec71cfc88 Add -MT or -MTd switch to DEBUG switches
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 758
diff changeset
187 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(SRCDIR)\win\browser.c
584
420c6c94abc7 Added dw_html_* functionality for embedding HTML pages in Dynamic Windows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 381
diff changeset
188
631
fa6c46796883 Use better directory browser widget.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 598
diff changeset
189 XBrowseForFolder.obj: $(SRCDIR)\win\XBrowseForFolder.cpp
772
b28ec71cfc88 Add -MT or -MTd switch to DEBUG switches
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 758
diff changeset
190 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(SRCDIR)\win\XBrowseForFolder.cpp
631
fa6c46796883 Use better directory browser widget.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 598
diff changeset
191
2078
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
192 edge.obj: $(SRCDIR)\win\edge.cpp
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
193 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(SRCDIR)\win\edge.cpp
2f98abf1e1e5 Win: Added support for building with Edge (Chromium) support via nmake.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1932
diff changeset
194
2088
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
195 wintoast.obj: $(SRCDIR)\win\wintoast.cpp
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
196 $(CC) $(CFLAGS) /EHsc $(CFLAGS_DEBUG) $(SRCDIR)\win\wintoast.cpp
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
197
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
198 wintoastlib.obj: $(WINTOASTDIR)\src\wintoastlib.cpp
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
199 $(CC) $(CFLAGS) /EHsc $(CFLAGS_DEBUG) $(WINTOASTDIR)\src\wintoastlib.cpp
94ea915bd917 Win: Initial implementation of notifications on Windows. Currently using WinToast.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2082
diff changeset
200
381
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
201 dirent.obj: $(SRCDIR)\win\dirent.c
772
b28ec71cfc88 Add -MT or -MTd switch to DEBUG switches
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 758
diff changeset
202 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(SRCDIR)\win\dirent.c
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
203
1594
6baf177f335c Rename compat.c/h dwcompat.c/h and configure option to --with-dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
204 dwcompat.obj: $(SRCDIR)\dwcompat.c
6baf177f335c Rename compat.c/h dwcompat.c/h and configure option to --with-dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
205 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(SRCDIR)\dwcompat.c
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
206
381
0df4ad2ac083 Enable dwindows to be built from a directory other than where the
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 286
diff changeset
207 dwtest.obj: $(SRCDIR)\dwtest.c
772
b28ec71cfc88 Add -MT or -MTd switch to DEBUG switches
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 758
diff changeset
208 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(SRCDIR)\dwtest.c
191
634625c3239d Fixes for dw_color_xxxx_set() to accept OS/2 style colors, and fixed a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 45
diff changeset
209
2082
3144912829e2 Minor build issues
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2080
diff changeset
210 winmain.obj: $(SRCDIR)\winmain.c
3144912829e2 Minor build issues
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2080
diff changeset
211 $(CC) $(CFLAGS) $(CFLAGS_DEBUG) $(SRCDIR)\winmain.c
3144912829e2 Minor build issues
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2080
diff changeset
212
286
e9270ff04ced Simple add dwtest as a target, dependent on dwtest.exe.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 191
diff changeset
213 dwtest: dwtest.exe
e9270ff04ced Simple add dwtest as a target, dependent on dwtest.exe.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 191
diff changeset
214
191
634625c3239d Fixes for dw_color_xxxx_set() to accept OS/2 style colors, and fixed a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 45
diff changeset
215 dwtest.exe: dwtest.obj winmain.obj
750
e6a9f1c7b0d7 Changes to be smarter about source and destination directories with Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 647
diff changeset
216 $(LINK) $(LINKFLAGS) /out:dwtest.exe dwtest.obj winmain.obj /subsystem:windows $(DWLIBDIR)\dwcompat.lib $(DWLIBDIR)\dw.lib $(LIBS)
2082
3144912829e2 Minor build issues
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2080
diff changeset
217 mt.exe /manifest dwtest.exe.manifest $(SRCDIR)\win\dwtest.exe.$(TARGET_CPU).manifest /outputresource:dwtest.exe;1
1447
5417b312801e Add -DISOLATION_AWARE_ENABLED=1 to Visual C compile flags and delete temporary manifest files after build.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1431
diff changeset
218 -erase dwtest.exe.manifest
640
cd1f9f0bd7e1 Support for building zip file on Win32
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 634
diff changeset
219
cd1f9f0bd7e1 Support for building zip file on Win32
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 634
diff changeset
220 zip: dw.dll
cd1f9f0bd7e1 Support for building zip file on Win32
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 634
diff changeset
221 copy win\readme-win.txt .
1604
7eb2e2d6b0be OS/2 and Windows zip rules need to include dwcompat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1601
diff changeset
222 zip dwindows-$(PLATFORM_NAME)-$(VERDOT).zip readme-win.txt readme.txt dw.dll dwcompat.dll dw.lib dwcompat.lib dw.h dwcompat.h