1
- # Makefile to build D runtime library druntime64 .lib for Win64
1
+ # Makefile to build D runtime library druntime{64,32mscoff} .lib for Windows MSVC
2
2
3
+ # Set this to `32mscoff` for a 32-bit build.
3
4
MODEL =64
4
5
5
- # Visual Studio 2019
6
- # VCDIR=\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110
7
- # SDKDIR=\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0
8
- # Visual Studio 2015 and before
9
- VCDIR =\Program Files (x86)\Microsoft Visual Studio 10.0\VC
10
- SDKDIR =\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
6
+ # Assume MSVC cl.exe in PATH is set up for the target MODEL.
7
+ # Otherwise set it explicitly, e.g., to `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x86\cl.exe`.
8
+ CC =cl
11
9
12
10
DMD_DIR =..\dmd
13
11
BUILD =release
14
12
OS =windows
15
13
DMD =$(DMD_DIR ) \generated\$(OS ) \$(BUILD ) \$(MODEL ) \dmd
16
14
17
- # Visual Studio 2017/2019
18
- # BINDIR=$(VCDIR)\bin\Hostx64\x64
19
- # Visual Studio 2015 and before
20
- BINDIR =$(VCDIR ) \bin\amd64
21
-
22
- CC =$(BINDIR ) \cl
23
- LD =$(BINDIR ) \link
24
- AR =$(BINDIR ) \lib
25
- CP =cp
26
-
27
15
DOCDIR =doc
28
16
IMPDIR =import
29
17
@@ -36,10 +24,7 @@ DDOCFLAGS=-conf= -c -w -o- -Isrc -Iimport -version=CoreDdoc
36
24
37
25
UTFLAGS=-version =CoreUnittest -unittest -checkaction=context
38
26
39
- # CFLAGS=/O2 /I"$(VCDIR)"\INCLUDE /I"$(SDKDIR)"\Include
40
- CFLAGS =/Z7 /I"$(VCDIR ) "\INCLUDE /I"$(SDKDIR ) "\Include
41
- # Visual Studio 2019
42
- # CFLAGS=/Z7 /I"$(VCDIR)"\include /I"$(SDKDIR)"\ucrt
27
+ CFLAGS =/Z7
43
28
44
29
DRUNTIME_BASE =druntime$(MODEL )
45
30
DRUNTIME =lib\$(DRUNTIME_BASE ) .lib
@@ -86,52 +71,41 @@ unittest: $(SRCS) $(DRUNTIME)
86
71
* " $( DMD) " $(UDFLAGS ) -version=druntime_unittest $(UTFLAGS ) -ofunittest.exe -main $(SRCS ) $(DRUNTIME ) -debuglib=$(DRUNTIME ) -defaultlib=$(DRUNTIME ) user32.lib
87
72
.\u nittest.exe
88
73
89
- # ################## Win32 COFF support #########################
90
-
91
- # default to 32-bit compiler relative to 64-bit compiler, link and lib are architecture agnostic
92
- CC32 =$(CC ) \..\..\cl
93
-
94
- druntime32mscoff :
95
- " $( MAKE) " -f win64.mak " DMD=$( DMD) " MODEL=32mscoff " CC=$( CC32) " " AR=$( AR) " " VCDIR=$( VCDIR) " " SDKDIR=$( SDKDIR) "
96
-
97
- unittest32mscoff :
98
- " $( MAKE) " -f win64.mak " DMD=$( DMD) " MODEL=32mscoff " CC=$( CC32) " " AR=$( AR) " " VCDIR=$( VCDIR) " " SDKDIR=$( SDKDIR) " unittest
99
-
100
74
# ################## tests ######################################
101
75
102
76
test_uuid :
103
- " $( MAKE) " -f test\u uid\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) test
77
+ " $( MAKE) " -f test\u uid\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) test
104
78
105
79
test_aa :
106
80
" $( DMD) " -m$(MODEL ) -conf= -Isrc -defaultlib=$(DRUNTIME ) -run test\a a\s rc\t est_aa.d
107
81
108
82
test_betterc :
109
- " $( MAKE) " -f test\b etterc\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
83
+ " $( MAKE) " -f test\b etterc\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
110
84
111
85
test_betterc_mingw :
112
- " $( MAKE) " -f test\b etterc\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " MINGW=_mingw test
86
+ " $( MAKE) " -f test\b etterc\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " MINGW=_mingw test
113
87
114
88
test_cpuid :
115
- " $( MAKE) " -f test\c puid\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
89
+ " $( MAKE) " -f test\c puid\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
116
90
117
91
test_exceptions :
118
- " $( MAKE) " -f test\e xceptions\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
92
+ " $( MAKE) " -f test\e xceptions\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
119
93
120
94
test_hash :
121
95
" $( DMD) " -m$(MODEL ) -conf= -Isrc -defaultlib=$(DRUNTIME ) -run test\h ash\s rc\t est_hash.d
122
96
123
97
test_stdcpp :
124
98
setmscver.bat
125
- " $( MAKE) " -f test\s tdcpp\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
99
+ " $( MAKE) " -f test\s tdcpp\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
126
100
127
101
test_gc :
128
- " $( MAKE) " -f test\g c\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
102
+ " $( MAKE) " -f test\g c\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
129
103
130
104
custom_gc :
131
- $(MAKE ) -f test\i nit_fini\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
105
+ $(MAKE ) -f test\i nit_fini\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
132
106
133
107
test_shared :
134
- $(MAKE ) -f test\s hared\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) " VCDIR= $( VCDIR ) " DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
108
+ $(MAKE ) -f test\s hared\w in64.mak " DMD=$( DMD) " MODEL=$(MODEL ) DRUNTIMELIB=$(DRUNTIME ) " CC=$( CC) " test
135
109
136
110
test_common : test_shared test_aa test_cpuid test_exceptions test_hash test_gc custom_gc
137
111
0 commit comments