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 */
586