@ -0,0 +1,53 @@ | |||
#!/bin/bash | |||
export IPHONEOS_DEPLOYMENT_TARGET="6.0" | |||
export CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" | |||
ARCH="armv7" | |||
export CFLAGS="-arch ${ARCH} -pipe -Os -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" | |||
export LDFLAGS="-arch ${ARCH} -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" | |||
make distclean | |||
./configure --disable-shared --enable-static --host="${ARCH}-apple-darwin" --enable-threaded-resolver --with-darwinssl | |||
make -j `sysctl -n hw.logicalcpu_max` | |||
cp lib/.libs/libcurl.a "${HOME}/Desktop/libcurl-${ARCH}.a" | |||
cp include/curl/curlbuild.h ~/Desktop/curlbuild32.h | |||
ARCH="armv7s" | |||
export CFLAGS="-arch ${ARCH} -pipe -Os -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" | |||
export LDFLAGS="-arch ${ARCH} -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" | |||
make distclean | |||
./configure --disable-shared --enable-static --host="${ARCH}-apple-darwin" --enable-threaded-resolver --with-darwinssl | |||
make -j `sysctl -n hw.logicalcpu_max` | |||
cp lib/.libs/libcurl.a "${HOME}/Desktop/libcurl-${ARCH}.a" | |||
ARCH="arm64" | |||
export IPHONEOS_DEPLOYMENT_TARGET="7.0" | |||
export CFLAGS="-arch ${ARCH} -pipe -Os -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" | |||
export LDFLAGS="-arch ${ARCH} -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" | |||
make distclean | |||
./configure --disable-shared --enable-static --host="aarch64-apple-darwin" --enable-threaded-resolver --with-darwinssl | |||
make -j `sysctl -n hw.logicalcpu_max` | |||
cp lib/.libs/libcurl.a "${HOME}/Desktop/libcurl-${ARCH}.a" | |||
cp include/curl/curlbuild.h ~/Desktop/curlbuild64.h | |||
ARCH="i386" | |||
export IPHONEOS_DEPLOYMENT_TARGET="6.0" | |||
export CFLAGS="-arch ${ARCH} -pipe -Os -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk" | |||
export CPPFLAGS="-D__IPHONE_OS_VERSION_MIN_REQUIRED=${IPHONEOS_DEPLOYMENT_TARGET%%.*}0000" | |||
export LDFLAGS="-arch ${ARCH} -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk" | |||
make distclean | |||
./configure --disable-shared --enable-static --host="${ARCH}-apple-darwin" --enable-threaded-resolver --with-darwinssl | |||
make -j `sysctl -n hw.logicalcpu_max` | |||
cp lib/.libs/libcurl.a "${HOME}/Desktop/libcurl-${ARCH}.a" | |||
ARCH="x86_64" | |||
export IPHONEOS_DEPLOYMENT_TARGET="7.0" | |||
export CFLAGS="-arch ${ARCH} -pipe -Os -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk" | |||
export CPPFLAGS="-D__IPHONE_OS_VERSION_MIN_REQUIRED=${IPHONEOS_DEPLOYMENT_TARGET%%.*}0000" | |||
export LDFLAGS="-arch ${ARCH} -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk" | |||
make distclean | |||
./configure --disable-shared --enable-static --host="${ARCH}-apple-darwin" --enable-threaded-resolver --with-darwinssl | |||
make -j `sysctl -n hw.logicalcpu_max` | |||
cp lib/.libs/libcurl.a "${HOME}/Desktop/libcurl-${ARCH}.a" | |||
lipo -create -output "${HOME}/Desktop/libcurl.a" "${HOME}/Desktop/libcurl-armv7.a" "${HOME}/Desktop/libcurl-armv7s.a" "${HOME}/Desktop/libcurl-arm64.a" "${HOME}/Desktop/libcurl-i386.a" "${HOME}/Desktop/libcurl-x86_64.a" |
@ -0,0 +1,12 @@ | |||
#ifdef __LP64__ | |||
// 64-bit code | |||
#include "curlbuild64.h" | |||
#else | |||
// 32-bit code | |||
#include "curlbuild32.h" | |||
#endif | |||
@ -0,0 +1,198 @@ | |||
/* include/curl/curlbuild.h. Generated from curlbuild.h.in by configure. */ | |||
#ifndef __CURL_CURLBUILD_H | |||
#define __CURL_CURLBUILD_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
/* ================================================================ */ | |||
/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ | |||
/* ================================================================ */ | |||
/* | |||
* NOTE 1: | |||
* ------- | |||
* | |||
* Nothing in this file is intended to be modified or adjusted by the | |||
* curl library user nor by the curl library builder. | |||
* | |||
* If you think that something actually needs to be changed, adjusted | |||
* or fixed in this file, then, report it on the libcurl development | |||
* mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ | |||
* | |||
* This header file shall only export symbols which are 'curl' or 'CURL' | |||
* prefixed, otherwise public name space would be polluted. | |||
* | |||
* NOTE 2: | |||
* ------- | |||
* | |||
* Right now you might be staring at file include/curl/curlbuild.h.in or | |||
* at file include/curl/curlbuild.h, this is due to the following reason: | |||
* | |||
* On systems capable of running the configure script, the configure process | |||
* will overwrite the distributed include/curl/curlbuild.h file with one that | |||
* is suitable and specific to the library being configured and built, which | |||
* is generated from the include/curl/curlbuild.h.in template file. | |||
* | |||
*/ | |||
/* ================================================================ */ | |||
/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ | |||
/* ================================================================ */ | |||
#ifdef CURL_SIZEOF_LONG | |||
#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined | |||
#endif | |||
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T | |||
#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined | |||
#endif | |||
#ifdef CURL_SIZEOF_CURL_SOCKLEN_T | |||
#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined | |||
#endif | |||
#ifdef CURL_TYPEOF_CURL_OFF_T | |||
#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_CURL_OFF_T | |||
#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_CURL_OFF_TU | |||
#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_OFF_T | |||
#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SIZEOF_CURL_OFF_T | |||
#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SUFFIX_CURL_OFF_T | |||
#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SUFFIX_CURL_OFF_TU | |||
#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined | |||
#endif | |||
/* ================================================================ */ | |||
/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ | |||
/* ================================================================ */ | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file ws2tcpip.h must be included by the external interface. */ | |||
/* #undef CURL_PULL_WS2TCPIP_H */ | |||
#ifdef CURL_PULL_WS2TCPIP_H | |||
# ifndef WIN32_LEAN_AND_MEAN | |||
# define WIN32_LEAN_AND_MEAN | |||
# endif | |||
# include <windows.h> | |||
# include <winsock2.h> | |||
# include <ws2tcpip.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/types.h must be included by the external interface. */ | |||
#define CURL_PULL_SYS_TYPES_H 1 | |||
#ifdef CURL_PULL_SYS_TYPES_H | |||
# include <sys/types.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file stdint.h must be included by the external interface. */ | |||
#define CURL_PULL_STDINT_H 1 | |||
#ifdef CURL_PULL_STDINT_H | |||
# include <stdint.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file inttypes.h must be included by the external interface. */ | |||
#define CURL_PULL_INTTYPES_H 1 | |||
#ifdef CURL_PULL_INTTYPES_H | |||
# include <inttypes.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/socket.h must be included by the external interface. */ | |||
#define CURL_PULL_SYS_SOCKET_H 1 | |||
#ifdef CURL_PULL_SYS_SOCKET_H | |||
# include <sys/socket.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/poll.h must be included by the external interface. */ | |||
/* #undef CURL_PULL_SYS_POLL_H */ | |||
#ifdef CURL_PULL_SYS_POLL_H | |||
# include <sys/poll.h> | |||
#endif | |||
/* The size of `long', as computed by sizeof. */ | |||
#define CURL_SIZEOF_LONG 4 | |||
/* Integral data type used for curl_socklen_t. */ | |||
#define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t | |||
/* The size of `curl_socklen_t', as computed by sizeof. */ | |||
#define CURL_SIZEOF_CURL_SOCKLEN_T 4 | |||
/* Data type definition of curl_socklen_t. */ | |||
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; | |||
/* Signed integral data type used for curl_off_t. */ | |||
#define CURL_TYPEOF_CURL_OFF_T int64_t | |||
/* Data type definition of curl_off_t. */ | |||
typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; | |||
/* curl_off_t formatting string directive without "%" conversion specifier. */ | |||
#define CURL_FORMAT_CURL_OFF_T "lld" | |||
/* unsigned curl_off_t formatting string without "%" conversion specifier. */ | |||
#define CURL_FORMAT_CURL_OFF_TU "llu" | |||
/* curl_off_t formatting string directive with "%" conversion specifier. */ | |||
#define CURL_FORMAT_OFF_T "%lld" | |||
/* The size of `curl_off_t', as computed by sizeof. */ | |||
#define CURL_SIZEOF_CURL_OFF_T 8 | |||
/* curl_off_t constant suffix. */ | |||
#define CURL_SUFFIX_CURL_OFF_T LL | |||
/* unsigned curl_off_t constant suffix. */ | |||
#define CURL_SUFFIX_CURL_OFF_TU ULL | |||
#endif /* __CURL_CURLBUILD_H */ |
@ -0,0 +1,198 @@ | |||
/* include/curl/curlbuild.h. Generated from curlbuild.h.in by configure. */ | |||
#ifndef __CURL_CURLBUILD_H | |||
#define __CURL_CURLBUILD_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
/* ================================================================ */ | |||
/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ | |||
/* ================================================================ */ | |||
/* | |||
* NOTE 1: | |||
* ------- | |||
* | |||
* Nothing in this file is intended to be modified or adjusted by the | |||
* curl library user nor by the curl library builder. | |||
* | |||
* If you think that something actually needs to be changed, adjusted | |||
* or fixed in this file, then, report it on the libcurl development | |||
* mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ | |||
* | |||
* This header file shall only export symbols which are 'curl' or 'CURL' | |||
* prefixed, otherwise public name space would be polluted. | |||
* | |||
* NOTE 2: | |||
* ------- | |||
* | |||
* Right now you might be staring at file include/curl/curlbuild.h.in or | |||
* at file include/curl/curlbuild.h, this is due to the following reason: | |||
* | |||
* On systems capable of running the configure script, the configure process | |||
* will overwrite the distributed include/curl/curlbuild.h file with one that | |||
* is suitable and specific to the library being configured and built, which | |||
* is generated from the include/curl/curlbuild.h.in template file. | |||
* | |||
*/ | |||
/* ================================================================ */ | |||
/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ | |||
/* ================================================================ */ | |||
#ifdef CURL_SIZEOF_LONG | |||
#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined | |||
#endif | |||
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T | |||
#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined | |||
#endif | |||
#ifdef CURL_SIZEOF_CURL_SOCKLEN_T | |||
#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined | |||
#endif | |||
#ifdef CURL_TYPEOF_CURL_OFF_T | |||
#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_CURL_OFF_T | |||
#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_CURL_OFF_TU | |||
#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_OFF_T | |||
#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SIZEOF_CURL_OFF_T | |||
#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SUFFIX_CURL_OFF_T | |||
#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SUFFIX_CURL_OFF_TU | |||
#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined | |||
#endif | |||
/* ================================================================ */ | |||
/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ | |||
/* ================================================================ */ | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file ws2tcpip.h must be included by the external interface. */ | |||
/* #undef CURL_PULL_WS2TCPIP_H */ | |||
#ifdef CURL_PULL_WS2TCPIP_H | |||
# ifndef WIN32_LEAN_AND_MEAN | |||
# define WIN32_LEAN_AND_MEAN | |||
# endif | |||
# include <windows.h> | |||
# include <winsock2.h> | |||
# include <ws2tcpip.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/types.h must be included by the external interface. */ | |||
#define CURL_PULL_SYS_TYPES_H 1 | |||
#ifdef CURL_PULL_SYS_TYPES_H | |||
# include <sys/types.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file stdint.h must be included by the external interface. */ | |||
/* #undef CURL_PULL_STDINT_H */ | |||
#ifdef CURL_PULL_STDINT_H | |||
# include <stdint.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file inttypes.h must be included by the external interface. */ | |||
/* #undef CURL_PULL_INTTYPES_H */ | |||
#ifdef CURL_PULL_INTTYPES_H | |||
# include <inttypes.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/socket.h must be included by the external interface. */ | |||
#define CURL_PULL_SYS_SOCKET_H 1 | |||
#ifdef CURL_PULL_SYS_SOCKET_H | |||
# include <sys/socket.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/poll.h must be included by the external interface. */ | |||
/* #undef CURL_PULL_SYS_POLL_H */ | |||
#ifdef CURL_PULL_SYS_POLL_H | |||
# include <sys/poll.h> | |||
#endif | |||
/* The size of `long', as computed by sizeof. */ | |||
#define CURL_SIZEOF_LONG 8 | |||
/* Integral data type used for curl_socklen_t. */ | |||
#define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t | |||
/* The size of `curl_socklen_t', as computed by sizeof. */ | |||
#define CURL_SIZEOF_CURL_SOCKLEN_T 4 | |||
/* Data type definition of curl_socklen_t. */ | |||
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; | |||
/* Signed integral data type used for curl_off_t. */ | |||
#define CURL_TYPEOF_CURL_OFF_T long | |||
/* Data type definition of curl_off_t. */ | |||
typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; | |||
/* curl_off_t formatting string directive without "%" conversion specifier. */ | |||
#define CURL_FORMAT_CURL_OFF_T "ld" | |||
/* unsigned curl_off_t formatting string without "%" conversion specifier. */ | |||
#define CURL_FORMAT_CURL_OFF_TU "lu" | |||
/* curl_off_t formatting string directive with "%" conversion specifier. */ | |||
#define CURL_FORMAT_OFF_T "%ld" | |||
/* The size of `curl_off_t', as computed by sizeof. */ | |||
#define CURL_SIZEOF_CURL_OFF_T 8 | |||
/* curl_off_t constant suffix. */ | |||
#define CURL_SUFFIX_CURL_OFF_T L | |||
/* unsigned curl_off_t constant suffix. */ | |||
#define CURL_SUFFIX_CURL_OFF_TU UL | |||
#endif /* __CURL_CURLBUILD_H */ |
@ -0,0 +1,198 @@ | |||
/* include/curl/curlbuild.h. Generated from curlbuild.h.in by configure. */ | |||
#ifndef __CURL_CURLBUILD_H | |||
#define __CURL_CURLBUILD_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
/* ================================================================ */ | |||
/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ | |||
/* ================================================================ */ | |||
/* | |||
* NOTE 1: | |||
* ------- | |||
* | |||
* Nothing in this file is intended to be modified or adjusted by the | |||
* curl library user nor by the curl library builder. | |||
* | |||
* If you think that something actually needs to be changed, adjusted | |||
* or fixed in this file, then, report it on the libcurl development | |||
* mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ | |||
* | |||
* This header file shall only export symbols which are 'curl' or 'CURL' | |||
* prefixed, otherwise public name space would be polluted. | |||
* | |||
* NOTE 2: | |||
* ------- | |||
* | |||
* Right now you might be staring at file include/curl/curlbuild.h.in or | |||
* at file include/curl/curlbuild.h, this is due to the following reason: | |||
* | |||
* On systems capable of running the configure script, the configure process | |||
* will overwrite the distributed include/curl/curlbuild.h file with one that | |||
* is suitable and specific to the library being configured and built, which | |||
* is generated from the include/curl/curlbuild.h.in template file. | |||
* | |||
*/ | |||
/* ================================================================ */ | |||
/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ | |||
/* ================================================================ */ | |||
#ifdef CURL_SIZEOF_LONG | |||
#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined | |||
#endif | |||
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T | |||
#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined | |||
#endif | |||
#ifdef CURL_SIZEOF_CURL_SOCKLEN_T | |||
#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined | |||
#endif | |||
#ifdef CURL_TYPEOF_CURL_OFF_T | |||
#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_CURL_OFF_T | |||
#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_CURL_OFF_TU | |||
#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined | |||
#endif | |||
#ifdef CURL_FORMAT_OFF_T | |||
#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SIZEOF_CURL_OFF_T | |||
#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SUFFIX_CURL_OFF_T | |||
#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined | |||
#endif | |||
#ifdef CURL_SUFFIX_CURL_OFF_TU | |||
#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" | |||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined | |||
#endif | |||
/* ================================================================ */ | |||
/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ | |||
/* ================================================================ */ | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file ws2tcpip.h must be included by the external interface. */ | |||
/* #undef CURL_PULL_WS2TCPIP_H */ | |||
#ifdef CURL_PULL_WS2TCPIP_H | |||
# ifndef WIN32_LEAN_AND_MEAN | |||
# define WIN32_LEAN_AND_MEAN | |||
# endif | |||
# include <windows.h> | |||
# include <winsock2.h> | |||
# include <ws2tcpip.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/types.h must be included by the external interface. */ | |||
#define CURL_PULL_SYS_TYPES_H 1 | |||
#ifdef CURL_PULL_SYS_TYPES_H | |||
# include <sys/types.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file stdint.h must be included by the external interface. */ | |||
#define CURL_PULL_STDINT_H 1 | |||
#ifdef CURL_PULL_STDINT_H | |||
# include <stdint.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file inttypes.h must be included by the external interface. */ | |||
#define CURL_PULL_INTTYPES_H 1 | |||
#ifdef CURL_PULL_INTTYPES_H | |||
# include <inttypes.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/socket.h must be included by the external interface. */ | |||
#define CURL_PULL_SYS_SOCKET_H 1 | |||
#ifdef CURL_PULL_SYS_SOCKET_H | |||
# include <sys/socket.h> | |||
#endif | |||
/* Configure process defines this to 1 when it finds out that system */ | |||
/* header file sys/poll.h must be included by the external interface. */ | |||
/* #undef CURL_PULL_SYS_POLL_H */ | |||
#ifdef CURL_PULL_SYS_POLL_H | |||
# include <sys/poll.h> | |||
#endif | |||
/* The size of `long', as computed by sizeof. */ | |||
#define CURL_SIZEOF_LONG 4 | |||
/* Integral data type used for curl_socklen_t. */ | |||
#define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t | |||
/* The size of `curl_socklen_t', as computed by sizeof. */ | |||
#define CURL_SIZEOF_CURL_SOCKLEN_T 4 | |||
/* Data type definition of curl_socklen_t. */ | |||
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; | |||
/* Signed integral data type used for curl_off_t. */ | |||
#define CURL_TYPEOF_CURL_OFF_T int64_t | |||
/* Data type definition of curl_off_t. */ | |||
typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; | |||
/* curl_off_t formatting string directive without "%" conversion specifier. */ | |||
#define CURL_FORMAT_CURL_OFF_T "lld" | |||
/* unsigned curl_off_t formatting string without "%" conversion specifier. */ | |||
#define CURL_FORMAT_CURL_OFF_TU "llu" | |||
/* curl_off_t formatting string directive with "%" conversion specifier. */ | |||
#define CURL_FORMAT_OFF_T "%lld" | |||
/* The size of `curl_off_t', as computed by sizeof. */ | |||
#define CURL_SIZEOF_CURL_OFF_T 8 | |||
/* curl_off_t constant suffix. */ | |||
#define CURL_SUFFIX_CURL_OFF_T LL | |||
/* unsigned curl_off_t constant suffix. */ | |||
#define CURL_SUFFIX_CURL_OFF_TU ULL | |||
#endif /* __CURL_CURLBUILD_H */ |
@ -0,0 +1,262 @@ | |||
#ifndef __CURL_CURLRULES_H | |||
#define __CURL_CURLRULES_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
/* ================================================================ */ | |||
/* COMPILE TIME SANITY CHECKS */ | |||
/* ================================================================ */ | |||
/* | |||
* NOTE 1: | |||
* ------- | |||
* | |||
* All checks done in this file are intentionally placed in a public | |||
* header file which is pulled by curl/curl.h when an application is | |||
* being built using an already built libcurl library. Additionally | |||
* this file is also included and used when building the library. | |||
* | |||
* If compilation fails on this file it is certainly sure that the | |||
* problem is elsewhere. It could be a problem in the curlbuild.h | |||
* header file, or simply that you are using different compilation | |||
* settings than those used to build the library. | |||
* | |||
* Nothing in this file is intended to be modified or adjusted by the | |||
* curl library user nor by the curl library builder. | |||
* | |||
* Do not deactivate any check, these are done to make sure that the | |||
* library is properly built and used. | |||
* | |||
* You can find further help on the libcurl development mailing list: | |||
* http://cool.haxx.se/mailman/listinfo/curl-library/ | |||
* | |||
* NOTE 2 | |||
* ------ | |||
* | |||
* Some of the following compile time checks are based on the fact | |||
* that the dimension of a constant array can not be a negative one. | |||
* In this way if the compile time verification fails, the compilation | |||
* will fail issuing an error. The error description wording is compiler | |||
* dependent but it will be quite similar to one of the following: | |||
* | |||
* "negative subscript or subscript is too large" | |||
* "array must have at least one element" | |||
* "-1 is an illegal array size" | |||
* "size of array is negative" | |||
* | |||
* If you are building an application which tries to use an already | |||
* built libcurl library and you are getting this kind of errors on | |||
* this file, it is a clear indication that there is a mismatch between | |||
* how the library was built and how you are trying to use it for your | |||
* application. Your already compiled or binary library provider is the | |||
* only one who can give you the details you need to properly use it. | |||
*/ | |||
/* | |||
* Verify that some macros are actually defined. | |||
*/ | |||
#ifndef CURL_SIZEOF_LONG | |||
# error "CURL_SIZEOF_LONG definition is missing!" | |||
Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing | |||
#endif | |||
#ifndef CURL_TYPEOF_CURL_SOCKLEN_T | |||
# error "CURL_TYPEOF_CURL_SOCKLEN_T definition is missing!" | |||
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_is_missing | |||
#endif | |||
#ifndef CURL_SIZEOF_CURL_SOCKLEN_T | |||
# error "CURL_SIZEOF_CURL_SOCKLEN_T definition is missing!" | |||
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_is_missing | |||
#endif | |||
#ifndef CURL_TYPEOF_CURL_OFF_T | |||
# error "CURL_TYPEOF_CURL_OFF_T definition is missing!" | |||
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing | |||
#endif | |||
#ifndef CURL_FORMAT_CURL_OFF_T | |||
# error "CURL_FORMAT_CURL_OFF_T definition is missing!" | |||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing | |||
#endif | |||
#ifndef CURL_FORMAT_CURL_OFF_TU | |||
# error "CURL_FORMAT_CURL_OFF_TU definition is missing!" | |||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing | |||
#endif | |||
#ifndef CURL_FORMAT_OFF_T | |||
# error "CURL_FORMAT_OFF_T definition is missing!" | |||
Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing | |||
#endif | |||
#ifndef CURL_SIZEOF_CURL_OFF_T | |||
# error "CURL_SIZEOF_CURL_OFF_T definition is missing!" | |||
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing | |||
#endif | |||
#ifndef CURL_SUFFIX_CURL_OFF_T | |||
# error "CURL_SUFFIX_CURL_OFF_T definition is missing!" | |||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing | |||
#endif | |||
#ifndef CURL_SUFFIX_CURL_OFF_TU | |||
# error "CURL_SUFFIX_CURL_OFF_TU definition is missing!" | |||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing | |||
#endif | |||
/* | |||
* Macros private to this header file. | |||
*/ | |||
#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1 | |||
#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1 | |||
/* | |||
* Verify that the size previously defined and expected for long | |||
* is the same as the one reported by sizeof() at compile time. | |||
*/ | |||
typedef char | |||
__curl_rule_01__ | |||
[CurlchkszEQ(long, CURL_SIZEOF_LONG)]; | |||
/* | |||
* Verify that the size previously defined and expected for | |||
* curl_off_t is actually the the same as the one reported | |||
* by sizeof() at compile time. | |||
*/ | |||
typedef char | |||
__curl_rule_02__ | |||
[CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)]; | |||
/* | |||
* Verify at compile time that the size of curl_off_t as reported | |||
* by sizeof() is greater or equal than the one reported for long | |||
* for the current compilation. | |||
*/ | |||
typedef char | |||
__curl_rule_03__ | |||
[CurlchkszGE(curl_off_t, long)]; | |||
/* | |||
* Verify that the size previously defined and expected for | |||
* curl_socklen_t is actually the the same as the one reported | |||
* by sizeof() at compile time. | |||
*/ | |||
typedef char | |||
__curl_rule_04__ | |||
[CurlchkszEQ(curl_socklen_t, CURL_SIZEOF_CURL_SOCKLEN_T)]; | |||
/* | |||
* Verify at compile time that the size of curl_socklen_t as reported | |||
* by sizeof() is greater or equal than the one reported for int for | |||
* the current compilation. | |||
*/ | |||
typedef char | |||
__curl_rule_05__ | |||
[CurlchkszGE(curl_socklen_t, int)]; | |||
/* ================================================================ */ | |||
/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */ | |||
/* ================================================================ */ | |||
/* | |||
* CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow | |||
* these to be visible and exported by the external libcurl interface API, | |||
* while also making them visible to the library internals, simply including | |||
* curl_setup.h, without actually needing to include curl.h internally. | |||
* If some day this section would grow big enough, all this should be moved | |||
* to its own header file. | |||
*/ | |||
/* | |||
* Figure out if we can use the ## preprocessor operator, which is supported | |||
* by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ | |||
* or __cplusplus so we need to carefully check for them too. | |||
*/ | |||
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ | |||
defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ | |||
defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ | |||
defined(__ILEC400__) | |||
/* This compiler is believed to have an ISO compatible preprocessor */ | |||
#define CURL_ISOCPP | |||
#else | |||
/* This compiler is believed NOT to have an ISO compatible preprocessor */ | |||
#undef CURL_ISOCPP | |||
#endif | |||
/* | |||
* Macros for minimum-width signed and unsigned curl_off_t integer constants. | |||
*/ | |||
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) | |||
# define __CURL_OFF_T_C_HLPR2(x) x | |||
# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) | |||
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ | |||
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) | |||
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ | |||
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) | |||
#else | |||
# ifdef CURL_ISOCPP | |||
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix | |||
# else | |||
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix | |||
# endif | |||
# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) | |||
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) | |||
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) | |||
#endif | |||
/* | |||
* Get rid of macros private to this header file. | |||
*/ | |||
#undef CurlchkszEQ | |||
#undef CurlchkszGE | |||
/* | |||
* Get rid of macros not intended to exist beyond this point. | |||
*/ | |||
#undef CURL_PULL_WS2TCPIP_H | |||
#undef CURL_PULL_SYS_TYPES_H | |||
#undef CURL_PULL_SYS_SOCKET_H | |||
#undef CURL_PULL_SYS_POLL_H | |||
#undef CURL_PULL_STDINT_H | |||
#undef CURL_PULL_INTTYPES_H | |||
#undef CURL_TYPEOF_CURL_SOCKLEN_T | |||
#undef CURL_TYPEOF_CURL_OFF_T | |||
#ifdef CURL_NO_OLDIES | |||
#undef CURL_FORMAT_OFF_T /* not required since 7.19.0 - obsoleted in 7.20.0 */ | |||
#endif | |||
#endif /* __CURL_CURLRULES_H */ |
@ -0,0 +1,77 @@ | |||
#ifndef __CURL_CURLVER_H | |||
#define __CURL_CURLVER_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
/* This header file contains nothing but libcurl version info, generated by | |||
a script at release-time. This was made its own header file in 7.11.2 */ | |||
/* This is the global package copyright */ | |||
#define LIBCURL_COPYRIGHT "1996 - 2015 Daniel Stenberg, <daniel@haxx.se>." | |||
/* This is the version number of the libcurl package from which this header | |||
file origins: */ | |||
#define LIBCURL_VERSION "7.43.0" | |||
/* The numeric version number is also available "in parts" by using these | |||
defines: */ | |||
#define LIBCURL_VERSION_MAJOR 7 | |||
#define LIBCURL_VERSION_MINOR 43 | |||
#define LIBCURL_VERSION_PATCH 0 | |||
/* This is the numeric version of the libcurl version number, meant for easier | |||
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will | |||
always follow this syntax: | |||
0xXXYYZZ | |||
Where XX, YY and ZZ are the main version, release and patch numbers in | |||
hexadecimal (using 8 bits each). All three numbers are always represented | |||
using two digits. 1.2 would appear as "0x010200" while version 9.11.7 | |||
appears as "0x090b07". | |||
This 6-digit (24 bits) hexadecimal number does not show pre-release number, | |||
and it is always a greater number in a more recent release. It makes | |||
comparisons with greater than and less than work. | |||
Note: This define is the full hex number and _does not_ use the | |||
CURL_VERSION_BITS() macro since curl's own configure script greps for it | |||
and needs it to contain the full number. | |||
*/ | |||
#define LIBCURL_VERSION_NUM 0x072b00 | |||
/* | |||
* This is the date and time when the full source package was created. The | |||
* timestamp is not stored in git, as the timestamp is properly set in the | |||
* tarballs by the maketgz script. | |||
* | |||
* The format of the date should follow this template: | |||
* | |||
* "Mon Feb 12 11:35:33 UTC 2007" | |||
*/ | |||
#define LIBCURL_TIMESTAMP "Wed Jun 17 05:56:00 UTC 2015" | |||
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z) | |||
#define CURL_AT_LEAST_VERSION(x,y,z) \ | |||
(LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) | |||
#endif /* __CURL_CURLVER_H */ |
@ -0,0 +1,102 @@ | |||
#ifndef __CURL_EASY_H | |||
#define __CURL_EASY_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
CURL_EXTERN CURL *curl_easy_init(void); | |||
CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); | |||
CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); | |||
CURL_EXTERN void curl_easy_cleanup(CURL *curl); | |||
/* | |||
* NAME curl_easy_getinfo() | |||
* | |||
* DESCRIPTION | |||
* | |||
* Request internal information from the curl session with this function. The | |||
* third argument MUST be a pointer to a long, a pointer to a char * or a | |||
* pointer to a double (as the documentation describes elsewhere). The data | |||
* pointed to will be filled in accordingly and can be relied upon only if the | |||
* function returns CURLE_OK. This function is intended to get used *AFTER* a | |||
* performed transfer, all results from this function are undefined until the | |||
* transfer is completed. | |||
*/ | |||
CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); | |||
/* | |||
* NAME curl_easy_duphandle() | |||
* | |||
* DESCRIPTION | |||
* | |||
* Creates a new curl session handle with the same options set for the handle | |||
* passed in. Duplicating a handle could only be a matter of cloning data and | |||
* options, internal state info and things like persistent connections cannot | |||
* be transferred. It is useful in multithreaded applications when you can run | |||
* curl_easy_duphandle() for each new thread to avoid a series of identical | |||
* curl_easy_setopt() invokes in every thread. | |||
*/ | |||
CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl); | |||
/* | |||
* NAME curl_easy_reset() | |||
* | |||
* DESCRIPTION | |||
* | |||
* Re-initializes a CURL handle to the default values. This puts back the | |||
* handle to the same state as it was in when it was just created. | |||
* | |||
* It does keep: live connections, the Session ID cache, the DNS cache and the | |||
* cookies. | |||
*/ | |||
CURL_EXTERN void curl_easy_reset(CURL *curl); | |||
/* | |||
* NAME curl_easy_recv() | |||
* | |||
* DESCRIPTION | |||
* | |||
* Receives data from the connected socket. Use after successful | |||
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option. | |||
*/ | |||
CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, | |||
size_t *n); | |||
/* | |||
* NAME curl_easy_send() | |||
* | |||
* DESCRIPTION | |||
* | |||
* Sends data over the connected socket. Use after successful | |||
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option. | |||
*/ | |||
CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, | |||
size_t buflen, size_t *n); | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif |
@ -0,0 +1,74 @@ | |||
#ifndef __CURL_MPRINTF_H | |||
#define __CURL_MPRINTF_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
#include <stdarg.h> | |||
#include <stdio.h> /* needed for FILE */ | |||
#include "curl.h" | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
CURL_EXTERN int curl_mprintf(const char *format, ...); | |||
CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); | |||
CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); | |||
CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, | |||
const char *format, ...); | |||
CURL_EXTERN int curl_mvprintf(const char *format, va_list args); | |||
CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); | |||
CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); | |||
CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, | |||
const char *format, va_list args); | |||
CURL_EXTERN char *curl_maprintf(const char *format, ...); | |||
CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); | |||
#ifdef _MPRINTF_REPLACE | |||
# undef printf | |||
# undef fprintf | |||
# undef sprintf | |||
# undef vsprintf | |||
# undef snprintf | |||
# undef vprintf | |||
# undef vfprintf | |||
# undef vsnprintf | |||
# undef aprintf | |||
# undef vaprintf | |||
# define printf curl_mprintf | |||
# define fprintf curl_mfprintf | |||
# define sprintf curl_msprintf | |||
# define vsprintf curl_mvsprintf | |||
# define snprintf curl_msnprintf | |||
# define vprintf curl_mvprintf | |||
# define vfprintf curl_mvfprintf | |||
# define vsnprintf curl_mvsnprintf | |||
# define aprintf curl_maprintf | |||
# define vaprintf curl_mvaprintf | |||
#endif | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif /* __CURL_MPRINTF_H */ |
@ -0,0 +1,404 @@ | |||
#ifndef __CURL_MULTI_H | |||
#define __CURL_MULTI_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
/* | |||
This is an "external" header file. Don't give away any internals here! | |||
GOALS | |||
o Enable a "pull" interface. The application that uses libcurl decides where | |||
and when to ask libcurl to get/send data. | |||
o Enable multiple simultaneous transfers in the same thread without making it | |||
complicated for the application. | |||
o Enable the application to select() on its own file descriptors and curl's | |||
file descriptors simultaneous easily. | |||
*/ | |||
/* | |||
* This header file should not really need to include "curl.h" since curl.h | |||
* itself includes this file and we expect user applications to do #include | |||
* <curl/curl.h> without the need for especially including multi.h. | |||
* | |||
* For some reason we added this include here at one point, and rather than to | |||
* break existing (wrongly written) libcurl applications, we leave it as-is | |||
* but with this warning attached. | |||
*/ | |||
#include "curl.h" | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
typedef void CURLM; | |||
typedef enum { | |||
CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or | |||
curl_multi_socket*() soon */ | |||
CURLM_OK, | |||
CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ | |||
CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ | |||
CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ | |||
CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ | |||
CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ | |||
CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ | |||
CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was | |||
attempted to get added - again */ | |||
CURLM_LAST | |||
} CURLMcode; | |||
/* just to make code nicer when using curl_multi_socket() you can now check | |||
for CURLM_CALL_MULTI_SOCKET too in the same style it works for | |||
curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ | |||
#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM | |||
/* bitmask bits for CURLMOPT_PIPELINING */ | |||
#define CURLPIPE_NOTHING 0L | |||
#define CURLPIPE_HTTP1 1L | |||
#define CURLPIPE_MULTIPLEX 2L | |||
typedef enum { | |||
CURLMSG_NONE, /* first, not used */ | |||
CURLMSG_DONE, /* This easy handle has completed. 'result' contains | |||
the CURLcode of the transfer */ | |||
CURLMSG_LAST /* last, not used */ | |||
} CURLMSG; | |||
struct CURLMsg { | |||
CURLMSG msg; /* what this message means */ | |||
CURL *easy_handle; /* the handle it concerns */ | |||
union { | |||
void *whatever; /* message-specific data */ | |||
CURLcode result; /* return code for transfer */ | |||
} data; | |||
}; | |||
typedef struct CURLMsg CURLMsg; | |||
/* Based on poll(2) structure and values. | |||
* We don't use pollfd and POLL* constants explicitly | |||
* to cover platforms without poll(). */ | |||
#define CURL_WAIT_POLLIN 0x0001 | |||
#define CURL_WAIT_POLLPRI 0x0002 | |||
#define CURL_WAIT_POLLOUT 0x0004 | |||
struct curl_waitfd { | |||
curl_socket_t fd; | |||
short events; | |||
short revents; /* not supported yet */ | |||
}; | |||
/* | |||
* Name: curl_multi_init() | |||
* | |||
* Desc: inititalize multi-style curl usage | |||
* | |||
* Returns: a new CURLM handle to use in all 'curl_multi' functions. | |||
*/ | |||
CURL_EXTERN CURLM *curl_multi_init(void); | |||
/* | |||
* Name: curl_multi_add_handle() | |||
* | |||
* Desc: add a standard curl handle to the multi stack | |||
* | |||
* Returns: CURLMcode type, general multi error code. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, | |||
CURL *curl_handle); | |||
/* | |||
* Name: curl_multi_remove_handle() | |||
* | |||
* Desc: removes a curl handle from the multi stack again | |||
* | |||
* Returns: CURLMcode type, general multi error code. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, | |||
CURL *curl_handle); | |||
/* | |||
* Name: curl_multi_fdset() | |||
* | |||
* Desc: Ask curl for its fd_set sets. The app can use these to select() or | |||
* poll() on. We want curl_multi_perform() called as soon as one of | |||
* them are ready. | |||
* | |||
* Returns: CURLMcode type, general multi error code. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, | |||
fd_set *read_fd_set, | |||
fd_set *write_fd_set, | |||
fd_set *exc_fd_set, | |||
int *max_fd); | |||
/* | |||
* Name: curl_multi_wait() | |||
* | |||
* Desc: Poll on all fds within a CURLM set as well as any | |||
* additional fds passed to the function. | |||
* | |||
* Returns: CURLMcode type, general multi error code. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, | |||
struct curl_waitfd extra_fds[], | |||
unsigned int extra_nfds, | |||
int timeout_ms, | |||
int *ret); | |||
/* | |||
* Name: curl_multi_perform() | |||
* | |||
* Desc: When the app thinks there's data available for curl it calls this | |||
* function to read/write whatever there is right now. This returns | |||
* as soon as the reads and writes are done. This function does not | |||
* require that there actually is data available for reading or that | |||
* data can be written, it can be called just in case. It returns | |||
* the number of handles that still transfer data in the second | |||
* argument's integer-pointer. | |||
* | |||
* Returns: CURLMcode type, general multi error code. *NOTE* that this only | |||
* returns errors etc regarding the whole multi stack. There might | |||
* still have occurred problems on invidual transfers even when this | |||
* returns OK. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, | |||
int *running_handles); | |||
/* | |||
* Name: curl_multi_cleanup() | |||
* | |||
* Desc: Cleans up and removes a whole multi stack. It does not free or | |||
* touch any individual easy handles in any way. We need to define | |||
* in what state those handles will be if this function is called | |||
* in the middle of a transfer. | |||
* | |||
* Returns: CURLMcode type, general multi error code. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); | |||
/* | |||
* Name: curl_multi_info_read() | |||
* | |||
* Desc: Ask the multi handle if there's any messages/informationals from | |||
* the individual transfers. Messages include informationals such as | |||
* error code from the transfer or just the fact that a transfer is | |||
* completed. More details on these should be written down as well. | |||
* | |||
* Repeated calls to this function will return a new struct each | |||
* time, until a special "end of msgs" struct is returned as a signal | |||
* that there is no more to get at this point. | |||
* | |||
* The data the returned pointer points to will not survive calling | |||
* curl_multi_cleanup(). | |||
* | |||
* The 'CURLMsg' struct is meant to be very simple and only contain | |||
* very basic informations. If more involved information is wanted, | |||
* we will provide the particular "transfer handle" in that struct | |||
* and that should/could/would be used in subsequent | |||
* curl_easy_getinfo() calls (or similar). The point being that we | |||
* must never expose complex structs to applications, as then we'll | |||
* undoubtably get backwards compatibility problems in the future. | |||
* | |||
* Returns: A pointer to a filled-in struct, or NULL if it failed or ran out | |||
* of structs. It also writes the number of messages left in the | |||
* queue (after this read) in the integer the second argument points | |||
* to. | |||
*/ | |||
CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, | |||
int *msgs_in_queue); | |||
/* | |||
* Name: curl_multi_strerror() | |||
* | |||
* Desc: The curl_multi_strerror function may be used to turn a CURLMcode | |||
* value into the equivalent human readable error string. This is | |||
* useful for printing meaningful error messages. | |||
* | |||
* Returns: A pointer to a zero-terminated error message. | |||
*/ | |||
CURL_EXTERN const char *curl_multi_strerror(CURLMcode); | |||
/* | |||
* Name: curl_multi_socket() and | |||
* curl_multi_socket_all() | |||
* | |||
* Desc: An alternative version of curl_multi_perform() that allows the | |||
* application to pass in one of the file descriptors that have been | |||
* detected to have "action" on them and let libcurl perform. | |||
* See man page for details. | |||
*/ | |||
#define CURL_POLL_NONE 0 | |||
#define CURL_POLL_IN 1 | |||
#define CURL_POLL_OUT 2 | |||
#define CURL_POLL_INOUT 3 | |||
#define CURL_POLL_REMOVE 4 | |||
#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD | |||
#define CURL_CSELECT_IN 0x01 | |||
#define CURL_CSELECT_OUT 0x02 | |||
#define CURL_CSELECT_ERR 0x04 | |||
typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ | |||
curl_socket_t s, /* socket */ | |||
int what, /* see above */ | |||
void *userp, /* private callback | |||
pointer */ | |||
void *socketp); /* private socket | |||
pointer */ | |||
/* | |||
* Name: curl_multi_timer_callback | |||
* | |||
* Desc: Called by libcurl whenever the library detects a change in the | |||
* maximum number of milliseconds the app is allowed to wait before | |||
* curl_multi_socket() or curl_multi_perform() must be called | |||
* (to allow libcurl's timed events to take place). | |||
* | |||
* Returns: The callback should return zero. | |||
*/ | |||
typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ | |||
long timeout_ms, /* see above */ | |||
void *userp); /* private callback | |||
pointer */ | |||
CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, | |||
int *running_handles); | |||
CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, | |||
curl_socket_t s, | |||
int ev_bitmask, | |||
int *running_handles); | |||
CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, | |||
int *running_handles); | |||
#ifndef CURL_ALLOW_OLD_MULTI_SOCKET | |||
/* This macro below was added in 7.16.3 to push users who recompile to use | |||
the new curl_multi_socket_action() instead of the old curl_multi_socket() | |||
*/ | |||
#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) | |||
#endif | |||
/* | |||
* Name: curl_multi_timeout() | |||
* | |||
* Desc: Returns the maximum number of milliseconds the app is allowed to | |||
* wait before curl_multi_socket() or curl_multi_perform() must be | |||
* called (to allow libcurl's timed events to take place). | |||
* | |||
* Returns: CURLM error code. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, | |||
long *milliseconds); | |||
#undef CINIT /* re-using the same name as in curl.h */ | |||
#ifdef CURL_ISOCPP | |||
#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num | |||
#else | |||
/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ | |||
#define LONG CURLOPTTYPE_LONG | |||
#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT | |||
#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT | |||
#define OFF_T CURLOPTTYPE_OFF_T | |||
#define CINIT(name,type,number) CURLMOPT_/**/name = type + number | |||
#endif | |||
typedef enum { | |||
/* This is the socket callback function pointer */ | |||
CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), | |||
/* This is the argument passed to the socket callback */ | |||
CINIT(SOCKETDATA, OBJECTPOINT, 2), | |||
/* set to 1 to enable pipelining for this multi handle */ | |||
CINIT(PIPELINING, LONG, 3), | |||
/* This is the timer callback function pointer */ | |||
CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), | |||
/* This is the argument passed to the timer callback */ | |||
CINIT(TIMERDATA, OBJECTPOINT, 5), | |||
/* maximum number of entries in the connection cache */ | |||
CINIT(MAXCONNECTS, LONG, 6), | |||
/* maximum number of (pipelining) connections to one host */ | |||
CINIT(MAX_HOST_CONNECTIONS, LONG, 7), | |||
/* maximum number of requests in a pipeline */ | |||
CINIT(MAX_PIPELINE_LENGTH, LONG, 8), | |||
/* a connection with a content-length longer than this | |||
will not be considered for pipelining */ | |||
CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9), | |||
/* a connection with a chunk length longer than this | |||
will not be considered for pipelining */ | |||
CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10), | |||
/* a list of site names(+port) that are blacklisted from | |||
pipelining */ | |||
CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11), | |||
/* a list of server types that are blacklisted from | |||
pipelining */ | |||
CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12), | |||
/* maximum number of open connections in total */ | |||
CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13), | |||
CURLMOPT_LASTENTRY /* the last unused */ | |||
} CURLMoption; | |||
/* | |||
* Name: curl_multi_setopt() | |||
* | |||
* Desc: Sets options for the multi handle. | |||
* | |||
* Returns: CURLM error code. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, | |||
CURLMoption option, ...); | |||
/* | |||
* Name: curl_multi_assign() | |||
* | |||
* Desc: This function sets an association in the multi handle between the | |||
* given socket and a private pointer of the application. This is | |||
* (only) useful for curl_multi_socket uses. | |||
* | |||
* Returns: CURLM error code. | |||
*/ | |||
CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, | |||
curl_socket_t sockfd, void *sockp); | |||
#ifdef __cplusplus | |||
} /* end of extern "C" */ | |||
#endif | |||
#endif |
@ -0,0 +1,33 @@ | |||
#ifndef __STDC_HEADERS_H | |||
#define __STDC_HEADERS_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell | |||
* copies of the Software, and permit persons to whom the Software is | |||
* furnished to do so, under the terms of the COPYING file. | |||
* | |||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |||
* KIND, either express or implied. | |||
* | |||
***************************************************************************/ | |||
#include <sys/types.h> | |||
size_t fread (void *, size_t, size_t, FILE *); | |||
size_t fwrite (const void *, size_t, size_t, FILE *); | |||
int strcasecmp(const char *, const char *); | |||
int strncasecmp(const char *, const char *, size_t); | |||
#endif /* __STDC_HEADERS_H */ |
@ -0,0 +1,612 @@ | |||
#ifndef __CURL_TYPECHECK_GCC_H | |||
#define __CURL_TYPECHECK_GCC_H | |||
/*************************************************************************** | |||
* _ _ ____ _ | |||
* Project ___| | | | _ \| | | |||
* / __| | | | |_) | | | |||
* | (__| |_| | _ <| |___ | |||
* \___|\___/|_| \_\_____| | |||
* | |||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. | |||
* | |||
* This software is licensed as described in the file COPYING, which | |||
* you should have received as part of this distribution. The terms | |||
* are also available at http://curl.haxx.se/docs/copyright.html. | |||
* | |||