Revert "Imported Upstream version 7.44.0"
[platform/upstream/curl.git] / lib / README.ares
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7           How To Build libcurl to Use c-ares For Asynch Name Resolves
8           ===========================================================
9
10 c-ares:
11   http://c-ares.haxx.se/
12
13 NOTE
14   The latest libcurl version requires c-ares 1.6.0 or later.
15
16   Once upon the time libcurl built fine with the "original" ares. That is no
17   longer true. You need to use c-ares.
18
19 Build c-ares
20 ============
21
22 1. unpack the c-ares archive
23 2. cd c-ares-dir
24 3. ./configure
25 4. make
26 5. make install
27
28 Build libcurl to use c-ares in the curl source tree
29 ===================================================
30
31 1. name or symlink the c-ares source directory 'ares' in the curl source
32    directory
33 2. ./configure --enable-ares
34
35   Optionally, you can point out the c-ares install tree root with the the
36   --enable-ares option.
37
38 3. make
39
40 Build libcurl to use an installed c-ares
41 ========================================
42
43 1. ./configure --enable-ares=/path/to/ares/install
44 2. make
45
46 c-ares on win32
47 ===============
48 (description brought by Dominick Meglio)
49
50 First I compiled c-ares. I changed the default C runtime library to be the
51 single-threaded rather than the multi-threaded (this seems to be required to
52 prevent linking errors later on). Then I simply build the areslib project (the
53 other projects adig/ahost seem to fail under MSVC).
54
55 Next was libcurl. I opened lib/config-win32.h and I added a:
56  #define USE_ARES 1
57
58 Next thing I did was I added the path for the ares includes to the include
59 path, and the libares.lib to the libraries.
60
61 Lastly, I also changed libcurl to be single-threaded rather than
62 multi-threaded, again this was to prevent some duplicate symbol errors. I'm
63 not sure why I needed to change everything to single-threaded, but when I
64 didn't I got redefinition errors for several CRT functions (malloc, stricmp,
65 etc.)
66
67 I would have modified the MSVC++ project files, but I only have VC.NET and it
68 uses a different format than VC6.0 so I didn't want to go and change
69 everything and remove VC6.0 support from libcurl.