diff --git a/config-mingw.mk b/config-mingw.mk
index cd6e159d..eb6cc23d 100644
--- a/config-mingw.mk
+++ b/config-mingw.mk
@@ -24,7 +24,7 @@ CC = $(PREFIX)gcc
AR = $(PREFIX)ar
E=.exe
-CFLAGS=-g --std=gnu89 -Wno-variadic-macros
+CFLAGS=-g --std=gnu89 -Wno-variadic-macros -D_WIN32_WINNT=0x0501
LINKFLAGS=-lm
RUNNER_CFLAGS=$(CFLAGS) -D_GNU_SOURCE # Need _GNU_SOURCE for strdup?
@@ -32,8 +32,9 @@ RUNNER_LINKFLAGS=$(LINKFLAGS)
RUNNER_LIBS=-lws2_32
RUNNER_SRC=test/runner-win.c
-uv.a: uv-win.o uv-common.o
+uv.a: uv-win.o uv-common.o c-ares/libcares.a
$(AR) rcs uv.a uv-win.o uv-common.o
+ $(AR) rs uv.a $(shell $(AR) -t c-ares/libcares.a | awk '{print "c-ares/" $$1}')
uv-win.o: uv-win.c uv.h uv-win.h
$(CC) $(CFLAGS) -c uv-win.c -o uv-win.o
@@ -41,5 +42,11 @@ uv-win.o: uv-win.c uv.h uv-win.h
uv-common.o: uv-common.c uv.h uv-win.h
$(CC) $(CFLAGS) -c uv-common.c -o uv-common.o
-distclean-platform:
+c-ares/libcares.a:
+ $(MAKE) -C c-ares -f Makefile.m32 libcares.a
+
clean-platform:
+ $(MAKE) -C c-ares -f Makefile.m32 clean
+
+distclean-platform:
+ $(MAKE) -C c-ares -f Makefile.m32 distclean
diff --git a/config-unix.mk b/config-unix.mk
index 3f9bc2f8..8815a8e6 100644
--- a/config-unix.mk
+++ b/config-unix.mk
@@ -35,8 +35,9 @@ RUNNER_LINKFLAGS=$(LINKFLAGS) -pthread
RUNNER_LIBS=
RUNNER_SRC=test/runner-unix.c
-uv.a: uv-unix.o uv-common.o ev/ev.o
+uv.a: uv-unix.o uv-common.o ev/ev.o c-ares/libcares.a
$(AR) rcs uv.a uv-unix.o uv-common.o ev/ev.o
+ $(AR) rs uv.a $(shell $(AR) -t c-ares/libcares.a | awk '{print "c-ares/" $$1}')
uv-unix.o: uv-unix.c uv.h uv-unix.h
$(CC) $(CFLAGS) -c uv-unix.c -o uv-unix.o
@@ -50,6 +51,9 @@ ev/ev.o: ev/config.h ev/ev.c
ev/config.h:
cd ev && ./configure
+c-ares/libcares.a:
+ # TODO!
+
clean-platform:
$(MAKE) -C ev clean
diff --git a/msvs/c-ares.vcxproj b/msvs/c-ares.vcxproj
new file mode 100644
index 00000000..aa03910b
--- /dev/null
+++ b/msvs/c-ares.vcxproj
@@ -0,0 +1,183 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ Win32Proj
+
+
+
+ StaticLibrary
+ true
+
+
+ StaticLibrary
+ true
+
+
+ StaticLibrary
+ false
+
+
+ StaticLibrary
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)..\build\$(Platform)\$(Configuration)\
+ $(SolutionDir)..\build\$(Platform)\$(Configuration)\
+
+
+ $(SolutionDir)..\build\$(Platform)\$(Configuration)\
+ $(SolutionDir)..\build\$(Platform)\$(Configuration)\
+
+
+ $(SolutionDir)..\build\$(Platform)\$(Configuration)\
+ $(SolutionDir)..\build\$(Platform)\$(Configuration)\
+
+
+ $(SolutionDir)..\build\$(Platform)\$(Configuration)\
+ $(SolutionDir)..\build\$(Platform)\$(Configuration)\
+
+
+
+ WIN32;_DEBUG;_LIB;CARES_BUILDING_LIBRARY;CARES_STATICLIB;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+ Level3
+ ProgramDatabase
+ Disabled
+ ..\c-ares
+
+
+
+
+ WIN32;_DEBUG;_LIB;CARES_BUILDING_LIBRARY;CARES_STATICLIB;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+ Level3
+ ProgramDatabase
+ Disabled
+ ..\c-ares
+
+
+
+
+ MultiThreaded
+ ..\c-ares
+ WIN32;_LIB;CARES_BUILDING_LIBRARY;CARES_STATICLIB;%(PreprocessorDefinitions)
+
+
+
+
+ MultiThreaded
+ ..\c-ares
+ WIN32;_LIB;CARES_BUILDING_LIBRARY;CARES_STATICLIB;%(PreprocessorDefinitions)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/msvs/libuv.sln b/msvs/libuv.sln
index e68d41d3..a4eca0a6 100644
--- a/msvs/libuv.sln
+++ b/msvs/libuv.sln
@@ -7,6 +7,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libuv-test", "libuv-test.vc
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libuv-benchmark", "libuv-benchmark.vcxproj", "{6CCBDAFD-7A11-133D-357B-E2D2F4C621E4}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "c-ares", "c-ares.vcxproj", "{2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -39,6 +41,14 @@ Global
{6CCBDAFD-7A11-133D-357B-E2D2F4C621E4}.Release|Win32.Build.0 = Release|Win32
{6CCBDAFD-7A11-133D-357B-E2D2F4C621E4}.Release|x64.ActiveCfg = Release|x64
{6CCBDAFD-7A11-133D-357B-E2D2F4C621E4}.Release|x64.Build.0 = Release|x64
+ {2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}.Debug|Win32.Build.0 = Debug|Win32
+ {2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}.Debug|x64.ActiveCfg = Debug|x64
+ {2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}.Debug|x64.Build.0 = Debug|x64
+ {2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}.Release|Win32.ActiveCfg = Release|Win32
+ {2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}.Release|Win32.Build.0 = Release|Win32
+ {2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}.Release|x64.ActiveCfg = Release|x64
+ {2B6A4644-EBA9-DFB5-AF35-6C56EDF05C7F}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/msvs/libuv.vcxproj b/msvs/libuv.vcxproj
index 7b11f49e..767bd5f2 100644
--- a/msvs/libuv.vcxproj
+++ b/msvs/libuv.vcxproj
@@ -130,6 +130,16 @@
+
+
+ {2b6a4644-eba9-dfb5-af35-6c56edf05c7f}
+ true
+ true
+ false
+ true
+ false
+
+
diff --git a/uv.h b/uv.h
index ce534809..491e4676 100644
--- a/uv.h
+++ b/uv.h
@@ -28,9 +28,13 @@ extern "C" {
#define UV_VERSION_MAJOR 0
#define UV_VERSION_MINOR 1
+#define CARES_STATICLIB 1
+
#include /* int64_t */
#include /* size_t */
+#include "c-ares/ares.h"
+
#ifndef _SSIZE_T_
typedef intptr_t ssize_t;
#endif