73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
$Id: README.ares,v 1.12 2007-05-31 11:34:32 bagder Exp $
 | 
						|
                                  _   _ ____  _     
 | 
						|
                              ___| | | |  _ \| |    
 | 
						|
                             / __| | | | |_) | |    
 | 
						|
                            | (__| |_| |  _ <| |___ 
 | 
						|
                             \___|\___/|_| \_\_____|
 | 
						|
 | 
						|
          How To Build libcurl to Use c-ares For Asynch Name Resolves
 | 
						|
          ===========================================================
 | 
						|
 | 
						|
c-ares: 
 | 
						|
  http://daniel.haxx.se/projects/c-ares/
 | 
						|
 | 
						|
NOTE
 | 
						|
  The latest libcurl version requires c-ares 1.4.0 or later.
 | 
						|
 | 
						|
  Once upon the time libcurl built fine with the "original" ares. That is no
 | 
						|
  longer true. You need to use c-ares.
 | 
						|
 | 
						|
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.
 |