curlbuild.h
上传用户:coffee44
上传日期:2018-10-23
资源大小:12304k
文件大小:19k
源码类别:

TAPI编程

开发平台:

Visual C++

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