disable closesocketfunction
[ocurl.git] / configure.ac
blob63c754d459d9cc76ab3b84825ee8eadd8f7c92e2
1 dnl
2 dnl ocurl autoconf input
3 dnl
5 AC_INIT(ocurl,0.9.1)
7 MIN_LIBCURL_VERSION=7.28.0
9 AC_PROG_CC()
11 AC_ARG_VAR([CURLCFLAGS], [libcurl C flags])
13 AC_MSG_CHECKING([for libcurl cflags])
14 AS_IF([test -z "$CURLCFLAGS"],
15   [CURLCFLAGS=`pkg-config libcurl --cflags || curl-config --cflags`
16    AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([libcurl was not found])])])
17 AC_MSG_RESULT([$CURLCFLAGS])
19 AC_ARG_VAR([CURLLIBS], [libcurl library flags])
21 AC_MSG_CHECKING([for libcurl libs])
22 AS_IF([test -z "$CURLLIBS"],
23   [CURLLIBS=`pkg-config libcurl --libs || curl-config --libs`
24    AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([libcurl was not found])])])
25 AC_MSG_RESULT([$CURLLIBS])
27 AC_ARG_VAR([LIBCURL_VERSION], [libcurl version])
29 AC_MSG_CHECKING([for libcurl version >= $MIN_LIBCURL_VERSION])
30 AS_IF([test -z "$LIBCURL_VERSION"],
31   [LIBCURL_VERSION=`pkg-config libcurl --modversion || curl-config --version`
32    (pkg-config libcurl && pkg-config libcurl --atleast-version=${MIN_LIBCURL_VERSION}) || curl-config --checkfor ${MIN_LIBCURL_VERSION}
33    AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([${LIBCURL_VERSION} is too old])])])
34 AC_MSG_RESULT([${LIBCURL_VERSION}])
36 AC_PROG_INSTALL()
37 AC_PROG_OCAML()
38 AC_PROG_FINDLIB()
40 AC_CHECK_OCAML_PKG([bytes])
41 AC_CHECK_OCAML_PKG([lwt.unix])
42 AC_CHECK_OCAML_PKG([lwt_ppx],[lwt.ppx])
44 INSTALLDIR=$OCAMLLIB/curl
46 AC_PREFIX_PROGRAM(ocamlc)
48 AC_SUBST(CURLLIBS)
49 AC_SUBST(OCAMLLIB)
50 AC_SUBST(INSTALLDIR)
51 AC_SUBST(OCAMLFIND)
52 AC_SUBST(OCAML_PKG_bytes)
53 AC_SUBST(OCAML_PKG_lwt_unix)
54 AC_SUBST(OCAML_PKG_lwt_ppx)
56 AS_IF([test "$OCAMLFIND" == "no"],
57 [$OCAMLC -I +compiler-libs ocamlcommon.cma print_ext.ml -o print_ext],
58 [$OCAMLFIND c -linkpkg -package compiler-libs.common print_ext.ml -o print_ext])
60 AC_MSG_CHECKING([for bin-annot support])
61 AS_IF([test "$OCAMLVERSION" \> "4"],[OCAML_HAS_BIN_ANNOT=yes],[OCAML_HAS_BIN_ANNOT=no])
62 AC_MSG_RESULT([$OCAML_HAS_BIN_ANNOT])
64 AC_SUBST(OCAML_HAS_BIN_ANNOT)
66 AC_MSG_CHECKING([for ext_dll])
67 EXT_DLL=`./print_ext dll || $OCAMLC -config | fgrep ext_dll | sed -e "s/.*: //"`
68 AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([failed])] )
69 AC_MSG_RESULT([$EXT_DLL])
71 AC_MSG_CHECKING([for ext_lib])
72 EXT_LIB=`./print_ext lib || $OCAMLC -config | fgrep ext_lib | sed -e "s/.*: //"`
73 AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([failed])] )
74 AC_MSG_RESULT([$EXT_LIB])
76 AC_MSG_CHECKING([for ext_obj])
77 EXT_OBJ=`./print_ext obj || $OCAMLC -config | fgrep ext_obj | sed -e "s/.*: //"`
78 AS_IF([ test "$?" -eq 0 ],,[AC_MSG_ERROR([failed])] )
79 AC_MSG_RESULT([$EXT_OBJ])
81 AC_SUBST(EXT_DLL)
82 AC_SUBST(EXT_LIB)
83 AC_SUBST(EXT_OBJ)
85 # set CFLAGS for tests below
86 CFLAGS="$CFLAGS $CURLCFLAGS"
88 AC_CHECK_HEADERS([curl/curl.h],[],[AC_MSG_ERROR([libcurl header file missing])])
90 AC_CHECK_DECLS([CURLMOPT_TIMERFUNCTION, CURLMOPT_TIMERDATA, CURLMOPT_SOCKETFUNCTION, CURLMOPT_SOCKETDATA],
91 [], [AC_MSG_ERROR([multi API is too old, need libcurl >= 7.16.0])],
93 #include "curl/curl.h"
96 AC_CHECK_DECLS([
97 CURLOPT_FILE, CURLOPT_URL, CURLOPT_PORT, CURLOPT_PROXY, CURLOPT_USERPWD,
98 CURLOPT_PROXYUSERPWD, CURLOPT_RANGE, CURLOPT_INFILE, CURLOPT_ERRORBUFFER,
99 CURLOPT_WRITEFUNCTION, CURLOPT_READFUNCTION, CURLOPT_TIMEOUT,
100 CURLOPT_INFILESIZE, CURLOPT_POSTFIELDS, CURLOPT_REFERER, CURLOPT_FTPPORT,
101 CURLOPT_USERAGENT, CURLOPT_LOW_SPEED_LIMIT, CURLOPT_LOW_SPEED_TIME,
102 CURLOPT_RESUME_FROM, CURLOPT_COOKIE, CURLOPT_HTTPHEADER,
103 CURLOPT_HTTPPOST, CURLOPT_SSLCERT, CURLOPT_SSLCERTPASSWD, CURLOPT_SSLKEYPASSWD,
104 CURLOPT_CRLF, CURLOPT_QUOTE, CURLOPT_WRITEHEADER, CURLOPT_COOKIEFILE,
105 CURLOPT_SSLVERSION, CURLOPT_TIMECONDITION, CURLOPT_TIMEVALUE,
106 CURLOPT_CUSTOMREQUEST, CURLOPT_POSTQUOTE, CURLOPT_WRITEINFO,
107 CURLOPT_VERBOSE, CURLOPT_HEADER, CURLOPT_NOPROGRESS, CURLOPT_NOBODY,
108 CURLOPT_FAILONERROR, CURLOPT_UPLOAD, CURLOPT_POST, CURLOPT_FTPLISTONLY,
109 CURLOPT_FTPAPPEND, CURLOPT_NETRC, CURLOPT_FOLLOWLOCATION,
110 CURLOPT_TRANSFERTEXT, CURLOPT_PUT, CURLOPT_PROGRESSFUNCTION, CURLOPT_XFERINFOFUNCTION,
111 CURLOPT_PROGRESSDATA, CURLOPT_AUTOREFERER, CURLOPT_PROXYPORT,
112 CURLOPT_POSTFIELDSIZE, CURLOPT_HTTPPROXYTUNNEL, CURLOPT_INTERFACE,
113 CURLOPT_KRB4LEVEL, CURLOPT_SSL_VERIFYPEER, CURLOPT_CAINFO,
114 CURLOPT_MAXREDIRS, CURLOPT_FILETIME, CURLOPT_TELNETOPTIONS,
115 CURLOPT_MAXCONNECTS, CURLOPT_CLOSEPOLICY, CURLOPT_FRESH_CONNECT,
116 CURLOPT_FORBID_REUSE, CURLOPT_RANDOM_FILE, CURLOPT_EGDSOCKET,
117 CURLOPT_CONNECTTIMEOUT, CURLOPT_HEADERFUNCTION, CURLOPT_HTTPGET,
118 CURLOPT_SSL_VERIFYHOST, CURLOPT_COOKIEJAR, CURLOPT_SSL_CIPHER_LIST,
119 CURLOPT_HTTP_VERSION, CURLOPT_FTP_USE_EPSV, CURLOPT_SSLCERTTYPE,
120 CURLOPT_SSLKEY, CURLOPT_SSLKEYTYPE, CURLOPT_SSLENGINE,
121 CURLOPT_SSLENGINE_DEFAULT, CURLOPT_DNS_USE_GLOBAL_CACHE,
122 CURLOPT_DNS_CACHE_TIMEOUT, CURLOPT_PREQUOTE, CURLOPT_DEBUGFUNCTION,
123 CURLOPT_DEBUGDATA, CURLOPT_COOKIESESSION, CURLOPT_CAPATH,
124 CURLOPT_BUFFERSIZE, CURLOPT_NOSIGNAL, CURLOPT_SHARE,
125 CURLOPT_PROXYTYPE, CURLOPT_ENCODING, CURLOPT_HTTP200ALIASES,
126 CURLOPT_UNRESTRICTED_AUTH, CURLOPT_FTP_USE_EPRT, CURLOPT_HTTPAUTH,
127 CURLOPT_FTP_CREATE_MISSING_DIRS, CURLOPT_PROXYAUTH,
128 CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_IPRESOLVE, CURLOPT_MAXFILESIZE,
129 CURLOPT_INFILESIZE_LARGE, CURLOPT_RESUME_FROM_LARGE,
130 CURLOPT_MAXFILESIZE_LARGE, CURLOPT_NETRC_FILE, CURLOPT_FTP_SSL,
131 CURLOPT_POSTFIELDSIZE_LARGE, CURLOPT_TCP_NODELAY, CURLOPT_FTPSSLAUTH,
132 CURLOPT_IOCTLFUNCTION, CURLOPT_FTP_ACCOUNT, CURLOPT_COOKIELIST,
133 CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPT_FTP_SKIP_PASV_IP,
134 CURLOPT_FTP_FILEMETHOD, CURLOPT_LOCALPORT, CURLOPT_LOCALPORTRANGE,
135 CURLOPT_CONNECT_ONLY, CURLOPT_MAX_SEND_SPEED_LARGE,
136 CURLOPT_MAX_RECV_SPEED_LARGE, CURLOPT_FTP_ALTERNATIVE_TO_USER,
137 CURLOPT_SSL_SESSIONID_CACHE, CURLOPT_SSH_AUTH_TYPES,
138 CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPT_SSH_PRIVATE_KEYFILE,
139 CURLOPT_FTP_SSL_CCC, CURLOPT_TIMEOUT_MS, CURLOPT_CONNECTTIMEOUT_MS,
140 CURLOPT_HTTP_TRANSFER_DECODING, CURLOPT_HTTP_CONTENT_DECODING,
141 CURLOPT_NEW_FILE_PERMS, CURLOPT_NEW_DIRECTORY_PERMS, CURLOPT_POST301,
142 CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, CURLOPT_COPYPOSTFIELDS,
143 CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_SEEKFUNCTION,
144 CURLOPT_PROTOCOLS, CURLOPT_REDIR_PROTOCOLS, CURLOPT_RESOLVE, CURLOPT_DNS_SERVERS,
145 CURLOPT_MAIL_FROM, CURLOPT_MAIL_RCPT, CURLOPT_PIPEWAIT, CURLOPT_CERTINFO,
146 CURLOPT_USERNAME, CURLOPT_PASSWORD, CURLOPT_LOGIN_OPTIONS, CURLOPT_CONNECT_TO,
147 CURLOPT_POSTREDIR, CURLOPT_MIMEPOST, CURLOPT_BUFFERSIZE, CURLOPT_DOH_URL,
148 CURLOPT_TCP_FASTOPEN,
150 CURLINFO_EFFECTIVE_URL, CURLINFO_RESPONSE_CODE, CURLINFO_TOTAL_TIME,
151 CURLINFO_NAMELOOKUP_TIME, CURLINFO_CONNECT_TIME, CURLINFO_PRETRANSFER_TIME,
152 CURLINFO_SIZE_UPLOAD, CURLINFO_SIZE_DOWNLOAD, CURLINFO_SPEED_DOWNLOAD,
153 CURLINFO_SPEED_UPLOAD, CURLINFO_HEADER_SIZE, CURLINFO_REQUEST_SIZE,
154 CURLINFO_SSL_VERIFYRESULT, CURLINFO_FILETIME, CURLINFO_CONTENT_LENGTH_DOWNLOAD,
155 CURLINFO_CONTENT_LENGTH_UPLOAD, CURLINFO_STARTTRANSFER_TIME,
156 CURLINFO_CONTENT_TYPE, CURLINFO_REDIRECT_TIME, CURLINFO_REDIRECT_COUNT,
157 CURLINFO_HTTP_CONNECTCODE, CURLINFO_HTTPAUTH_AVAIL,
158 CURLINFO_PROXYAUTH_AVAIL, CURLINFO_OS_ERRNO, CURLINFO_NUM_CONNECTS,
159 CURLINFO_SSL_ENGINES, CURLINFO_COOKIELIST, CURLINFO_LASTSOCKET, CURLINFO_ACTIVESOCKET,
160 CURLINFO_FTP_ENTRY_PATH, CURLINFO_REDIRECT_URL, CURLINFO_PRIMARY_IP,
161 CURLINFO_LOCAL_IP, CURLINFO_LOCAL_PORT, CURLINFO_CONDITION_UNMET, CURLINFO_CERTINFO,
162 CURLINFO_HTTP_VERSION,
164 CURLE_UNSUPPORTED_PROTOCOL, CURLE_FAILED_INIT, CURLE_URL_MALFORMAT,
165 CURLE_URL_MALFORMAT_USER, CURLE_COULDNT_RESOLVE_PROXY,
166 CURLE_COULDNT_RESOLVE_HOST, CURLE_COULDNT_CONNECT,
167 CURLE_FTP_WEIRD_SERVER_REPLY, CURLE_FTP_ACCESS_DENIED,
168 CURLE_FTP_USER_PASSWORD_INCORRECT, CURLE_FTP_WEIRD_PASS_REPLY,
169 CURLE_FTP_WEIRD_USER_REPLY, CURLE_FTP_WEIRD_PASV_REPLY,
170 CURLE_FTP_WEIRD_227_FORMAT, CURLE_FTP_CANT_GET_HOST, CURLE_FTP_CANT_RECONNECT,
171 CURLE_FTP_COULDNT_SET_BINARY, CURLE_PARTIAL_FILE, CURLE_FTP_COULDNT_RETR_FILE,
172 CURLE_FTP_WRITE_ERROR, CURLE_FTP_QUOTE_ERROR, CURLE_HTTP_RETURNED_ERROR,
173 CURLE_WRITE_ERROR, CURLE_MALFORMAT_USER, CURLE_FTP_COULDNT_STOR_FILE,
174 CURLE_READ_ERROR, CURLE_OUT_OF_MEMORY, CURLE_OPERATION_TIMEOUTED,
175 CURLE_FTP_COULDNT_SET_ASCII, CURLE_FTP_PORT_FAILED, CURLE_FTP_COULDNT_USE_REST,
176 CURLE_FTP_COULDNT_GET_SIZE, CURLE_HTTP_RANGE_ERROR, CURLE_HTTP_POST_ERROR,
177 CURLE_SSL_CONNECT_ERROR, CURLE_BAD_DOWNLOAD_RESUME,
178 CURLE_FILE_COULDNT_READ_FILE, CURLE_LDAP_CANNOT_BIND, CURLE_LDAP_SEARCH_FAILED,
179 CURLE_LIBRARY_NOT_FOUND, CURLE_FUNCTION_NOT_FOUND, CURLE_ABORTED_BY_CALLBACK,
180 CURLE_BAD_FUNCTION_ARGUMENT, CURLE_BAD_CALLING_ORDER, CURLE_INTERFACE_FAILED,
181 CURLE_BAD_PASSWORD_ENTERED, CURLE_TOO_MANY_REDIRECTS,
182 CURLE_UNKNOWN_TELNET_OPTION, CURLE_TELNET_OPTION_SYNTAX,
183 CURLE_SSL_PEER_CERTIFICATE, CURLE_GOT_NOTHING, CURLE_SSL_ENGINE_NOTFOUND,
184 CURLE_SSL_ENGINE_SETFAILED, CURLE_SEND_ERROR, CURLE_RECV_ERROR,
185 CURLE_SHARE_IN_USE, CURLE_SSL_CERTPROBLEM, CURLE_SSL_CIPHER, CURLE_SSL_CACERT,
186 CURLE_BAD_CONTENT_ENCODING, CURLE_LDAP_INVALID_URL, CURLE_FILESIZE_EXCEEDED,
187 CURLE_FTP_SSL_FAILED, CURLE_SEND_FAIL_REWIND, CURLE_SSL_ENGINE_INITFAILED,
188 CURLE_LOGIN_DENIED, CURLE_TFTP_NOTFOUND, CURLE_TFTP_PERM,
189 CURLE_REMOTE_DISK_FULL, CURLE_TFTP_ILLEGAL, CURLE_TFTP_UNKNOWNID,
190 CURLE_REMOTE_FILE_EXISTS, CURLE_TFTP_NOSUCHUSER, CURLE_CONV_FAILED,
191 CURLE_CONV_REQD, CURLE_SSL_CACERT_BADFILE, CURLE_REMOTE_FILE_NOT_FOUND,
192 CURLE_SSH, CURLE_SSL_SHUTDOWN_FAILED, CURLE_AGAIN,
194 CURLMOPT_MAXCONNECTS, CURLMOPT_PIPELINING, CURLMOPT_MAX_PIPELINE_LENGTH,
195 CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_TOTAL_CONNECTIONS,
197 CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, CURL_SSLVERSION_TLSv1_3,
199 CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_0, CURL_HTTP_VERSION_2TLS,
200 CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_3,
202 CURLSSLBACKEND_NONE, CURLSSLBACKEND_OPENSSL, CURLSSLBACKEND_GNUTLS, CURLSSLBACKEND_NSS,
203 CURLSSLBACKEND_GSKIT, CURLSSLBACKEND_WOLFSSL, CURLSSLBACKEND_SCHANNEL, CURLSSLBACKEND_SECURETRANSPORT,
204 CURLSSLBACKEND_MBEDTLS, CURLSSLBACKEND_MESALINK, CURLSSLBACKEND_BEARSSL,
206 CURLOPT_SSL_OPTIONS,
208 CURL_VERSION_TLSAUTH_SRP, CURL_VERSION_NTLM_WB],
209 [], [],
211 #include "curl/curl.h"
214 AC_CHECK_DECLS(
215 [curl_multi_poll],
216 AC_DEFINE([HAVE_CURL_MULTI_POLL], [1], [Does libcurl define curl_multi_poll]),
219 #include "curl/curl.h"
222 AC_CONFIG_HEADERS(config.h)
223 AC_CONFIG_FILES([Makefile examples/Makefile])
225 AC_OUTPUT