//
// libcurl.dll curl network retrieval client library
//

// Build-time options (uncomment these to enable)
#define ENABLE_ZLIB     // Enable gzip/deflate decompression
//#define ENABLE_SSL      // Enable SSL for HTTPS/FTPS (requires S60 Open C SDK)

TARGET        libcurl.dll
TARGETTYPE    dll
UID    0x1000008d 0xF0206D00

MACRO       BUILDING_LIBCURL

#ifdef ENABLE_ZLIB
MACRO       HAVE_LIBZ
#endif
#ifdef ENABLE_SSL
MACRO       USE_OPENSSL
#endif

SOURCEPATH  ../../../lib
SOURCE \
  file.c timeval.c base64.c hostip.c progress.c formdata.c             \
  cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c      \
  ldap.c vtls/openssl.c version.c getenv.c escape.c mprintf.c telnet.c \
  netrc.c getinfo.c transfer.c strequal.c easy.c security.c krb4.c     \
  curl_fnmatch.c fileinfo.c ftplistparser.c wildcard.c krb5.c          \
  memdebug.c http_chunks.c strtok.c connect.c llist.c hash.c multi.c   \
  content_encoding.c share.c http_digest.c md4.c md5.c curl_rand.c     \
  http_negotiate.c inet_pton.c strtoofft.c strerror.c amigaos.c        \
  hostasyn.c hostip4.c hostip6.c hostsyn.c inet_ntop.c parsedate.c     \
  select.c vtls/gtls.c vtls/vtls.c tftp.c splay.c strdup.c socks.c     \
  ssh.c vtls/nss.c strcase.c curl_addrinfo.c socks_gssapi.c            \
  socks_sspi.c curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c    \
  pop3.c smtp.c pingpong.c rtsp.c curl_threads.c warnless.c hmac.c     \
  curl_rtmp.c openldap.c curl_gethostname.c gopher.c   \
  idn_win32.c vtls/cyassl.c http_proxy.c non-ascii.c                   \
  asyn-ares.c asyn-thread.c curl_gssapi.c http_ntlm.c curl_ntlm_wb.c   \
  curl_ntlm_core.c curl_sasl.c vtls/schannel.c curl_multibyte.c        \
  vtls/darwinssl.c conncache.c curl_sasl_sspi.c smb.c curl_endian.c    \
  curl_des.c curl_range.c system_win32.c sha256.c                      \
  vauth/vauth.c vauth/cleartext.c vauth/cram.c vauth/digest.c          \
  vauth/digest_sspi.c vauth/krb5_gssapi.c vauth/krb5_sspi.c            \
  vauth/ntlm.c vauth/ntlm_sspi.c vauth/oauth2.c vauth/spnego_gssapi.c  \
  vauth/spnego_sspi.c

USERINCLUDE   ../../../lib ../../../include/curl
#ifdef ENABLE_SSL
SYSTEMINCLUDE /epoc32/include/osextensions/stdapis
// Older versions of the SDK need this instead:
//USERINCLUDE /epoc32/include/stdapis/openssl
#endif

SYSTEMINCLUDE ../../../include /epoc32/include/stdapis /epoc32/include

LIBRARY       euser.lib libc.lib
#ifdef ENABLE_ZLIB
LIBRARY       ezlib.lib
#endif
#ifdef ENABLE_SSL
LIBRARY       libssl.lib libcrypto.lib
#endif

CAPABILITY NetworkServices

EPOCALLOWDLLDATA
