Home | History | Annotate | Download | only in curl
      1 #ifndef __CURL_CURLBUILD_H
      2 #define __CURL_CURLBUILD_H
      3 /***************************************************************************
      4  *                                  _   _ ____  _
      5  *  Project                     ___| | | |  _ \| |
      6  *                             / __| | | | |_) | |
      7  *                            | (__| |_| |  _ <| |___
      8  *                             \___|\___/|_| \_\_____|
      9  *
     10  * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel (a] 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 /*               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: https://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(__LP64__) && (defined(__ILP32__) || \
    531       defined(__i386__) || defined(__ppc__) || defined(__arm__) || \
    532       defined(__sparc__) || defined(__mips__) || defined(__sh__))
    533 #    define CURL_SIZEOF_LONG           4
    534 #    define CURL_TYPEOF_CURL_OFF_T     long long
    535 #    define CURL_FORMAT_CURL_OFF_T     "lld"
    536 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
    537 #    define CURL_FORMAT_OFF_T          "%lld"
    538 #    define CURL_SIZEOF_CURL_OFF_T     8
    539 #    define CURL_SUFFIX_CURL_OFF_T     LL
    540 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
    541 #  elif defined(__LP64__) || \
    542         defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__)
    543 #    define CURL_SIZEOF_LONG           8
    544 #    define CURL_TYPEOF_CURL_OFF_T     long
    545 #    define CURL_FORMAT_CURL_OFF_T     "ld"
    546 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
    547 #    define CURL_FORMAT_OFF_T          "%ld"
    548 #    define CURL_SIZEOF_CURL_OFF_T     8
    549 #    define CURL_SUFFIX_CURL_OFF_T     L
    550 #    define CURL_SUFFIX_CURL_OFF_TU    UL
    551 #  endif
    552 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
    553 #  define CURL_SIZEOF_CURL_SOCKLEN_T 4
    554 #  define CURL_PULL_SYS_TYPES_H      1
    555 #  define CURL_PULL_SYS_SOCKET_H     1
    556 
    557 #else
    558 #  error "Unknown non-configure build target!"
    559    Error Compilation_aborted_Unknown_non_configure_build_target
    560 #endif
    561 
    562 /* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file  */
    563 /* sys/types.h is required here to properly make type definitions below. */
    564 #ifdef CURL_PULL_SYS_TYPES_H
    565 #  include <sys/types.h>
    566 #endif
    567 
    568 /* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file  */
    569 /* sys/socket.h is required here to properly make type definitions below. */
    570 #ifdef CURL_PULL_SYS_SOCKET_H
    571 #  include <sys/socket.h>
    572 #endif
    573 
    574 /* Data type definition of curl_socklen_t. */
    575 
    576 #ifdef CURL_TYPEOF_CURL_SOCKLEN_T
    577   typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
    578 #endif
    579 
    580 /* Data type definition of curl_off_t. */
    581 
    582 #ifdef CURL_TYPEOF_CURL_OFF_T
    583   typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
    584 #endif
    585 
    586 #endif /* __CURL_CURLBUILD_H */
    587