$Id: README.ares,v 1.10 2004/04/06 07:59:11 bagder Exp $ _ _ ____ _ ___| | | | _ \| | / __| | | | |_) | | | (__| |_| | _ <| |___ \___|\___/|_| \_\_____| How To Build libcurl to Use c-ares For Asynch Name Resolves =========================================================== c-ares: http://daniel.haxx.se/projects/c-ares/ NOTE libcurl 7.11.1 builds with c-ares 1.1.0, but 7.11.2 and later require c-ares 1.2.0 or alter. Once upon the time libcurl built fine with the "original" ares. That is no longer true. You need to use c-ares. c-ares is based on ares but improved. Build c-ares ============ 1. unpack the c-ares archive 2. cd c-ares-dir 3. ./configure 4. make Build libcurl to use c-ares in the curl source tree =================================================== 1. name the c-ares source directory 'ares' in the curl source directory (if you have checked out the curl sources from CVS, you will already have c-ares in a directory named ares). 2. ./configure --enable-ares 3. make Build libcurl to use an installed c-ares ======================================== 1. ./configure --enable-ares=/path/to/ares/install 2. make c-ares and ipv6 =============== If the configure script enables IPv6 support you need to explicitly disable that (--disable-ipv6) since c-ares isn't IPv6 compatible (yet). c-ares on win32 =============== (description brought by Dominick Meglio) First I compiled c-ares. I changed the default C runtime library to be the single-threaded rather than the multi-threaded (this seems to be required to prevent linking errors later on). Then I simply build the areslib project (the other projects adig/ahost seem to fail under MSVC). Next was libcurl. I opened lib/config-win32.h and I added a: #define USE_ARES 1 Next thing I did was I added the path for the ares includes to the include path, and the libares.lib to the libraries. Lastly, I also changed libcurl to be single-threaded rather than multi-threaded, again this was to prevent some duplicate symbol errors. I'm not sure why I needed to change everything to single-threaded, but when I didn't I got redefinition errors for several CRT functions (malloc, stricmp, etc.) I would have modified the MSVC++ project files, but I only have VC.NET and it uses a different format than VC6.0 so I didn't want to go and change everything and remove VC6.0 support from libcurl.