1324c9471Sopenharmony_ci#ifndef __CARES_BUILD_H
2324c9471Sopenharmony_ci#define __CARES_BUILD_H
3324c9471Sopenharmony_ci
4324c9471Sopenharmony_ci
5324c9471Sopenharmony_ci/* Copyright (C) 2009 - 2021 by Daniel Stenberg et al
6324c9471Sopenharmony_ci *
7324c9471Sopenharmony_ci * Permission to use, copy, modify, and distribute this software and its
8324c9471Sopenharmony_ci * documentation for any purpose and without fee is hereby granted, provided
9324c9471Sopenharmony_ci * that the above copyright notice appear in all copies and that both that
10324c9471Sopenharmony_ci * copyright notice and this permission notice appear in supporting
11324c9471Sopenharmony_ci * documentation, and that the name of M.I.T. not be used in advertising or
12324c9471Sopenharmony_ci * publicity pertaining to distribution of the software without specific,
13324c9471Sopenharmony_ci * written prior permission.  M.I.T. makes no representations about the
14324c9471Sopenharmony_ci * suitability of this software for any purpose.  It is provided "as is"
15324c9471Sopenharmony_ci * without express or implied warranty.
16324c9471Sopenharmony_ci */
17324c9471Sopenharmony_ci
18324c9471Sopenharmony_ci/* ================================================================ */
19324c9471Sopenharmony_ci/*               NOTES FOR CONFIGURE CAPABLE SYSTEMS                */
20324c9471Sopenharmony_ci/* ================================================================ */
21324c9471Sopenharmony_ci
22324c9471Sopenharmony_ci/*
23324c9471Sopenharmony_ci * NOTE 1:
24324c9471Sopenharmony_ci * -------
25324c9471Sopenharmony_ci *
26324c9471Sopenharmony_ci * Nothing in this file is intended to be modified or adjusted by the
27324c9471Sopenharmony_ci * c-ares library user nor by the c-ares library builder.
28324c9471Sopenharmony_ci *
29324c9471Sopenharmony_ci * If you think that something actually needs to be changed, adjusted
30324c9471Sopenharmony_ci * or fixed in this file, then, report it on the c-ares development
31324c9471Sopenharmony_ci * mailing list: http://lists.haxx.se/listinfo/c-ares/
32324c9471Sopenharmony_ci *
33324c9471Sopenharmony_ci * This header file shall only export symbols which are 'cares' or 'CARES'
34324c9471Sopenharmony_ci * prefixed, otherwise public name space would be polluted.
35324c9471Sopenharmony_ci *
36324c9471Sopenharmony_ci * NOTE 2:
37324c9471Sopenharmony_ci * -------
38324c9471Sopenharmony_ci *
39324c9471Sopenharmony_ci * Right now you might be staring at file ares_build.h.in or ares_build.h,
40324c9471Sopenharmony_ci * this is due to the following reason:
41324c9471Sopenharmony_ci *
42324c9471Sopenharmony_ci * On systems capable of running the configure script, the configure process
43324c9471Sopenharmony_ci * will overwrite the distributed ares_build.h file with one that is suitable
44324c9471Sopenharmony_ci * and specific to the library being configured and built, which is generated
45324c9471Sopenharmony_ci * from the ares_build.h.in template file.
46324c9471Sopenharmony_ci *
47324c9471Sopenharmony_ci */
48324c9471Sopenharmony_ci
49324c9471Sopenharmony_ci/* ================================================================ */
50324c9471Sopenharmony_ci/*  DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE  */
51324c9471Sopenharmony_ci/* ================================================================ */
52324c9471Sopenharmony_ci
53324c9471Sopenharmony_ci#ifdef CARES_TYPEOF_ARES_SOCKLEN_T
54324c9471Sopenharmony_ci#  error "CARES_TYPEOF_ARES_SOCKLEN_T shall not be defined except in ares_build.h"
55324c9471Sopenharmony_ci   Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_already_defined
56324c9471Sopenharmony_ci#endif
57324c9471Sopenharmony_ci
58324c9471Sopenharmony_ci#undef CARES_HAVE_ARPA_NAMESER_H
59324c9471Sopenharmony_ci#undef CARES_HAVE_ARPA_NAMESER_COMPAT_H
60324c9471Sopenharmony_ci
61324c9471Sopenharmony_ci/* ================================================================ */
62324c9471Sopenharmony_ci/*  EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY  */
63324c9471Sopenharmony_ci/* ================================================================ */
64324c9471Sopenharmony_ci
65324c9471Sopenharmony_ci/* Configure process defines this to 1 when it finds out that system  */
66324c9471Sopenharmony_ci/* header file ws2tcpip.h must be included by the external interface. */
67324c9471Sopenharmony_ci#undef CARES_PULL_WS2TCPIP_H
68324c9471Sopenharmony_ci#ifdef CARES_PULL_WS2TCPIP_H
69324c9471Sopenharmony_ci#  ifndef WIN32_LEAN_AND_MEAN
70324c9471Sopenharmony_ci#    define WIN32_LEAN_AND_MEAN
71324c9471Sopenharmony_ci#  endif
72324c9471Sopenharmony_ci#  include <windows.h>
73324c9471Sopenharmony_ci#  include <winsock2.h>
74324c9471Sopenharmony_ci#  include <ws2tcpip.h>
75324c9471Sopenharmony_ci#endif
76324c9471Sopenharmony_ci
77324c9471Sopenharmony_ci/* Configure process defines this to 1 when it finds out that system   */
78324c9471Sopenharmony_ci/* header file sys/types.h must be included by the external interface. */
79324c9471Sopenharmony_ci#undef CARES_PULL_SYS_TYPES_H
80324c9471Sopenharmony_ci#ifdef CARES_PULL_SYS_TYPES_H
81324c9471Sopenharmony_ci#  include <sys/types.h>
82324c9471Sopenharmony_ci#endif
83324c9471Sopenharmony_ci
84324c9471Sopenharmony_ci/* Configure process defines this to 1 when it finds out that system    */
85324c9471Sopenharmony_ci/* header file sys/socket.h must be included by the external interface. */
86324c9471Sopenharmony_ci#undef CARES_PULL_SYS_SOCKET_H
87324c9471Sopenharmony_ci#ifdef CARES_PULL_SYS_SOCKET_H
88324c9471Sopenharmony_ci#  include <sys/socket.h>
89324c9471Sopenharmony_ci#endif
90324c9471Sopenharmony_ci
91324c9471Sopenharmony_ci/* Integral data type used for ares_socklen_t. */
92324c9471Sopenharmony_ci#undef CARES_TYPEOF_ARES_SOCKLEN_T
93324c9471Sopenharmony_ci
94324c9471Sopenharmony_ci/* Data type definition of ares_socklen_t. */
95324c9471Sopenharmony_citypedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t;
96324c9471Sopenharmony_ci
97324c9471Sopenharmony_ci/* Integral data type used for ares_ssize_t. */
98324c9471Sopenharmony_ci#undef CARES_TYPEOF_ARES_SSIZE_T
99324c9471Sopenharmony_ci
100324c9471Sopenharmony_ci/* Data type definition of ares_ssize_t. */
101324c9471Sopenharmony_citypedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t;
102324c9471Sopenharmony_ci
103324c9471Sopenharmony_ci#endif /* __CARES_BUILD_H */
104