$Id$
                                  _   _ ____  _     
                              ___| | | |  _ \| |    
                             / __| | | | |_) | |    
                            | (__| |_| |  _ <| |___ 
                             \___|\___/|_| \_\_____|

          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.
