will also need to install Windows Driver Kit (WDK) 8.1 Update.
It is important to get the Visual Studio related environment variables and to
-have the $PATH inside the bash to point to the proper compiler and linker. One
-easy way to achieve this is to get into the "Developer Command prompt for visual
-studio" and through it enter into the bash shell available from msys by typing
+have the $PATH inside the bash to point to the proper compiler and linker. One
+easy way to achieve this for VS2013 is to get into the "VS2013 x86 Native
+Tools Command Prompt" (in a default installation of Visual Studio 2013 this can
+be found under the following location:
+C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts)
+and through it enter into the bash shell available from msys by typing
'bash --login'.
+There is support for generating 64 bit binaries too. To compile under x64,
+open the "VS2013 x64 Native Tools Command Prompt" (if your current running OS
+is 64 bit) or "VS2013 x64 Cross Tools Command Prompt" (if your current running
+OS is not 64 bit) instead of opening its x86 variant. This will point the
+compiler and the linker to their 64 bit equivalent.
+
If after the above step, a 'which link' inside MSYS's bash says,
"/bin/link.exe", rename /bin/link.exe to something else so that the
Visual studio's linker is used. You should also see a 'which sort' report
AM_CPPFLAGS += $(PTHREAD_INCLUDES)
AM_CPPFLAGS += $(MSVC_CFLAGS)
AM_LDFLAGS += $(PTHREAD_LDFLAGS)
+AM_LDFLAGS += $(MSVC64_LDFLAGS)
endif
AM_CPPFLAGS += -I $(top_srcdir)/include
AC_FUNC_STRERROR_R
OVS_CHECK_ESX
+OVS_CHECK_WIN64
OVS_CHECK_WIN32
OVS_CHECK_VISUAL_STUDIO_DDK
OVS_CHECK_COVERAGE
AC_DEFINE([ESX], [1], [Define to 1 if building on ESX.])
fi])
+dnl Checks for MSVC x64 compiler.
+AC_DEFUN([OVS_CHECK_WIN64],
+ [AC_CACHE_CHECK(
+ [for MSVC x64 compiler],
+ [cl_cv_x64],
+ [dnl "cl" writes x64 output to stdin:
+ if (cl) 2>&1 | grep 'x64' >/dev/null 2>&1; then
+ cl_cv_x64=yes
+ MSVC64_LDFLAGS=" /MACHINE:X64 "
+ else
+ cl_cv_x64=no
+ MSVC64_LDFLAGS=""
+ fi])
+ AC_SUBST([MSVC64_LDFLAGS])
+])
+
dnl Checks for WINDOWS.
AC_DEFUN([OVS_CHECK_WIN32],
[AC_CHECK_HEADER([windows.h],
AC_MSG_ERROR([Invalid --with-pthread value])
;;
*)
- PTHREAD_WIN32_DIR=$withval/lib/x86
- PTHREAD_WIN32_DIR_DLL=/${withval/:/}/dll/x86
+ if (cl) 2>&1 | grep 'x64' >/dev/null 2>&1; then
+ cl_cv_x64=yes
+ else
+ cl_cv_x64=no
+ fi
+ if test "$cl_cv_x64" = yes; then
+ PTHREAD_WIN32_DIR=$withval/lib/x64
+ PTHREAD_WIN32_DIR_DLL=/${withval/:/}/dll/x64
+ PTHREAD_WIN32_DIR_DLL_WIN_FORM=$withval/dll/x64
+ else
+ PTHREAD_WIN32_DIR=$withval/lib/x86
+ PTHREAD_WIN32_DIR_DLL=/${withval/:/}/dll/x86
+ PTHREAD_WIN32_DIR_DLL_WIN_FORM=$withval/dll/x86
+ fi
PTHREAD_INCLUDES=-I$withval/include
PTHREAD_LDFLAGS=-L$PTHREAD_WIN32_DIR
PTHREAD_LIBS="-lpthreadVC2"
+ AC_SUBST([PTHREAD_WIN32_DIR_DLL_WIN_FORM])
AC_SUBST([PTHREAD_WIN32_DIR_DLL])
AC_SUBST([PTHREAD_INCLUDES])
AC_SUBST([PTHREAD_LDFLAGS])
cp -f $(top_srcdir)/ovsdb/ovsdb-client.pdb windows/ovs-windows-installer/Symbols/
cp -f $(top_srcdir)/ovsdb/ovsdb-tool.pdb windows/ovs-windows-installer/Symbols/
#Third party files needed by the installer
- cp -f $(PTHREAD_TEMP_DIR)/../../dll/x86/*.dll windows/ovs-windows-installer/Binaries/
+ cp -f $(PTHREAD_WIN32_DIR_DLL_WIN_FORM)/*.dll windows/ovs-windows-installer/Binaries/
cp -f "/c/Program Files (x86)/Common Files/Merge Modules/Microsoft_VC120_CRT_x86.msm" windows/ovs-windows-installer/Redist/Microsoft_VC120_CRT_x86.msm
#Forwarding extension files needed for the installer
cp -f $(top_srcdir)/datapath-windows/x64/Win8$(VSTUDIO_CONFIG)/package/ovsext.cat windows/ovs-windows-installer/Driver/Win8/ovsext.cat