Home | History | Annotate | Download | only in c-ares
      1 
      2 
      3                           ___       __ _ _ __ ___  ___ 
      4                          / __| ___ / _` | '__/ _ \/ __|
      5                         | (_  |___| (_| | | |  __/\__ \
      6                          \___|     \__,_|_|  \___||___/
      7 
      8 
      9                 How to build c-ares using MSVC or Visual Studio
     10                =================================================
     11 
     12 
     13 
     14   How to build using MSVC from the command line
     15   ---------------------------------------------
     16 
     17   Open a command prompt window and ensure that the environment is properly
     18   set up in order to use MSVC or Visual Studio compiler tools.
     19 
     20   Change to c-ares source folder where Makefile.msvc file is located and run:
     21 
     22   > nmake -f Makefile.msvc
     23 
     24   This will build all c-ares libraries as well as three sample programs.
     25 
     26   Once the above command has finished a new folder named MSVCXX will exist
     27   below the folder where makefile.msvc is found. The name of the folder
     28   depends on the MSVC compiler version being used to build c-ares.
     29 
     30   Below the MSVCXX folder there will exist four folders named 'cares',
     31   'ahost', 'acountry', and 'adig'. The 'cares' folder is the one that
     32   holds the c-ares libraries you have just generated, the other three
     33   hold sample programs that use the libraries.
     34 
     35   The above command builds four versions of the c-ares library, dynamic
     36   and static versions and each one in release and debug flavours. Each
     37   of these is found in folders named dll-release, dll-debug, lib-release,
     38   and lib-debug, which hang from the 'cares' folder mentioned above. Each
     39   sample program also has folders with the same names to reflect which
     40   library version it is using.
     41 
     42 
     43   How to install using MSVC from the command line
     44   -----------------------------------------------
     45 
     46   In order to allow easy usage of c-ares libraries it may be convenient to
     47   install c-ares libraries and header files to a common subdirectory tree.
     48 
     49   Once that c-ares libraries have been built using procedure described above,
     50   use same command prompt window to define environment variable INSTALL_DIR
     51   to designate the top subdirectory where installation of c-ares libraries and
     52   header files will be done.
     53 
     54   > set INSTALL_DIR=c:\c-ares
     55 
     56   Afterwards, run following command to actually perform the installation:
     57 
     58   > nmake -f Makefile.msvc install
     59 
     60   Installation procedure will copy c-ares libraries to subdirectory 'lib' and
     61   c-ares header files to subdirectory 'include' below the INSTALL_DIR subdir.
     62 
     63   When environment variable INSTALL_DIR is not defined, installation is done
     64   to c-ares source folder where Makefile.msvc file is located.
     65 
     66 
     67   How to build using Visual Studio 6 IDE
     68   --------------------------------------
     69 
     70   A VC++ 6.0 reference workspace (vc6aws.dsw) is available within the 'vc'
     71   folder to allow proper building of the library and sample programs.
     72 
     73   1) Open the vc6aws.dsw workspace with MSVC6's IDE.
     74   2) Select 'Build' from top menu.
     75   3) Select 'Batch Build' from dropdown menu.
     76   4) Make sure that the sixteen project configurations are 'checked'.
     77   5) Click on the 'Build' button.
     78   6) Once the sixteen project configurations are built you are done.
     79 
     80   Dynamic and static c-ares libraries are built in debug and release flavours,
     81   and can be located each one in its own subdirectory, dll-debug, dll-release,
     82   lib-debug and lib-release, all of them below the 'vc\cares' subdirectory.
     83 
     84   In the same way four executable versions of each sample program are built,
     85   each using its respective library. The resulting sample executables are
     86   located in its own subdirectory, dll-debug, dll-release, lib-debug and
     87   lib-release, below the 'vc\acountry', 'vc\adig' and 'vc\ahost'folders.
     88 
     89   These reference VC++ 6.0 configurations are generated using the dynamic CRT.
     90 
     91 
     92   How to build using Visual Studio 2003 or newer IDE
     93   --------------------------------------------------
     94 
     95   First you have to convert the VC++ 6.0 reference workspace and project files
     96   to the Visual Studio IDE version you are using, following next steps:
     97 
     98   1) Open vc\vc6aws.dsw with VS20XX.
     99   2) Allow VS20XX to update all projects and workspaces.
    100   3) Save ALL and close VS20XX.
    101   4) Open vc\vc6aws.sln with VS20XX.
    102   5) Select batch build, check 'all' projects and click 'build' button.
    103 
    104   Same comments relative to generated files and folders as done above for
    105   Visual Studio 6 IDE apply here.
    106 
    107 
    108   Relationship between c-ares library file names and versions
    109   -----------------------------------------------------------
    110 
    111   c-ares static release library version files:
    112 
    113       libcares.lib -> static release library
    114 
    115   c-ares static debug library version files:
    116 
    117       libcaresd.lib -> static debug library
    118 
    119   c-ares dynamic release library version files:
    120 
    121       cares.dll -> dynamic release library
    122       cares.lib -> import library for the dynamic release library
    123       cares.exp -> export file for the dynamic release library
    124 
    125   c-ares dynamic debug library version files:
    126 
    127       caresd.dll -> dynamic debug library
    128       caresd.lib -> import library for the dynamic debug library
    129       caresd.exp -> export file for the dynamic debug library
    130       caresd.pdb -> debug symbol file for the dynamic debug library
    131 
    132 
    133   How to use c-ares static libraries
    134   ----------------------------------
    135 
    136   When using the c-ares static library in your program, you will have to
    137   define preprocessor symbol CARES_STATICLIB while building your program,
    138   otherwise you will get errors at linkage stage.
    139 
    140 
    141 Have Fun!
    142  
    143