Home | History | Annotate | Download | only in curl
      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 (at) 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__) || (defined(__mips__) && _MIPS_SIM == _ABI64)
    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. */
    171 typedef 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. */
    182 typedef 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