• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef HEADER_CURL_CONFIG_WIN32_H
2 #define HEADER_CURL_CONFIG_WIN32_H
3 /***************************************************************************
4  *                                  _   _ ____  _
5  *  Project                     ___| | | |  _ \| |
6  *                             / __| | | | |_) | |
7  *                            | (__| |_| |  _ <| |___
8  *                             \___|\___/|_| \_\_____|
9  *
10  * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
11  *
12  * This software is licensed as described in the file COPYING, which
13  * you should have received as part of this distribution. The terms
14  * are also available at https://curl.haxx.se/docs/copyright.html.
15  *
16  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17  * copies of the Software, and permit persons to whom the Software is
18  * furnished to do so, under the terms of the COPYING file.
19  *
20  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21  * KIND, either express or implied.
22  *
23  ***************************************************************************/
24 
25 /* ================================================================ */
26 /*               Hand crafted config file for Windows               */
27 /* ================================================================ */
28 
29 /* ---------------------------------------------------------------- */
30 /*                          HEADER FILES                            */
31 /* ---------------------------------------------------------------- */
32 
33 /* Define if you have the <arpa/inet.h> header file. */
34 /* #define HAVE_ARPA_INET_H 1 */
35 
36 /* Define if you have the <assert.h> header file. */
37 #define HAVE_ASSERT_H 1
38 
39 /* Define if you have the <crypto.h> header file. */
40 /* #define HAVE_CRYPTO_H 1 */
41 
42 /* Define if you have the <errno.h> header file. */
43 #define HAVE_ERRNO_H 1
44 
45 /* Define if you have the <err.h> header file. */
46 /* #define HAVE_ERR_H 1 */
47 
48 /* Define if you have the <fcntl.h> header file. */
49 #define HAVE_FCNTL_H 1
50 
51 /* Define if you have the <getopt.h> header file. */
52 #if defined(__MINGW32__) || defined(__POCC__)
53 #define HAVE_GETOPT_H 1
54 #endif
55 
56 /* Define to 1 if you have the <inttypes.h> header file. */
57 #if defined(_MSC_VER) && (_MSC_VER >= 1800)
58 #define HAVE_INTTYPES_H 1
59 #endif
60 
61 /* Define if you have the <io.h> header file. */
62 #define HAVE_IO_H 1
63 
64 /* Define if you have the <locale.h> header file. */
65 #define HAVE_LOCALE_H 1
66 
67 /* Define if you need <malloc.h> header even with <stdlib.h> header file. */
68 #if !defined(__SALFORDC__) && !defined(__POCC__)
69 #define NEED_MALLOC_H 1
70 #endif
71 
72 /* Define if you have the <netdb.h> header file. */
73 /* #define HAVE_NETDB_H 1 */
74 
75 /* Define if you have the <netinet/in.h> header file. */
76 /* #define HAVE_NETINET_IN_H 1 */
77 
78 /* Define if you have the <process.h> header file. */
79 #ifndef __SALFORDC__
80 #define HAVE_PROCESS_H 1
81 #endif
82 
83 /* Define if you have the <signal.h> header file. */
84 #define HAVE_SIGNAL_H 1
85 
86 /* Define if you have the <sgtty.h> header file. */
87 /* #define HAVE_SGTTY_H 1 */
88 
89 /* Define if you have the <ssl.h> header file. */
90 /* #define HAVE_SSL_H 1 */
91 
92 /* Define to 1 if you have the <stdbool.h> header file. */
93 #if defined(_MSC_VER) && (_MSC_VER >= 1800)
94 #define HAVE_STDBOOL_H 1
95 #endif
96 
97 /* Define if you have the <stdlib.h> header file. */
98 #define HAVE_STDLIB_H 1
99 
100 /* Define if you have the <sys/param.h> header file. */
101 /* #define HAVE_SYS_PARAM_H 1 */
102 
103 /* Define if you have the <sys/select.h> header file. */
104 /* #define HAVE_SYS_SELECT_H 1 */
105 
106 /* Define if you have the <sys/socket.h> header file. */
107 /* #define HAVE_SYS_SOCKET_H 1 */
108 
109 /* Define if you have the <sys/sockio.h> header file. */
110 /* #define HAVE_SYS_SOCKIO_H 1 */
111 
112 /* Define if you have the <sys/stat.h> header file. */
113 #define HAVE_SYS_STAT_H 1
114 
115 /* Define if you have the <sys/time.h> header file. */
116 /* #define HAVE_SYS_TIME_H 1 */
117 
118 /* Define if you have the <sys/types.h> header file. */
119 #define HAVE_SYS_TYPES_H 1
120 
121 /* Define if you have the <sys/utime.h> header file. */
122 #ifndef __BORLANDC__
123 #define HAVE_SYS_UTIME_H 1
124 #endif
125 
126 /* Define if you have the <termio.h> header file. */
127 /* #define HAVE_TERMIO_H 1 */
128 
129 /* Define if you have the <termios.h> header file. */
130 /* #define HAVE_TERMIOS_H 1 */
131 
132 /* Define if you have the <time.h> header file. */
133 #define HAVE_TIME_H 1
134 
135 /* Define if you have the <unistd.h> header file. */
136 #if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__LCC__) || \
137     defined(__POCC__)
138 #define HAVE_UNISTD_H 1
139 #endif
140 
141 /* Define if you have the <windows.h> header file. */
142 #define HAVE_WINDOWS_H 1
143 
144 /* Define if you have the <winsock.h> header file. */
145 #define HAVE_WINSOCK_H 1
146 
147 /* Define if you have the <winsock2.h> header file. */
148 #ifndef __SALFORDC__
149 #define HAVE_WINSOCK2_H 1
150 #endif
151 
152 /* Define if you have the <ws2tcpip.h> header file. */
153 #ifndef __SALFORDC__
154 #define HAVE_WS2TCPIP_H 1
155 #endif
156 
157 /* ---------------------------------------------------------------- */
158 /*                        OTHER HEADER INFO                         */
159 /* ---------------------------------------------------------------- */
160 
161 /* Define if sig_atomic_t is an available typedef. */
162 #define HAVE_SIG_ATOMIC_T 1
163 
164 /* Define if you have the ANSI C header files. */
165 #define STDC_HEADERS 1
166 
167 /* Define if you can safely include both <sys/time.h> and <time.h>. */
168 /* #define TIME_WITH_SYS_TIME 1 */
169 
170 /* Define to 1 if bool is an available type. */
171 #if defined(_MSC_VER) && (_MSC_VER >= 1800)
172 #define HAVE_BOOL_T 1
173 #endif
174 
175 /* ---------------------------------------------------------------- */
176 /*                             FUNCTIONS                            */
177 /* ---------------------------------------------------------------- */
178 
179 /* Define if you have the closesocket function. */
180 #define HAVE_CLOSESOCKET 1
181 
182 /* Define if you don't have vprintf but do have _doprnt. */
183 /* #define HAVE_DOPRNT 1 */
184 
185 /* Define if you have the ftruncate function. */
186 #define HAVE_FTRUNCATE 1
187 
188 /* Define to 1 if you have the `getpeername' function. */
189 #define HAVE_GETPEERNAME 1
190 
191 /* Define to 1 if you have the getsockname function. */
192 #define HAVE_GETSOCKNAME 1
193 
194 /* Define if you have the gethostbyaddr function. */
195 #define HAVE_GETHOSTBYADDR 1
196 
197 /* Define if you have the gethostname function. */
198 #define HAVE_GETHOSTNAME 1
199 
200 /* Define if you have the getpass function. */
201 /* #define HAVE_GETPASS 1 */
202 
203 /* Define if you have the getservbyname function. */
204 #define HAVE_GETSERVBYNAME 1
205 
206 /* Define if you have the getprotobyname function. */
207 #define HAVE_GETPROTOBYNAME
208 
209 /* Define if you have the gettimeofday function. */
210 /* #define HAVE_GETTIMEOFDAY 1 */
211 
212 /* Define if you have the inet_addr function. */
213 #define HAVE_INET_ADDR 1
214 
215 /* Define if you have the ioctlsocket function. */
216 #define HAVE_IOCTLSOCKET 1
217 
218 /* Define if you have a working ioctlsocket FIONBIO function. */
219 #define HAVE_IOCTLSOCKET_FIONBIO 1
220 
221 /* Define if you have the perror function. */
222 #define HAVE_PERROR 1
223 
224 /* Define if you have the RAND_screen function when using SSL. */
225 #define HAVE_RAND_SCREEN 1
226 
227 /* Define if you have the `RAND_status' function when using SSL. */
228 #define HAVE_RAND_STATUS 1
229 
230 /* Define if you have the `CRYPTO_cleanup_all_ex_data' function.
231    This is present in OpenSSL versions after 0.9.6b */
232 #define HAVE_CRYPTO_CLEANUP_ALL_EX_DATA 1
233 
234 /* Define if you have the select function. */
235 #define HAVE_SELECT 1
236 
237 /* Define if you have the setlocale function. */
238 #define HAVE_SETLOCALE 1
239 
240 /* Define if you have the setmode function. */
241 #define HAVE_SETMODE 1
242 
243 /* Define if you have the setvbuf function. */
244 #define HAVE_SETVBUF 1
245 
246 /* Define if you have the socket function. */
247 #define HAVE_SOCKET 1
248 
249 /* Define if you have the strcasecmp function. */
250 /* #define HAVE_STRCASECMP 1 */
251 
252 /* Define if you have the strdup function. */
253 #define HAVE_STRDUP 1
254 
255 /* Define if you have the strftime function. */
256 #define HAVE_STRFTIME 1
257 
258 /* Define if you have the stricmp function. */
259 #define HAVE_STRICMP 1
260 
261 /* Define if you have the strncasecmp function. */
262 /* #define HAVE_STRNCASECMP 1 */
263 
264 /* Define if you have the strnicmp function. */
265 #define HAVE_STRNICMP 1
266 
267 /* Define if you have the strstr function. */
268 #define HAVE_STRSTR 1
269 
270 /* Define if you have the strtoll function. */
271 #if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__POCC__) || \
272     (defined(_MSC_VER) && (_MSC_VER >= 1800))
273 #define HAVE_STRTOLL 1
274 #endif
275 
276 /* Define if you have the tcgetattr function. */
277 /* #define HAVE_TCGETATTR 1 */
278 
279 /* Define if you have the tcsetattr function. */
280 /* #define HAVE_TCSETATTR 1 */
281 
282 /* Define if you have the utime function. */
283 #ifndef __BORLANDC__
284 #define HAVE_UTIME 1
285 #endif
286 
287 /* Define to the type qualifier of arg 1 for getnameinfo. */
288 #define GETNAMEINFO_QUAL_ARG1 const
289 
290 /* Define to the type of arg 1 for getnameinfo. */
291 #define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
292 
293 /* Define to the type of arg 2 for getnameinfo. */
294 #define GETNAMEINFO_TYPE_ARG2 socklen_t
295 
296 /* Define to the type of args 4 and 6 for getnameinfo. */
297 #define GETNAMEINFO_TYPE_ARG46 DWORD
298 
299 /* Define to the type of arg 7 for getnameinfo. */
300 #define GETNAMEINFO_TYPE_ARG7 int
301 
302 /* Define if you have the recv function. */
303 #define HAVE_RECV 1
304 
305 /* Define to the type of arg 1 for recv. */
306 #define RECV_TYPE_ARG1 SOCKET
307 
308 /* Define to the type of arg 2 for recv. */
309 #define RECV_TYPE_ARG2 char *
310 
311 /* Define to the type of arg 3 for recv. */
312 #define RECV_TYPE_ARG3 int
313 
314 /* Define to the type of arg 4 for recv. */
315 #define RECV_TYPE_ARG4 int
316 
317 /* Define to the function return type for recv. */
318 #define RECV_TYPE_RETV int
319 
320 /* Define if you have the recvfrom function. */
321 #define HAVE_RECVFROM 1
322 
323 /* Define to the type of arg 1 for recvfrom. */
324 #define RECVFROM_TYPE_ARG1 SOCKET
325 
326 /* Define to the type pointed by arg 2 for recvfrom. */
327 #define RECVFROM_TYPE_ARG2 char
328 
329 /* Define to the type of arg 3 for recvfrom. */
330 #define RECVFROM_TYPE_ARG3 int
331 
332 /* Define to the type of arg 4 for recvfrom. */
333 #define RECVFROM_TYPE_ARG4 int
334 
335 /* Define to the type pointed by arg 5 for recvfrom. */
336 #define RECVFROM_TYPE_ARG5 struct sockaddr
337 
338 /* Define to the type pointed by arg 6 for recvfrom. */
339 #define RECVFROM_TYPE_ARG6 int
340 
341 /* Define to the function return type for recvfrom. */
342 #define RECVFROM_TYPE_RETV int
343 
344 /* Define if you have the send function. */
345 #define HAVE_SEND 1
346 
347 /* Define to the type of arg 1 for send. */
348 #define SEND_TYPE_ARG1 SOCKET
349 
350 /* Define to the type qualifier of arg 2 for send. */
351 #define SEND_QUAL_ARG2 const
352 
353 /* Define to the type of arg 2 for send. */
354 #define SEND_TYPE_ARG2 char *
355 
356 /* Define to the type of arg 3 for send. */
357 #define SEND_TYPE_ARG3 int
358 
359 /* Define to the type of arg 4 for send. */
360 #define SEND_TYPE_ARG4 int
361 
362 /* Define to the function return type for send. */
363 #define SEND_TYPE_RETV int
364 
365 /* ---------------------------------------------------------------- */
366 /*                       TYPEDEF REPLACEMENTS                       */
367 /* ---------------------------------------------------------------- */
368 
369 /* Define if in_addr_t is not an available 'typedefed' type. */
370 #define in_addr_t unsigned long
371 
372 /* Define to the return type of signal handlers (int or void). */
373 #define RETSIGTYPE void
374 
375 /* Define if ssize_t is not an available 'typedefed' type. */
376 #ifndef _SSIZE_T_DEFINED
377 #  if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || \
378       defined(__POCC__) || \
379       defined(__MINGW32__)
380 #  elif defined(_WIN64)
381 #    define _SSIZE_T_DEFINED
382 #    define ssize_t __int64
383 #  else
384 #    define _SSIZE_T_DEFINED
385 #    define ssize_t int
386 #  endif
387 #endif
388 
389 /* ---------------------------------------------------------------- */
390 /*                            TYPE SIZES                            */
391 /* ---------------------------------------------------------------- */
392 
393 /* Define to the size of `int', as computed by sizeof. */
394 #define SIZEOF_INT 4
395 
396 /* Define to the size of `long double', as computed by sizeof. */
397 #define SIZEOF_LONG_DOUBLE 16
398 
399 /* Define to the size of `long long', as computed by sizeof. */
400 /* #define SIZEOF_LONG_LONG 8 */
401 
402 /* Define to the size of `short', as computed by sizeof. */
403 #define SIZEOF_SHORT 2
404 
405 /* Define to the size of `long', as computed by sizeof. */
406 #define SIZEOF_LONG 4
407 
408 /* Define to the size of `size_t', as computed by sizeof. */
409 #if defined(_WIN64)
410 #  define SIZEOF_SIZE_T 8
411 #else
412 #  define SIZEOF_SIZE_T 4
413 #endif
414 
415 /* Define to the size of `curl_off_t', as computed by sizeof. */
416 #define SIZEOF_CURL_OFF_T 8
417 
418 /* ---------------------------------------------------------------- */
419 /*               BSD-style lwIP TCP/IP stack SPECIFIC               */
420 /* ---------------------------------------------------------------- */
421 
422 /* Define to use BSD-style lwIP TCP/IP stack. */
423 /* #define USE_LWIPSOCK 1 */
424 
425 #ifdef USE_LWIPSOCK
426 #  undef USE_WINSOCK
427 #  undef HAVE_WINSOCK_H
428 #  undef HAVE_WINSOCK2_H
429 #  undef HAVE_WS2TCPIP_H
430 #  undef HAVE_ERRNO_H
431 #  undef HAVE_GETHOSTNAME
432 #  undef HAVE_GETNAMEINFO
433 #  undef LWIP_POSIX_SOCKETS_IO_NAMES
434 #  undef RECV_TYPE_ARG1
435 #  undef RECV_TYPE_ARG3
436 #  undef SEND_TYPE_ARG1
437 #  undef SEND_TYPE_ARG3
438 #  define HAVE_FREEADDRINFO
439 #  define HAVE_GETADDRINFO
440 #  define HAVE_GETHOSTBYNAME
441 #  define HAVE_GETHOSTBYNAME_R
442 #  define HAVE_GETHOSTBYNAME_R_6
443 #  define LWIP_POSIX_SOCKETS_IO_NAMES 0
444 #  define RECV_TYPE_ARG1 int
445 #  define RECV_TYPE_ARG3 size_t
446 #  define SEND_TYPE_ARG1 int
447 #  define SEND_TYPE_ARG3 size_t
448 #endif
449 
450 /* ---------------------------------------------------------------- */
451 /*                        Watt-32 tcp/ip SPECIFIC                   */
452 /* ---------------------------------------------------------------- */
453 
454 #ifdef USE_WATT32
455   #include <tcp.h>
456   #undef byte
457   #undef word
458   #undef USE_WINSOCK
459   #undef HAVE_WINSOCK_H
460   #undef HAVE_WINSOCK2_H
461   #undef HAVE_WS2TCPIP_H
462   #define HAVE_GETADDRINFO
463   #define HAVE_GETNAMEINFO
464   #define HAVE_SYS_IOCTL_H
465   #define HAVE_SYS_SOCKET_H
466   #define HAVE_NETINET_IN_H
467   #define HAVE_NETDB_H
468   #define HAVE_ARPA_INET_H
469   #define HAVE_FREEADDRINFO
470   #define SOCKET int
471 #endif
472 
473 
474 /* ---------------------------------------------------------------- */
475 /*                        COMPILER SPECIFIC                         */
476 /* ---------------------------------------------------------------- */
477 
478 /* Define to nothing if compiler does not support 'const' qualifier. */
479 /* #define const */
480 
481 /* Define to nothing if compiler does not support 'volatile' qualifier. */
482 /* #define volatile */
483 
484 /* Windows should not have HAVE_GMTIME_R defined */
485 /* #undef HAVE_GMTIME_R */
486 
487 /* Define if the compiler supports C99 variadic macro style. */
488 #if defined(_MSC_VER) && (_MSC_VER >= 1400)
489 #define HAVE_VARIADIC_MACROS_C99 1
490 #endif
491 
492 /* Define if the compiler supports the 'long long' data type. */
493 #if defined(__MINGW32__) || defined(__WATCOMC__)      || \
494     (defined(_MSC_VER)     && (_MSC_VER     >= 1310)) || \
495     (defined(__BORLANDC__) && (__BORLANDC__ >= 0x561))
496 #define HAVE_LONGLONG 1
497 #endif
498 
499 /* Define to avoid VS2005 complaining about portable C functions. */
500 #if defined(_MSC_VER) && (_MSC_VER >= 1400)
501 #define _CRT_SECURE_NO_DEPRECATE 1
502 #define _CRT_NONSTDC_NO_DEPRECATE 1
503 #endif
504 
505 /* VS2005 and later default size for time_t is 64-bit, unless
506    _USE_32BIT_TIME_T has been defined to get a 32-bit time_t. */
507 #if defined(_MSC_VER) && (_MSC_VER >= 1400)
508 #  ifndef _USE_32BIT_TIME_T
509 #    define SIZEOF_TIME_T 8
510 #  else
511 #    define SIZEOF_TIME_T 4
512 #  endif
513 #endif
514 
515 /* Define some minimum and default build targets for Visual Studio */
516 #if defined(_MSC_VER)
517    /* Officially, Microsoft's Windows SDK versions 6.X does not support Windows
518       2000 as a supported build target. VS2008 default installations provides
519       an embedded Windows SDK v6.0A along with the claim that Windows 2000 is a
520       valid build target for VS2008. Popular belief is that binaries built with
521       VS2008 using Windows SDK versions v6.X and Windows 2000 as a build target
522       are functional. */
523 #  define VS2008_MIN_TARGET 0x0500
524 
525    /* The minimum build target for VS2012 is Vista unless Update 1 is installed
526       and the v110_xp toolset is chosen. */
527 #  if defined(_USING_V110_SDK71_)
528 #    define VS2012_MIN_TARGET 0x0501
529 #  else
530 #    define VS2012_MIN_TARGET 0x0600
531 #  endif
532 
533    /* VS2008 default build target is Windows Vista. We override default target
534       to be Windows XP. */
535 #  define VS2008_DEF_TARGET 0x0501
536 
537    /* VS2012 default build target is Windows Vista unless Update 1 is installed
538       and the v110_xp toolset is chosen. */
539 #  if defined(_USING_V110_SDK71_)
540 #    define VS2012_DEF_TARGET 0x0501
541 #  else
542 #    define VS2012_DEF_TARGET 0x0600
543 #  endif
544 #endif
545 
546 /* VS2008 default target settings and minimum build target check. */
547 #if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_MSC_VER <= 1600)
548 #  ifndef _WIN32_WINNT
549 #    define _WIN32_WINNT VS2008_DEF_TARGET
550 #  endif
551 #  ifndef WINVER
552 #    define WINVER VS2008_DEF_TARGET
553 #  endif
554 #  if (_WIN32_WINNT < VS2008_MIN_TARGET) || (WINVER < VS2008_MIN_TARGET)
555 #    error VS2008 does not support Windows build targets prior to Windows 2000
556 #  endif
557 #endif
558 
559 /* VS2012 default target settings and minimum build target check. */
560 #if defined(_MSC_VER) && (_MSC_VER >= 1700)
561 #  ifndef _WIN32_WINNT
562 #    define _WIN32_WINNT VS2012_DEF_TARGET
563 #  endif
564 #  ifndef WINVER
565 #    define WINVER VS2012_DEF_TARGET
566 #  endif
567 #  if (_WIN32_WINNT < VS2012_MIN_TARGET) || (WINVER < VS2012_MIN_TARGET)
568 #    if defined(_USING_V110_SDK71_)
569 #      error VS2012 does not support Windows build targets prior to Windows XP
570 #    else
571 #      error VS2012 does not support Windows build targets prior to Windows \
572 Vista
573 #    endif
574 #  endif
575 #endif
576 
577 /* When no build target is specified Pelles C 5.00 and later default build
578    target is Windows Vista. We override default target to be Windows 2000. */
579 #if defined(__POCC__) && (__POCC__ >= 500)
580 #  ifndef _WIN32_WINNT
581 #    define _WIN32_WINNT 0x0500
582 #  endif
583 #  ifndef WINVER
584 #    define WINVER 0x0500
585 #  endif
586 #endif
587 
588 /* Availability of freeaddrinfo, getaddrinfo, getnameinfo and if_nametoindex
589    functions is quite convoluted, compiler dependent and even build target
590    dependent. */
591 #if defined(HAVE_WS2TCPIP_H)
592 #  if defined(__POCC__)
593 #    define HAVE_FREEADDRINFO           1
594 #    define HAVE_GETADDRINFO            1
595 #    define HAVE_GETADDRINFO_THREADSAFE 1
596 #    define HAVE_GETNAMEINFO            1
597 #  elif defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501)
598 #    define HAVE_FREEADDRINFO           1
599 #    define HAVE_GETADDRINFO            1
600 #    define HAVE_GETADDRINFO_THREADSAFE 1
601 #    define HAVE_GETNAMEINFO            1
602 #  elif defined(_MSC_VER) && (_MSC_VER >= 1200)
603 #    define HAVE_FREEADDRINFO           1
604 #    define HAVE_GETADDRINFO            1
605 #    define HAVE_GETADDRINFO_THREADSAFE 1
606 #    define HAVE_GETNAMEINFO            1
607 #  endif
608 #endif
609 
610 #if defined(__POCC__)
611 #  ifndef _MSC_VER
612 #    error Microsoft extensions /Ze compiler option is required
613 #  endif
614 #  ifndef __POCC__OLDNAMES
615 #    error Compatibility names /Go compiler option is required
616 #  endif
617 #endif
618 
619 /* ---------------------------------------------------------------- */
620 /*                          STRUCT RELATED                          */
621 /* ---------------------------------------------------------------- */
622 
623 /* Define if you have struct sockaddr_storage. */
624 #if !defined(__SALFORDC__) && !defined(__BORLANDC__)
625 #define HAVE_STRUCT_SOCKADDR_STORAGE 1
626 #endif
627 
628 /* Define if you have struct timeval. */
629 #define HAVE_STRUCT_TIMEVAL 1
630 
631 /* Define if struct sockaddr_in6 has the sin6_scope_id member. */
632 #define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
633 
634 #if defined(HAVE_WINSOCK2_H) && defined(_WIN32_WINNT) && \
635     (_WIN32_WINNT >= 0x0600)
636 #define HAVE_STRUCT_POLLFD 1
637 #endif
638 
639 /* ---------------------------------------------------------------- */
640 /*                        LARGE FILE SUPPORT                        */
641 /* ---------------------------------------------------------------- */
642 
643 #if defined(_MSC_VER) && !defined(_WIN32_WCE)
644 #  if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
645 #    define USE_WIN32_LARGE_FILES
646 #  else
647 #    define USE_WIN32_SMALL_FILES
648 #  endif
649 #endif
650 
651 #if defined(__MINGW32__) && !defined(USE_WIN32_LARGE_FILES)
652 #  define USE_WIN32_LARGE_FILES
653 #endif
654 
655 #if defined(__WATCOMC__) && !defined(USE_WIN32_LARGE_FILES)
656 #  define USE_WIN32_LARGE_FILES
657 #endif
658 
659 #if defined(__POCC__)
660 #  undef USE_WIN32_LARGE_FILES
661 #endif
662 
663 #if !defined(USE_WIN32_LARGE_FILES) && !defined(USE_WIN32_SMALL_FILES)
664 #  define USE_WIN32_SMALL_FILES
665 #endif
666 
667 /* ---------------------------------------------------------------- */
668 /*                       DNS RESOLVER SPECIALTY                     */
669 /* ---------------------------------------------------------------- */
670 
671 /*
672  * Undefine both USE_ARES and USE_THREADS_WIN32 for synchronous DNS.
673  */
674 
675 /* Define to enable c-ares asynchronous DNS lookups. */
676 /* #define USE_ARES 1 */
677 
678 /* Default define to enable threaded asynchronous DNS lookups. */
679 #if !defined(USE_SYNC_DNS) && !defined(USE_ARES) && \
680     !defined(USE_THREADS_WIN32)
681 #  define USE_THREADS_WIN32 1
682 #endif
683 
684 #if defined(USE_ARES) && defined(USE_THREADS_WIN32)
685 #  error "Only one DNS lookup specialty may be defined at most"
686 #endif
687 
688 /* ---------------------------------------------------------------- */
689 /*                           LDAP SUPPORT                           */
690 /* ---------------------------------------------------------------- */
691 
692 #if defined(CURL_HAS_NOVELL_LDAPSDK) || defined(CURL_HAS_MOZILLA_LDAPSDK)
693 #undef USE_WIN32_LDAP
694 #define HAVE_LDAP_SSL_H 1
695 #define HAVE_LDAP_URL_PARSE 1
696 #elif defined(CURL_HAS_OPENLDAP_LDAPSDK)
697 #undef USE_WIN32_LDAP
698 #define HAVE_LDAP_URL_PARSE 1
699 #else
700 #undef HAVE_LDAP_URL_PARSE
701 #define HAVE_LDAP_SSL 1
702 #define USE_WIN32_LDAP 1
703 #endif
704 
705 #if defined(__WATCOMC__) && defined(USE_WIN32_LDAP)
706 #if __WATCOMC__ < 1280
707 #define WINBERAPI  __declspec(cdecl)
708 #define WINLDAPAPI __declspec(cdecl)
709 #endif
710 #endif
711 
712 #if defined(__POCC__) && defined(USE_WIN32_LDAP)
713 #  define CURL_DISABLE_LDAP 1
714 #endif
715 
716 /* Define to use the Windows crypto library. */
717 #define USE_WIN32_CRYPTO
718 
719 /* Define to use Unix sockets. */
720 #if defined(_MSC_VER) && (_MSC_VER >= 1500)
721 /* sdkddkver.h first shipped with Platform SDK v6.0A included with VS2008 */
722 #include <sdkddkver.h>
723 #if defined(NTDDI_WIN10_RS4)
724 #define USE_UNIX_SOCKETS
725 #endif
726 #endif
727 
728 /* ---------------------------------------------------------------- */
729 /*                       ADDITIONAL DEFINITIONS                     */
730 /* ---------------------------------------------------------------- */
731 
732 /* Define cpu-machine-OS */
733 #undef OS
734 #if defined(_M_IX86) || defined(__i386__) /* x86 (MSVC or gcc) */
735 #define OS "i386-pc-win32"
736 #elif defined(_M_X64) || defined(__x86_64__) /* x86_64 (MSVC >=2005 or gcc) */
737 #define OS "x86_64-pc-win32"
738 #elif defined(_M_IA64) /* Itanium */
739 #define OS "ia64-pc-win32"
740 #else
741 #define OS "unknown-pc-win32"
742 #endif
743 
744 /* Name of package */
745 #define PACKAGE "curl"
746 
747 /* If you want to build curl with the built-in manual */
748 #define USE_MANUAL 1
749 
750 #if defined(__POCC__) || defined(USE_IPV6)
751 #  define ENABLE_IPV6 1
752 #endif
753 
754 #endif /* HEADER_CURL_CONFIG_WIN32_H */
755