c-ares refactored their source tree in 1.17.0 which we did not apply in our update to 1.17.1. This commit syncs our source with their new structure for easier maintenance going forward. cares.gyp is updated accordingly. Refs: https://github.com/c-ares/c-ares/pull/349 Refs: https://github.com/nodejs/node/pull/36207 PR-URL: https://github.com/nodejs/node/pull/39653 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
102 lines
3.6 KiB
Text
102 lines
3.6 KiB
Text
|
|
|
|
___ __ _ _ __ ___ ___
|
|
/ __| ___ / _` | '__/ _ \/ __|
|
|
| (_ |___| (_| | | | __/\__ \
|
|
\___| \__,_|_| \___||___/
|
|
|
|
|
|
How to build c-ares using MSVC or Visual Studio
|
|
=================================================
|
|
|
|
|
|
|
|
How to build using MSVC from the command line
|
|
---------------------------------------------
|
|
|
|
Open a command prompt window and ensure that the environment is properly
|
|
set up in order to use MSVC or Visual Studio compiler tools.
|
|
|
|
Change to c-ares source folder where Makefile.msvc file is located and run:
|
|
|
|
> nmake -f Makefile.msvc
|
|
|
|
This will build all c-ares libraries as well as three sample programs.
|
|
|
|
Once the above command has finished a new folder named MSVCXX will exist
|
|
below the folder where makefile.msvc is found. The name of the folder
|
|
depends on the MSVC compiler version being used to build c-ares.
|
|
|
|
Below the MSVCXX folder there will exist four folders named 'cares',
|
|
'ahost', 'acountry', and 'adig'. The 'cares' folder is the one that
|
|
holds the c-ares libraries you have just generated, the other three
|
|
hold sample programs that use the libraries.
|
|
|
|
The above command builds four versions of the c-ares library, dynamic
|
|
and static versions and each one in release and debug flavours. Each
|
|
of these is found in folders named dll-release, dll-debug, lib-release,
|
|
and lib-debug, which hang from the 'cares' folder mentioned above. Each
|
|
sample program also has folders with the same names to reflect which
|
|
library version it is using.
|
|
|
|
|
|
How to install using MSVC from the command line
|
|
-----------------------------------------------
|
|
|
|
In order to allow easy usage of c-ares libraries it may be convenient to
|
|
install c-ares libraries and header files to a common subdirectory tree.
|
|
|
|
Once that c-ares libraries have been built using procedure described above,
|
|
use same command prompt window to define environment variable INSTALL_DIR
|
|
to designate the top subdirectory where installation of c-ares libraries and
|
|
header files will be done.
|
|
|
|
> set INSTALL_DIR=c:\c-ares
|
|
|
|
Afterwards, run following command to actually perform the installation:
|
|
|
|
> nmake -f Makefile.msvc install
|
|
|
|
Installation procedure will copy c-ares libraries to subdirectory 'lib' and
|
|
c-ares header files to subdirectory 'include' below the INSTALL_DIR subdir.
|
|
|
|
When environment variable INSTALL_DIR is not defined, installation is done
|
|
to c-ares source folder where Makefile.msvc file is located.
|
|
|
|
|
|
|
|
Relationship between c-ares library file names and versions
|
|
-----------------------------------------------------------
|
|
|
|
c-ares static release library version files:
|
|
|
|
libcares.lib -> static release library
|
|
|
|
c-ares static debug library version files:
|
|
|
|
libcaresd.lib -> static debug library
|
|
|
|
c-ares dynamic release library version files:
|
|
|
|
cares.dll -> dynamic release library
|
|
cares.lib -> import library for the dynamic release library
|
|
cares.exp -> export file for the dynamic release library
|
|
|
|
c-ares dynamic debug library version files:
|
|
|
|
caresd.dll -> dynamic debug library
|
|
caresd.lib -> import library for the dynamic debug library
|
|
caresd.exp -> export file for the dynamic debug library
|
|
caresd.pdb -> debug symbol file for the dynamic debug library
|
|
|
|
|
|
How to use c-ares static libraries
|
|
----------------------------------
|
|
|
|
When using the c-ares static library in your program, you will have to
|
|
define preprocessor symbol CARES_STATICLIB while building your program,
|
|
otherwise you will get errors at linkage stage.
|
|
|
|
|
|
Have Fun!
|
|
|