1 $Id: README.ares,v 1.9 2004/01/09 07:45:47 bagder Exp $
6 \___|\___/|_| \_\_____|
8 How To Build libcurl to Use ares For Asynch Name Resolves
9 =========================================================
12 ftp://athena-dist.mit.edu/pub/ATHENA/ares/ares-1.1.1.tar.gz
13 http://curl.haxx.se/dev/ares-1.1.1.tar.gz
14 http://curl.sourceforge.net/dev/ares-1.1.1.tar.gz
15 http://curl.planetmirror.com/dev/ares-1.1.1.tar.gz
16 http://curl.tsuren.net/dev/ares-1.1.1.tar.gz
18 c-ares: (a patched and improved version of ares)
19 http://curl.haxx.se/beta/arescurl-1.0-pre1.tar.gz
22 libcurl works with ares 1.1.1, but several patches and improvements have
23 been put into the c-ares package which has made it more portable and better
24 working on several platforms.
29 1. unpack the ares archive
34 Build libcurl to use ares in the curl source tree
35 =================================================
37 1. name the ares source directory 'ares' in the curl source directory
38 2. ./configure --enable-ares
41 Build libcurl to use an installed ares
42 ======================================
44 1. ./configure --enable-ares=/path/to/ares/install
50 If the configure script enables IPv6 support you need to explicitly disable
51 that (--disable-ipv6) since ares isn't IPv6 compatible (yet).
55 (description brought by Dominick Meglio)
57 First I compiled curl-ares. I changed the default C runtime library to be the
58 single-threaded rather than the multi-threaded (this seems to be required to
59 prevent linking errors later on). Then I simply build the areslib project (the
60 other projects adig/ahost seem to fail under MSVC).
62 Next was libcurl. I opened lib/config-win32.h and I added a:
65 Next thing I did was I added the path for the ares includes to the include
66 path, and the libares.lib to the libraries.
68 Lastly, I also changed libcurl to be single-threaded rather than
69 multi-threaded, again this was to prevent some duplicate symbol errors. I'm
70 not sure why I needed to change everything to single-threaded, but when I
71 didn't I got redefinition errors for several CRT functions (malloc, stricmp,
74 I would have modified the MSVC++ project files, but I only have VC.NET and it
75 uses a different format than VC6.0 so I didn't want to go and change
76 everything and remove VC6.0 support from libcurl.