1/* include/curl/curlbuild.h.  Generated from curlbuild.h.in by configure.  */
2#ifndef __CURL_CURLBUILD_H
3#define __CURL_CURLBUILD_H
4/***************************************************************************
5 *                                  _   _ ____  _
6 *  Project                     ___| | | |  _ \| |
7 *                             / __| | | | |_) | |
8 *                            | (__| |_| |  _ <| |___
9 *                             \___|\___/|_| \_\_____|
10 *
11 * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
12 *
13 * This software is licensed as described in the file COPYING, which
14 * you should have received as part of this distribution. The terms
15 * are also available at http://curl.haxx.se/docs/copyright.html.
16 *
17 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
18 * copies of the Software, and permit persons to whom the Software is
19 * furnished to do so, under the terms of the COPYING file.
20 *
21 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
22 * KIND, either express or implied.
23 *
24 * $Id: curlbuild.h.in,v 1.8 2009-04-29 15:15:38 yangtse Exp $
25 ***************************************************************************/
26
27/* ================================================================ */
28/*               NOTES FOR CONFIGURE CAPABLE SYSTEMS                */
29/* ================================================================ */
30
31/*
32 * NOTE 1:
33 * -------
34 *
35 * Nothing in this file is intended to be modified or adjusted by the
36 * curl library user nor by the curl library builder.
37 *
38 * If you think that something actually needs to be changed, adjusted
39 * or fixed in this file, then, report it on the libcurl development
40 * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
41 *
42 * This header file shall only export symbols which are 'curl' or 'CURL'
43 * prefixed, otherwise public name space would be polluted.
44 *
45 * NOTE 2:
46 * -------
47 *
48 * Right now you might be staring at file include/curl/curlbuild.h.in or
49 * at file include/curl/curlbuild.h, this is due to the following reason:
50 *
51 * On systems capable of running the configure script, the configure process
52 * will overwrite the distributed include/curl/curlbuild.h file with one that
53 * is suitable and specific to the library being configured and built, which
54 * is generated from the include/curl/curlbuild.h.in template file.
55 *
56 */
57
58/* ================================================================ */
59/*  DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE  */
60/* ================================================================ */
61
62#ifdef CURL_SIZEOF_LONG
63#  error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h"
64   Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined
65#endif
66
67#ifdef CURL_TYPEOF_CURL_SOCKLEN_T
68#  error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
69   Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined
70#endif
71
72#ifdef CURL_SIZEOF_CURL_SOCKLEN_T
73#  error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
74   Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined
75#endif
76
77#ifdef CURL_TYPEOF_CURL_OFF_T
78#  error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
79   Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined
80#endif
81
82#ifdef CURL_FORMAT_CURL_OFF_T
83#  error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h"
84   Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined
85#endif
86
87#ifdef CURL_FORMAT_CURL_OFF_TU
88#  error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h"
89   Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined
90#endif
91
92#ifdef CURL_FORMAT_OFF_T
93#  error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h"
94   Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined
95#endif
96
97#ifdef CURL_SIZEOF_CURL_OFF_T
98#  error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
99   Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined
100#endif
101
102#ifdef CURL_SUFFIX_CURL_OFF_T
103#  error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h"
104   Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined
105#endif
106
107#ifdef CURL_SUFFIX_CURL_OFF_TU
108#  error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h"
109   Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined
110#endif
111
112/* ================================================================ */
113/*  EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY  */
114/* ================================================================ */
115
116/* Configure process defines this to 1 when it finds out that system  */
117/* header file ws2tcpip.h must be included by the external interface. */
118/* #undef CURL_PULL_WS2TCPIP_H */
119#ifdef CURL_PULL_WS2TCPIP_H
120#  ifndef WIN32_LEAN_AND_MEAN
121#    define WIN32_LEAN_AND_MEAN
122#  endif
123#  include <windows.h>
124#  include <winsock2.h>
125#  include <ws2tcpip.h>
126#endif
127
128/* Configure process defines this to 1 when it finds out that system   */
129/* header file sys/types.h must be included by the external interface. */
130#define CURL_PULL_SYS_TYPES_H 1
131#ifdef CURL_PULL_SYS_TYPES_H
132#  include <sys/types.h>
133#endif
134
135/* Configure process defines this to 1 when it finds out that system */
136/* header file stdint.h must be included by the external interface.  */
137/* #undef CURL_PULL_STDINT_H */
138#ifdef CURL_PULL_STDINT_H
139#  include <stdint.h>
140#endif
141
142/* Configure process defines this to 1 when it finds out that system  */
143/* header file inttypes.h must be included by the external interface. */
144/* #undef CURL_PULL_INTTYPES_H */
145#ifdef CURL_PULL_INTTYPES_H
146#  include <inttypes.h>
147#endif
148
149/* Configure process defines this to 1 when it finds out that system    */
150/* header file sys/socket.h must be included by the external interface. */
151#define CURL_PULL_SYS_SOCKET_H 1
152#ifdef CURL_PULL_SYS_SOCKET_H
153#  include <sys/socket.h>
154#endif
155
156/* The size of `long', as computed by sizeof. */
157#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__)) ||      \
158    defined(__aarch64__)
159#define CURL_SIZEOF_LONG 8
160#else
161#define CURL_SIZEOF_LONG 4
162#endif
163
164/* Integral data type used for curl_socklen_t. */
165#define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
166
167/* The size of `curl_socklen_t', as computed by sizeof. */
168#define CURL_SIZEOF_CURL_SOCKLEN_T 4
169
170/* Data type definition of curl_socklen_t. */
171typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
172
173/* Signed integral data type used for curl_off_t. */
174#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__)) ||      \
175    defined(__aarch64__)
176#define CURL_TYPEOF_CURL_OFF_T long
177#else
178#define CURL_TYPEOF_CURL_OFF_T int64_t
179#endif
180
181/* Data type definition of curl_off_t. */
182typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
183
184/* curl_off_t formatting string directive without "%" conversion specifier. */
185#define CURL_FORMAT_CURL_OFF_T "ld"
186
187/* unsigned curl_off_t formatting string without "%" conversion specifier. */
188#define CURL_FORMAT_CURL_OFF_TU "lu"
189
190/* curl_off_t formatting string directive with "%" conversion specifier. */
191#define CURL_FORMAT_OFF_T "%ld"
192
193/* The size of `curl_off_t', as computed by sizeof. */
194#define CURL_SIZEOF_CURL_OFF_T 8
195
196/* curl_off_t constant suffix. */
197#define CURL_SUFFIX_CURL_OFF_T L
198
199/* unsigned curl_off_t constant suffix. */
200#define CURL_SUFFIX_CURL_OFF_TU UL
201
202#endif /* __CURL_CURLBUILD_H */
203