Imported Upstream version 7.40.0
[platform/upstream/curl.git] / include / curl / curlbuild.h
1 #ifndef __CURL_CURLBUILD_H
2 #define __CURL_CURLBUILD_H
3 /***************************************************************************
4  *                                  _   _ ____  _
5  *  Project                     ___| | | |  _ \| |
6  *                             / __| | | | |_) | |
7  *                            | (__| |_| |  _ <| |___
8  *                             \___|\___/|_| \_\_____|
9  *
10  * Copyright (C) 1998 - 2013, 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 http://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 /*               NOTES FOR CONFIGURE CAPABLE SYSTEMS                */
27 /* ================================================================ */
28
29 /*
30  * NOTE 1:
31  * -------
32  *
33  * See file include/curl/curlbuild.h.in, run configure, and forget
34  * that this file exists it is only used for non-configure systems.
35  * But you can keep reading if you want ;-)
36  *
37  */
38
39 /* ================================================================ */
40 /*                 NOTES FOR NON-CONFIGURE SYSTEMS                  */
41 /* ================================================================ */
42
43 /*
44  * NOTE 1:
45  * -------
46  *
47  * Nothing in this file is intended to be modified or adjusted by the
48  * curl library user nor by the curl library builder.
49  *
50  * If you think that something actually needs to be changed, adjusted
51  * or fixed in this file, then, report it on the libcurl development
52  * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
53  *
54  * Try to keep one section per platform, compiler and architecture,
55  * otherwise, if an existing section is reused for a different one and
56  * later on the original is adjusted, probably the piggybacking one can
57  * be adversely changed.
58  *
59  * In order to differentiate between platforms/compilers/architectures
60  * use only compiler built in predefined preprocessor symbols.
61  *
62  * This header file shall only export symbols which are 'curl' or 'CURL'
63  * prefixed, otherwise public name space would be polluted.
64  *
65  * NOTE 2:
66  * -------
67  *
68  * For any given platform/compiler curl_off_t must be typedef'ed to a
69  * 64-bit wide signed integral data type. The width of this data type
70  * must remain constant and independent of any possible large file
71  * support settings.
72  *
73  * As an exception to the above, curl_off_t shall be typedef'ed to a
74  * 32-bit wide signed integral data type if there is no 64-bit type.
75  *
76  * As a general rule, curl_off_t shall not be mapped to off_t. This
77  * rule shall only be violated if off_t is the only 64-bit data type
78  * available and the size of off_t is independent of large file support
79  * settings. Keep your build on the safe side avoiding an off_t gating.
80  * If you have a 64-bit off_t then take for sure that another 64-bit
81  * data type exists, dig deeper and you will find it.
82  *
83  * NOTE 3:
84  * -------
85  *
86  * Right now you might be staring at file include/curl/curlbuild.h.dist or
87  * at file include/curl/curlbuild.h, this is due to the following reason:
88  * file include/curl/curlbuild.h.dist is renamed to include/curl/curlbuild.h
89  * when the libcurl source code distribution archive file is created.
90  *
91  * File include/curl/curlbuild.h.dist is not included in the distribution
92  * archive. File include/curl/curlbuild.h is not present in the git tree.
93  *
94  * The distributed include/curl/curlbuild.h file is only intended to be used
95  * on systems which can not run the also distributed configure script.
96  *
97  * On systems capable of running the configure script, the configure process
98  * will overwrite the distributed include/curl/curlbuild.h file with one that
99  * is suitable and specific to the library being configured and built, which
100  * is generated from the include/curl/curlbuild.h.in template file.
101  *
102  * If you check out from git on a non-configure platform, you must run the
103  * appropriate buildconf* script to set up curlbuild.h and other local files.
104  *
105  */
106
107 /* ================================================================ */
108 /*  DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE  */
109 /* ================================================================ */
110
111 #ifdef CURL_SIZEOF_LONG
112 #  error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h"
113    Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined
114 #endif
115
116 #ifdef CURL_TYPEOF_CURL_SOCKLEN_T
117 #  error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
118    Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined
119 #endif
120
121 #ifdef CURL_SIZEOF_CURL_SOCKLEN_T
122 #  error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
123    Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined
124 #endif
125
126 #ifdef CURL_TYPEOF_CURL_OFF_T
127 #  error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
128    Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined
129 #endif
130
131 #ifdef CURL_FORMAT_CURL_OFF_T
132 #  error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h"
133    Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined
134 #endif
135
136 #ifdef CURL_FORMAT_CURL_OFF_TU
137 #  error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h"
138    Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined
139 #endif
140
141 #ifdef CURL_FORMAT_OFF_T
142 #  error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h"
143    Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined
144 #endif
145
146 #ifdef CURL_SIZEOF_CURL_OFF_T
147 #  error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
148    Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined
149 #endif
150
151 #ifdef CURL_SUFFIX_CURL_OFF_T
152 #  error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h"
153    Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined
154 #endif
155
156 #ifdef CURL_SUFFIX_CURL_OFF_TU
157 #  error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h"
158    Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined
159 #endif
160
161 /* ================================================================ */
162 /*    EXTERNAL INTERFACE SETTINGS FOR NON-CONFIGURE SYSTEMS ONLY    */
163 /* ================================================================ */
164
165 #if defined(__DJGPP__) || defined(__GO32__)
166 #  if defined(__DJGPP__) && (__DJGPP__ > 1)
167 #    define CURL_SIZEOF_LONG           4
168 #    define CURL_TYPEOF_CURL_OFF_T     long long
169 #    define CURL_FORMAT_CURL_OFF_T     "lld"
170 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
171 #    define CURL_FORMAT_OFF_T          "%lld"
172 #    define CURL_SIZEOF_CURL_OFF_T     8
173 #    define CURL_SUFFIX_CURL_OFF_T     LL
174 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
175 #  else
176 #    define CURL_SIZEOF_LONG           4
177 #    define CURL_TYPEOF_CURL_OFF_T     long
178 #    define CURL_FORMAT_CURL_OFF_T     "ld"
179 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
180 #    define CURL_FORMAT_OFF_T          "%ld"
181 #    define CURL_SIZEOF_CURL_OFF_T     4
182 #    define CURL_SUFFIX_CURL_OFF_T     L
183 #    define CURL_SUFFIX_CURL_OFF_TU    UL
184 #  endif
185 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
186 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
187
188 #elif defined(__SALFORDC__)
189 #  define CURL_SIZEOF_LONG           4
190 #  define CURL_TYPEOF_CURL_OFF_T     long
191 #  define CURL_FORMAT_CURL_OFF_T     "ld"
192 #  define CURL_FORMAT_CURL_OFF_TU    "lu"
193 #  define CURL_FORMAT_OFF_T          "%ld"
194 #  define CURL_SIZEOF_CURL_OFF_T     4
195 #  define CURL_SUFFIX_CURL_OFF_T     L
196 #  define CURL_SUFFIX_CURL_OFF_TU    UL
197 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
198 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
199
200 #elif defined(__BORLANDC__)
201 #  if (__BORLANDC__ < 0x520)
202 #    define CURL_SIZEOF_LONG           4
203 #    define CURL_TYPEOF_CURL_OFF_T     long
204 #    define CURL_FORMAT_CURL_OFF_T     "ld"
205 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
206 #    define CURL_FORMAT_OFF_T          "%ld"
207 #    define CURL_SIZEOF_CURL_OFF_T     4
208 #    define CURL_SUFFIX_CURL_OFF_T     L
209 #    define CURL_SUFFIX_CURL_OFF_TU    UL
210 #  else
211 #    define CURL_SIZEOF_LONG           4
212 #    define CURL_TYPEOF_CURL_OFF_T     __int64
213 #    define CURL_FORMAT_CURL_OFF_T     "I64d"
214 #    define CURL_FORMAT_CURL_OFF_TU    "I64u"
215 #    define CURL_FORMAT_OFF_T          "%I64d"
216 #    define CURL_SIZEOF_CURL_OFF_T     8
217 #    define CURL_SUFFIX_CURL_OFF_T     i64
218 #    define CURL_SUFFIX_CURL_OFF_TU    ui64
219 #  endif
220 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
221 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
222
223 #elif defined(__TURBOC__)
224 #  define CURL_SIZEOF_LONG           4
225 #  define CURL_TYPEOF_CURL_OFF_T     long
226 #  define CURL_FORMAT_CURL_OFF_T     "ld"
227 #  define CURL_FORMAT_CURL_OFF_TU    "lu"
228 #  define CURL_FORMAT_OFF_T          "%ld"
229 #  define CURL_SIZEOF_CURL_OFF_T     4
230 #  define CURL_SUFFIX_CURL_OFF_T     L
231 #  define CURL_SUFFIX_CURL_OFF_TU    UL
232 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
233 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
234
235 #elif defined(__WATCOMC__)
236 #  if defined(__386__)
237 #    define CURL_SIZEOF_LONG           4
238 #    define CURL_TYPEOF_CURL_OFF_T     __int64
239 #    define CURL_FORMAT_CURL_OFF_T     "I64d"
240 #    define CURL_FORMAT_CURL_OFF_TU    "I64u"
241 #    define CURL_FORMAT_OFF_T          "%I64d"
242 #    define CURL_SIZEOF_CURL_OFF_T     8
243 #    define CURL_SUFFIX_CURL_OFF_T     i64
244 #    define CURL_SUFFIX_CURL_OFF_TU    ui64
245 #  else
246 #    define CURL_SIZEOF_LONG           4
247 #    define CURL_TYPEOF_CURL_OFF_T     long
248 #    define CURL_FORMAT_CURL_OFF_T     "ld"
249 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
250 #    define CURL_FORMAT_OFF_T          "%ld"
251 #    define CURL_SIZEOF_CURL_OFF_T     4
252 #    define CURL_SUFFIX_CURL_OFF_T     L
253 #    define CURL_SUFFIX_CURL_OFF_TU    UL
254 #  endif
255 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
256 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
257
258 #elif defined(__POCC__)
259 #  if (__POCC__ < 280)
260 #    define CURL_SIZEOF_LONG           4
261 #    define CURL_TYPEOF_CURL_OFF_T     long
262 #    define CURL_FORMAT_CURL_OFF_T     "ld"
263 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
264 #    define CURL_FORMAT_OFF_T          "%ld"
265 #    define CURL_SIZEOF_CURL_OFF_T     4
266 #    define CURL_SUFFIX_CURL_OFF_T     L
267 #    define CURL_SUFFIX_CURL_OFF_TU    UL
268 #  elif defined(_MSC_VER)
269 #    define CURL_SIZEOF_LONG           4
270 #    define CURL_TYPEOF_CURL_OFF_T     __int64
271 #    define CURL_FORMAT_CURL_OFF_T     "I64d"
272 #    define CURL_FORMAT_CURL_OFF_TU    "I64u"
273 #    define CURL_FORMAT_OFF_T          "%I64d"
274 #    define CURL_SIZEOF_CURL_OFF_T     8
275 #    define CURL_SUFFIX_CURL_OFF_T     i64
276 #    define CURL_SUFFIX_CURL_OFF_TU    ui64
277 #  else
278 #    define CURL_SIZEOF_LONG           4
279 #    define CURL_TYPEOF_CURL_OFF_T     long long
280 #    define CURL_FORMAT_CURL_OFF_T     "lld"
281 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
282 #    define CURL_FORMAT_OFF_T          "%lld"
283 #    define CURL_SIZEOF_CURL_OFF_T     8
284 #    define CURL_SUFFIX_CURL_OFF_T     LL
285 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
286 #  endif
287 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
288 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
289
290 #elif defined(__LCC__)
291 #  define CURL_SIZEOF_LONG           4
292 #  define CURL_TYPEOF_CURL_OFF_T     long
293 #  define CURL_FORMAT_CURL_OFF_T     "ld"
294 #  define CURL_FORMAT_CURL_OFF_TU    "lu"
295 #  define CURL_FORMAT_OFF_T          "%ld"
296 #  define CURL_SIZEOF_CURL_OFF_T     4
297 #  define CURL_SUFFIX_CURL_OFF_T     L
298 #  define CURL_SUFFIX_CURL_OFF_TU    UL
299 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
300 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
301
302 #elif defined(__SYMBIAN32__)
303 #  if defined(__EABI__)  /* Treat all ARM compilers equally */
304 #    define CURL_SIZEOF_LONG           4
305 #    define CURL_TYPEOF_CURL_OFF_T     long long
306 #    define CURL_FORMAT_CURL_OFF_T     "lld"
307 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
308 #    define CURL_FORMAT_OFF_T          "%lld"
309 #    define CURL_SIZEOF_CURL_OFF_T     8
310 #    define CURL_SUFFIX_CURL_OFF_T     LL
311 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
312 #  elif defined(__CW32__)
313 #    pragma longlong on
314 #    define CURL_SIZEOF_LONG           4
315 #    define CURL_TYPEOF_CURL_OFF_T     long long
316 #    define CURL_FORMAT_CURL_OFF_T     "lld"
317 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
318 #    define CURL_FORMAT_OFF_T          "%lld"
319 #    define CURL_SIZEOF_CURL_OFF_T     8
320 #    define CURL_SUFFIX_CURL_OFF_T     LL
321 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
322 #  elif defined(__VC32__)
323 #    define CURL_SIZEOF_LONG           4
324 #    define CURL_TYPEOF_CURL_OFF_T     __int64
325 #    define CURL_FORMAT_CURL_OFF_T     "lld"
326 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
327 #    define CURL_FORMAT_OFF_T          "%lld"
328 #    define CURL_SIZEOF_CURL_OFF_T     8
329 #    define CURL_SUFFIX_CURL_OFF_T     LL
330 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
331 #  endif
332 #  define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
333 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
334
335 #elif defined(__MWERKS__)
336 #  define CURL_SIZEOF_LONG           4
337 #  define CURL_TYPEOF_CURL_OFF_T     long long
338 #  define CURL_FORMAT_CURL_OFF_T     "lld"
339 #  define CURL_FORMAT_CURL_OFF_TU    "llu"
340 #  define CURL_FORMAT_OFF_T          "%lld"
341 #  define CURL_SIZEOF_CURL_OFF_T     8
342 #  define CURL_SUFFIX_CURL_OFF_T     LL
343 #  define CURL_SUFFIX_CURL_OFF_TU    ULL
344 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
345 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
346
347 #elif defined(_WIN32_WCE)
348 #  define CURL_SIZEOF_LONG           4
349 #  define CURL_TYPEOF_CURL_OFF_T     __int64
350 #  define CURL_FORMAT_CURL_OFF_T     "I64d"
351 #  define CURL_FORMAT_CURL_OFF_TU    "I64u"
352 #  define CURL_FORMAT_OFF_T          "%I64d"
353 #  define CURL_SIZEOF_CURL_OFF_T     8
354 #  define CURL_SUFFIX_CURL_OFF_T     i64
355 #  define CURL_SUFFIX_CURL_OFF_TU    ui64
356 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
357 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
358
359 #elif defined(__MINGW32__)
360 #  define CURL_SIZEOF_LONG           4
361 #  define CURL_TYPEOF_CURL_OFF_T     long long
362 #  define CURL_FORMAT_CURL_OFF_T     "I64d"
363 #  define CURL_FORMAT_CURL_OFF_TU    "I64u"
364 #  define CURL_FORMAT_OFF_T          "%I64d"
365 #  define CURL_SIZEOF_CURL_OFF_T     8
366 #  define CURL_SUFFIX_CURL_OFF_T     LL
367 #  define CURL_SUFFIX_CURL_OFF_TU    ULL
368 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
369 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
370
371 #elif defined(__VMS)
372 #  if defined(__VAX)
373 #    define CURL_SIZEOF_LONG           4
374 #    define CURL_TYPEOF_CURL_OFF_T     long
375 #    define CURL_FORMAT_CURL_OFF_T     "ld"
376 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
377 #    define CURL_FORMAT_OFF_T          "%ld"
378 #    define CURL_SIZEOF_CURL_OFF_T     4
379 #    define CURL_SUFFIX_CURL_OFF_T     L
380 #    define CURL_SUFFIX_CURL_OFF_TU    UL
381 #  else
382 #    define CURL_SIZEOF_LONG           4
383 #    define CURL_TYPEOF_CURL_OFF_T     long long
384 #    define CURL_FORMAT_CURL_OFF_T     "lld"
385 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
386 #    define CURL_FORMAT_OFF_T          "%lld"
387 #    define CURL_SIZEOF_CURL_OFF_T     8
388 #    define CURL_SUFFIX_CURL_OFF_T     LL
389 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
390 #  endif
391 #  define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
392 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
393
394 #elif defined(__OS400__)
395 #  if defined(__ILEC400__)
396 #    define CURL_SIZEOF_LONG           4
397 #    define CURL_TYPEOF_CURL_OFF_T     long long
398 #    define CURL_FORMAT_CURL_OFF_T     "lld"
399 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
400 #    define CURL_FORMAT_OFF_T          "%lld"
401 #    define CURL_SIZEOF_CURL_OFF_T     8
402 #    define CURL_SUFFIX_CURL_OFF_T     LL
403 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
404 #    define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
405 #    define CURL_SIZEOF_CURL_SOCKLEN_T 4
406 #    define CURL_PULL_SYS_TYPES_H      1
407 #    define CURL_PULL_SYS_SOCKET_H     1
408 #  endif
409
410 #elif defined(__MVS__)
411 #  if defined(__IBMC__) || defined(__IBMCPP__)
412 #    if defined(_ILP32)
413 #      define CURL_SIZEOF_LONG           4
414 #    elif defined(_LP64)
415 #      define CURL_SIZEOF_LONG           8
416 #    endif
417 #    if defined(_LONG_LONG)
418 #      define CURL_TYPEOF_CURL_OFF_T     long long
419 #      define CURL_FORMAT_CURL_OFF_T     "lld"
420 #      define CURL_FORMAT_CURL_OFF_TU    "llu"
421 #      define CURL_FORMAT_OFF_T          "%lld"
422 #      define CURL_SIZEOF_CURL_OFF_T     8
423 #      define CURL_SUFFIX_CURL_OFF_T     LL
424 #      define CURL_SUFFIX_CURL_OFF_TU    ULL
425 #    elif defined(_LP64)
426 #      define CURL_TYPEOF_CURL_OFF_T     long
427 #      define CURL_FORMAT_CURL_OFF_T     "ld"
428 #      define CURL_FORMAT_CURL_OFF_TU    "lu"
429 #      define CURL_FORMAT_OFF_T          "%ld"
430 #      define CURL_SIZEOF_CURL_OFF_T     8
431 #      define CURL_SUFFIX_CURL_OFF_T     L
432 #      define CURL_SUFFIX_CURL_OFF_TU    UL
433 #    else
434 #      define CURL_TYPEOF_CURL_OFF_T     long
435 #      define CURL_FORMAT_CURL_OFF_T     "ld"
436 #      define CURL_FORMAT_CURL_OFF_TU    "lu"
437 #      define CURL_FORMAT_OFF_T          "%ld"
438 #      define CURL_SIZEOF_CURL_OFF_T     4
439 #      define CURL_SUFFIX_CURL_OFF_T     L
440 #      define CURL_SUFFIX_CURL_OFF_TU    UL
441 #    endif
442 #    define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
443 #    define CURL_SIZEOF_CURL_SOCKLEN_T 4
444 #    define CURL_PULL_SYS_TYPES_H      1
445 #    define CURL_PULL_SYS_SOCKET_H     1
446 #  endif
447
448 #elif defined(__370__)
449 #  if defined(__IBMC__) || defined(__IBMCPP__)
450 #    if defined(_ILP32)
451 #      define CURL_SIZEOF_LONG           4
452 #    elif defined(_LP64)
453 #      define CURL_SIZEOF_LONG           8
454 #    endif
455 #    if defined(_LONG_LONG)
456 #      define CURL_TYPEOF_CURL_OFF_T     long long
457 #      define CURL_FORMAT_CURL_OFF_T     "lld"
458 #      define CURL_FORMAT_CURL_OFF_TU    "llu"
459 #      define CURL_FORMAT_OFF_T          "%lld"
460 #      define CURL_SIZEOF_CURL_OFF_T     8
461 #      define CURL_SUFFIX_CURL_OFF_T     LL
462 #      define CURL_SUFFIX_CURL_OFF_TU    ULL
463 #    elif defined(_LP64)
464 #      define CURL_TYPEOF_CURL_OFF_T     long
465 #      define CURL_FORMAT_CURL_OFF_T     "ld"
466 #      define CURL_FORMAT_CURL_OFF_TU    "lu"
467 #      define CURL_FORMAT_OFF_T          "%ld"
468 #      define CURL_SIZEOF_CURL_OFF_T     8
469 #      define CURL_SUFFIX_CURL_OFF_T     L
470 #      define CURL_SUFFIX_CURL_OFF_TU    UL
471 #    else
472 #      define CURL_TYPEOF_CURL_OFF_T     long
473 #      define CURL_FORMAT_CURL_OFF_T     "ld"
474 #      define CURL_FORMAT_CURL_OFF_TU    "lu"
475 #      define CURL_FORMAT_OFF_T          "%ld"
476 #      define CURL_SIZEOF_CURL_OFF_T     4
477 #      define CURL_SUFFIX_CURL_OFF_T     L
478 #      define CURL_SUFFIX_CURL_OFF_TU    UL
479 #    endif
480 #    define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
481 #    define CURL_SIZEOF_CURL_SOCKLEN_T 4
482 #    define CURL_PULL_SYS_TYPES_H      1
483 #    define CURL_PULL_SYS_SOCKET_H     1
484 #  endif
485
486 #elif defined(TPF)
487 #  define CURL_SIZEOF_LONG           8
488 #  define CURL_TYPEOF_CURL_OFF_T     long
489 #  define CURL_FORMAT_CURL_OFF_T     "ld"
490 #  define CURL_FORMAT_CURL_OFF_TU    "lu"
491 #  define CURL_FORMAT_OFF_T          "%ld"
492 #  define CURL_SIZEOF_CURL_OFF_T     8
493 #  define CURL_SUFFIX_CURL_OFF_T     L
494 #  define CURL_SUFFIX_CURL_OFF_TU    UL
495 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
496 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
497
498 /* ===================================== */
499 /*    KEEP MSVC THE PENULTIMATE ENTRY    */
500 /* ===================================== */
501
502 #elif defined(_MSC_VER)
503 #  if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
504 #    define CURL_SIZEOF_LONG           4
505 #    define CURL_TYPEOF_CURL_OFF_T     __int64
506 #    define CURL_FORMAT_CURL_OFF_T     "I64d"
507 #    define CURL_FORMAT_CURL_OFF_TU    "I64u"
508 #    define CURL_FORMAT_OFF_T          "%I64d"
509 #    define CURL_SIZEOF_CURL_OFF_T     8
510 #    define CURL_SUFFIX_CURL_OFF_T     i64
511 #    define CURL_SUFFIX_CURL_OFF_TU    ui64
512 #  else
513 #    define CURL_SIZEOF_LONG           4
514 #    define CURL_TYPEOF_CURL_OFF_T     long
515 #    define CURL_FORMAT_CURL_OFF_T     "ld"
516 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
517 #    define CURL_FORMAT_OFF_T          "%ld"
518 #    define CURL_SIZEOF_CURL_OFF_T     4
519 #    define CURL_SUFFIX_CURL_OFF_T     L
520 #    define CURL_SUFFIX_CURL_OFF_TU    UL
521 #  endif
522 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
523 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
524
525 /* ===================================== */
526 /*    KEEP GENERIC GCC THE LAST ENTRY    */
527 /* ===================================== */
528
529 #elif defined(__GNUC__)
530 #  if defined(__ILP32__) || \
531       defined(__i386__) || defined(__ppc__) || defined(__arm__) || defined(__sparc__)
532 #    define CURL_SIZEOF_LONG           4
533 #    define CURL_TYPEOF_CURL_OFF_T     long long
534 #    define CURL_FORMAT_CURL_OFF_T     "lld"
535 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
536 #    define CURL_FORMAT_OFF_T          "%lld"
537 #    define CURL_SIZEOF_CURL_OFF_T     8
538 #    define CURL_SUFFIX_CURL_OFF_T     LL
539 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
540 #  elif defined(__LP64__) || \
541         defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__)
542 #    define CURL_SIZEOF_LONG           8
543 #    define CURL_TYPEOF_CURL_OFF_T     long
544 #    define CURL_FORMAT_CURL_OFF_T     "ld"
545 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
546 #    define CURL_FORMAT_OFF_T          "%ld"
547 #    define CURL_SIZEOF_CURL_OFF_T     8
548 #    define CURL_SUFFIX_CURL_OFF_T     L
549 #    define CURL_SUFFIX_CURL_OFF_TU    UL
550 #  endif
551 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
552 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
553 #  define CURL_PULL_SYS_TYPES_H      1
554 #  define CURL_PULL_SYS_SOCKET_H     1
555
556 #else
557 #  error "Unknown non-configure build target!"
558    Error Compilation_aborted_Unknown_non_configure_build_target
559 #endif
560
561 /* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file  */
562 /* sys/types.h is required here to properly make type definitions below. */
563 #ifdef CURL_PULL_SYS_TYPES_H
564 #  include <sys/types.h>
565 #endif
566
567 /* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file  */
568 /* sys/socket.h is required here to properly make type definitions below. */
569 #ifdef CURL_PULL_SYS_SOCKET_H
570 #  include <sys/socket.h>
571 #endif
572
573 /* Data type definition of curl_socklen_t. */
574
575 #ifdef CURL_TYPEOF_CURL_SOCKLEN_T
576   typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
577 #endif
578
579 /* Data type definition of curl_off_t. */
580
581 #ifdef CURL_TYPEOF_CURL_OFF_T
582   typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
583 #endif
584
585 #endif /* __CURL_CURLBUILD_H */