5 /* Building Mono runtime under MSVC uses this template for it's config.h since autogen.sh can't */
6 /* generate a config.h that is suitable for MSVC builds. The below template will still get */
7 /* some dynamic configuration from autogen.sh config.h, if one exists. */
8 #include <msvc/msvc-win32-support.h>
9 #include <msvc/msvc-disabled-warnings.h>
12 /* Only used when building using Boehm GC and only supported on x86 builds */
13 #define DEFAULT_GC_NAME "Included Boehm (with typed GC)"
16 /* Some VES is available at runtime */
17 #define ENABLE_ILGEN 1
19 /* Start configure ENABLE_DEFINES picked up from cygconfig.h or other external source, if available */
20 /* @ENABLE_DEFINES@ */
21 /* End configure ENABLE_DEFINES picked up from cygconfig.h or other external source, if available */
23 /* Windows MSVC builds defaults to preemptive suspend. Disable ENABLE_HYBRID_SUSPEND defines. */
24 #undef ENABLE_HYBRID_SUSPEND
26 /* No ENABLE_DEFINES below this point */
28 /* Keep in sync with netcore runtime-preset in configure.ac */
30 #ifndef DISABLE_REMOTING
31 #define DISABLE_REMOTING 1
33 #ifndef DISABLE_REFLECTION_EMIT_SAVE
34 #define DISABLE_REFLECTION_EMIT_SAVE 1
36 #ifndef DISABLE_APPDOMAINS
37 #define DISABLE_APPDOMAINS 1
39 #ifndef DISABLE_CLEANUP
40 #define DISABLE_CLEANUP 1
42 #ifndef DISABLE_DESKTOP_LOADER
43 #define DISABLE_DESKTOP_LOADER 1
45 #ifndef DISABLE_SECURITY
46 #define DISABLE_SECURITY 1
57 #ifndef DISABLE_PERFCOUNTERS
58 #define DISABLE_PERFCOUNTERS 1
60 #ifndef DISABLE_ATTACH
61 #define DISABLE_ATTACH 1
63 #ifndef DISABLE_DLLMAP
64 #define DISABLE_DLLMAP 1
68 /* Disable runtime state dumping */
69 #define DISABLE_CRASH_REPORTING 1
71 /* String of disabled features */
72 #define DISABLED_FEATURES "none"
74 /* Disables the IO portability layer */
75 #define DISABLE_PORTABILITY 1
77 /* Start configure DISABLE_DEFINES picked up from cygconfig.h or other external source, if available */
78 /* @DISABLE_DEFINES@ */
79 /* End configure DISABLE_DEFINES picked up from cygconfig.h or other external source, if available */
81 /* No DISABLE_DEFINES below this point */
86 /* Define to 1 if you have the `system' function. */
87 #if HAVE_WINAPI_FAMILY_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT)
91 /* Define to 1 if you have the <complex.h> header file. */
92 #define HAVE_COMPLEX_H 1
94 #if defined(HAVE_SGEN_GC) && !defined(HAVE_CONC_GC_AS_DEFAULT)
95 /* Defaults to concurrent GC */
96 #define HAVE_CONC_GC_AS_DEFAULT 1
99 /* Have /dev/random */
100 #define HAVE_CRYPT_RNG 1
102 /* Define to 1 if you have the `getaddrinfo' function. */
103 #define HAVE_GETADDRINFO 1
105 /* Define to 1 if you have the `getnameinfo' function. */
106 #define HAVE_GETNAMEINFO 1
108 /* Define to 1 if you have the `getprotobyname' function. */
109 #define HAVE_GETPROTOBYNAME 1
112 #define HAVE_INET_NTOP 1
114 /* Define to 1 if you have the `inet_pton' function. */
115 #define HAVE_INET_PTON 1
117 /* Define to 1 if you have the <inttypes.h> header file. */
118 #define HAVE_INTTYPES_H 1
120 /* Define to 1 if you have the <memory.h> header file. */
121 #define HAVE_MEMORY_H 1
123 #if defined(HAVE_SGEN_GC) && !defined(HAVE_MOVING_COLLECTOR)
124 /* Moving collector */
125 #define HAVE_MOVING_COLLECTOR 1
128 /* Define to 1 if you have the `signal' function. */
129 #define HAVE_SIGNAL 1
131 /* Define to 1 if you have the <signal.h> header file. */
132 #define HAVE_SIGNAL_H 1
134 /* Define to 1 if you have the <stdint.h> header file. */
135 #define HAVE_STDINT_H 1
137 /* Define to 1 if you have the <stdlib.h> header file. */
138 #define HAVE_STDLIB_H 1
140 /* Define to 1 if you have the <strings.h> header file. */
141 #define HAVE_STRINGS_H 1
143 /* Define to 1 if you have the <string.h> header file. */
144 #define HAVE_STRING_H 1
146 /* Define to 1 if you have the `strtok_r' function. */
147 #define HAVE_STRTOK_R 1
149 /* Have struct ip_mreq */
150 #define HAVE_STRUCT_IP_MREQ 1
152 /* Define to 1 if the system has the type `struct sockaddr_in6'. */
153 #define HAVE_STRUCT_SOCKADDR_IN6 1
155 /* Define to 1 if you have the <sys/stat.h> header file. */
156 #define HAVE_SYS_STAT_H 1
158 /* Define to 1 if you have the <sys/types.h> header file. */
159 #define HAVE_SYS_TYPES_H 1
161 /* Define to 1 if you have the <sys/utime.h> header file. */
162 #define HAVE_SYS_UTIME_H 1
164 /* Define to 1 if you have the <wchar.h> header file. */
165 #define HAVE_WCHAR_H 1
167 /* Define to 1 if you have the <winternl.h> header file. */
168 #define HAVE_WINTERNL_H 1
170 #if defined(HAVE_SGEN_GC) && !defined(HAVE_WRITE_BARRIERS)
171 #define HAVE_WRITE_BARRIERS
174 /* Start configure HAVE_DEFINES picked up from cygconfig.h or other external source, if available */
176 /* End configure HAVE_DEFINES picked up from cygconfig.h or other external source, if available */
178 /* No HAVE_DEFINES below this point */
180 /* This platform does not support symlinks */
181 #define HOST_NO_SYMLINKS 1
183 /* Host Platform is Win32 */
186 /* The architecture this is running on */
188 #define MONO_ARCHITECTURE "ia64"
189 #elif defined(_M_AMD64)
190 #define MONO_ARCHITECTURE "amd64"
191 #elif defined(_M_IX86)
192 #define MONO_ARCHITECTURE "x86"
194 #error Unknown architecture
197 /* Version of the corlib-runtime interface */
198 #define MONO_CORLIB_VERSION "#MONO_CORLIB_VERSION#"
200 /* Have __thread keyword */
201 #define MONO_KEYWORD_THREAD __declspec (thread)
203 /* Length of zero length arrays */
204 #define MONO_ZERO_LEN_ARRAY 1
206 /* Name of /dev/random */
207 #define NAME_DEV_RANDOM ""
209 /* Name of package */
210 #define PACKAGE "mono"
212 /* Define to the address where bug reports for this package should be sent. */
213 #define PACKAGE_BUGREPORT "https://github.com/mono/mono/issues/new"
215 /* Define to the full name of this package. */
216 #define PACKAGE_NAME "mono"
218 /* Define to the full name and version of this package. */
219 #define PACKAGE_STRING "mono #MONO_VERSION#"
221 /* Define to the one symbol short name of this package. */
222 #define PACKAGE_TARNAME "mono"
224 /* Define to the home page for this package. */
225 #define PACKAGE_URL ""
227 /* Define to the version of this package. */
228 #define PACKAGE_VERSION "#MONO_VERSION#"
230 /* The size of `int', as computed by sizeof. */
233 /* The size of `long', as computed by sizeof. */
234 #define SIZEOF_LONG 4
236 /* The size of `long long', as computed by sizeof. */
237 #define SIZEOF_LONG_LONG 8
239 /* size of target machine integer registers */
241 #define SIZEOF_REGISTER 8
243 #define SIZEOF_REGISTER 4
246 /* The size of `void *', as computed by sizeof. */
248 #define SIZEOF_VOID_P 8
250 #define SIZEOF_VOID_P 4
253 /* Define to 1 if you have the ANSI C header files. */
254 #define STDC_HEADERS 1
257 #define TARGET_AMD64 1
264 /* byte order of target */
265 #define TARGET_BYTE_ORDER G_BYTE_ORDER
267 /* wordsize of target */
268 #define TARGET_SIZEOF_VOID_P SIZEOF_VOID_P
270 /* Platform is Win32 */
271 #define TARGET_WIN32 1
273 /* Version number of package */
274 #define VERSION "#MONO_VERSION#"
278 /* Not building under MSVC, use autogen.sh generated config.h */
279 #include "cygconfig.h"
283 #if defined(ENABLE_LLVM) && defined(HOST_WIN32) && defined(TARGET_WIN32) && (!defined(TARGET_AMD64) || !defined(_MSC_VER))
284 #error LLVM for host=Windows and target=Windows is only supported on x64 MSVC build.