summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac103
1 files changed, 94 insertions, 9 deletions
diff --git a/configure.ac b/configure.ac
index 062d5d332dca..50003a650224 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3475,6 +3475,15 @@ find_msvs()
done
}
+find_ucrt()
+{
+ reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows Kits/Installed Roots/KitsRoot10"
+ if test -n "$regvalue"; then
+ ucrttest=$regvalue
+ ucrtdir=10.0.10240.0
+ fi
+}
+
find_msvc()
{
# Find Visual C++ 2013/2015
@@ -3516,6 +3525,7 @@ find_msvc()
fi
}
+SOLARINC=
SHOWINCLUDES_PREFIX=
MSBUILD_PATH=
DEVENV=
@@ -3561,6 +3571,28 @@ if test "$_os" = "WINNT"; then
AC_MSG_RESULT([No])
fi
+ AC_MSG_CHECKING([whether UCRT is needed for this compiler version])
+ if test "$vcnum" = "120"; then
+ AC_MSG_RESULT([No])
+ else
+ AC_MSG_RESULT([Yes])
+ AC_MSG_CHECKING([for UCRT location])
+ find_ucrt
+ if test -n "$ucrttest"; then
+ AC_MSG_RESULT([found])
+ PathFormat "$ucrttest"
+ ucrtincpath_formatted="$formatted_path/Include/$ucrtdir/ucrt"
+ # SOLARINC is used for external modules and must be set too.
+ # And no, it's not sufficient to set SOLARINC only, as configure
+ # itself doesn't honour it.
+ SOLARINC="$SOLARINC -I$ucrtincpath_formatted"
+ CFLAGS="$CFLAGS -I$ucrtincpath_formatted"
+ CXXFLAGS="$CPPFLAGS -I$ucrtincpath_formatted"
+ else
+ AC_MSG_ERROR([not found])
+ fi
+ fi
+
# Find the proper version of MSBuild.exe to use based on the VS version
reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSBuild/$vcnumwithdot/MSBuildOverrideTasksPath
if test -n "$regvalue" ; then
@@ -4043,8 +4075,6 @@ AC_SUBST(x_LDFLAGS)
# determine CPUNAME, OS, ...
# The USING_X11 flag tells whether the host os uses X by default. Can be overriden with the --without-x option.
#
-SOLARINC=
-
case "$host_os" in
aix*)
@@ -5194,6 +5224,20 @@ find_dotnetsdk()
done
}
+find_dotnetsdk46()
+{
+ unset frametest
+
+ for ver in 4.6; do
+ # TODO(davido): Do we need to take care about 32bit?
+ reg_get_value_64 "HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Microsoft SDKs/NETFXSDK/$ver/KitsInstallationFolder"
+ if test -n "$regvalue"; then
+ frametest=$regvalue
+ return
+ fi
+ done
+}
+
find_winsdk_version()
{
# Args: $1 : SDK version as in "6.0A", "7.0" etc
@@ -5297,7 +5341,15 @@ find_msms()
find_msvc_x64_dlls()
{
msvcdllpath="$VC_PRODUCT_DIR/redist/x64/Microsoft.VC${VCVER}.CRT"
- msvcdlls="msvcp${VCVER}.dll msvcr${VCVER}.dll"
+ # http://blogs.msdn.com/b/vcblog/archive/2014/06/03/visual-studio-14-ctp.aspx
+ # Refactored C Runtime (CRT): This CTP contains the first preview of the substantially refactored CRT.
+ # msvcr140.dll no longer exists. It is replaced by a trio of DLLs: vcruntime140.dll, appcrt140.dll,
+ # and desktopcrt140.dll.
+ if test "$VCVER" = 140; then
+ msvcdlls="msvcp${VCVER}.dll vcruntime${VCVER}.dll"
+ else
+ msvcdlls="msvcp${VCVER}.dll msvcr${VCVER}.dll"
+ fi
for dll in $msvcdlls; do
if ! test -f "$msvcdllpath/$dll"; then
AC_MSG_ERROR([can not find $dll in $msvcdllpath])
@@ -5364,18 +5416,28 @@ if test "$build_os" = "cygwin"; then
AL_PATH=`win_short_path_for_make "$AL_PATH"`
dnl Check mscoree.lib / .NET Framework dir
- AC_MSG_CHECKING(.NET Framework)
+ AC_MSG_CHECKING(.NET Framework find_dotnetsdk)
find_dotnetsdk
if test -f "$frametest/lib/mscoree.lib"; then
DOTNET_FRAMEWORK_HOME="$frametest"
else
+ AC_MSG_CHECKING(.NET Framework find_winsdk)
find_winsdk
if test -f "$winsdktest/lib/mscoree.lib" -o -f "$winsdktest/lib/$winsdklibsubdir/um/$WINDOWS_SDK_ARCH/mscoree.lib"; then
DOTNET_FRAMEWORK_HOME="$winsdktest"
+ else
+ AC_MSG_CHECKING(.NET Framework find_dotnetsdk46)
+ find_dotnetsdk46
+ PathFormat "$frametest"
+ frametest="$formatted_path"
+ AC_MSG_CHECKING(found: $frametest/um/$WINDOWS_SDK_ARCH/mscoree.lib)
+ if test -f "$frametest/Lib/um/$WINDOWS_SDK_ARCH/mscoree.lib"; then
+ DOTNET_FRAMEWORK_HOME="$frametest"
+ fi
fi
fi
- if test ! -f "$DOTNET_FRAMEWORK_HOME/lib/mscoree.lib" -a ! -f "$DOTNET_FRAMEWORK_HOME/lib/$winsdklibsubdir/um/$WINDOWS_SDK_ARCH/mscoree.lib"; then
+ if test ! -f "$DOTNET_FRAMEWORK_HOME/lib/mscoree.lib" -a ! -f "$DOTNET_FRAMEWORK_HOME/lib/$winsdklibsubdir/um/$WINDOWS_SDK_ARCH/mscoree.lib" -a ! -f "$DOTNET_FRAMEWORK_HOME/Lib/um/$WINDOWS_SDK_ARCH/mscoree.lib"; then
AC_MSG_ERROR([mscoree.lib not found])
fi
AC_MSG_RESULT(found)
@@ -8720,7 +8782,7 @@ if test "$with_system_odbc" = "yes" -o '(' "$with_system_headers" = "yes" -a "$w
save_CPPFLAGS=$CPPFLAGS
find_winsdk
PathFormat "$winsdktest"
- CPPFLAGS="$CPPFLAGS -I$formatted_path/include/um -I$formatted_path/include -I$formatted_path/include/shared"
+ CPPFLAGS="$CPPFLAGS -I$formatted_path/include/um -I$formatted_path/Include/$winsdklibsubdir/um -I$formatted_path/include -I$formatted_path/include/shared"
AC_CHECK_HEADER(sqlext.h, [],
[AC_MSG_ERROR(odbc not found. install odbc)],
[#include <windows.h>])
@@ -9598,6 +9660,10 @@ if test "$_os" = "WINNT"; then
-a -f "$WINDOWS_SDK_HOME/Include/um/SqlUcode.h" \
-a -f "$WINDOWS_SDK_HOME/Include/um/usp10.h"; then
have_windows_sdk_headers=yes
+ elif test -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/adoint.h" \
+ -a -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/SqlUcode.h" \
+ -a -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/usp10.h"; then
+ have_windows_sdk_headers=yes
else
have_windows_sdk_headers=no
fi
@@ -9646,6 +9712,9 @@ the Windows SDK are installed.])
elif echo $WINDOWS_SDK_HOME | grep "8.1" >/dev/null 2>/dev/null; then
WINDOWS_SDK_VERSION=81
AC_MSG_RESULT([found Windows SDK 8.1 ($WINDOWS_SDK_HOME)])
+ elif echo $WINDOWS_SDK_HOME | grep "/10" >/dev/null 2>/dev/null; then
+ WINDOWS_SDK_VERSION=10
+ AC_MSG_RESULT([found Windows SDK 10.0 ($WINDOWS_SDK_HOME)])
else
AC_MSG_ERROR([Found legacy Windows Platform SDK ($WINDOWS_SDK_HOME)])
fi
@@ -9655,6 +9724,8 @@ the Windows SDK are installed.])
SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include -I$COMPATH/include"
if test -d "$WINDOWS_SDK_HOME/include/um"; then
SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include/um -I$WINDOWS_SDK_HOME/include/shared"
+ elif test -d "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um"; then
+ SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um -I$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/shared"
fi
fi
@@ -12445,21 +12516,35 @@ if test "$build_os" = "cygwin"; then
ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/amd64"
ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/x64"
ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/x64"
- if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81; then
+ if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x64"
ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x64"
fi
+ if test $VCVER = 140; then
+ PathFormat "$ucrttest"
+ ucrtlibpath_formatted="$formatted_path/lib/$ucrtdir/ucrt/x64"
+ ILIB="$ILIB;$ucrtlibpath_formatted"
+ fi
else
ILIB="$ILIB;$COMPATH/lib"
ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib"
ILIB="$ILIB;$WINDOWS_SDK_HOME/lib"
ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib"
- if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81; then
+ if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x86"
ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x86"
fi
+ if test $VCVER = 140; then
+ PathFormat "$ucrttest"
+ ucrtlibpath_formatted="$formatted_path/lib/$ucrtdir/ucrt/x86"
+ ILIB="$ILIB;$ucrtlibpath_formatted"
+ fi
+ fi
+ if test -f "$DOTNET_FRAMEWORK_HOME/lib/mscoree.lib"; then
+ ILIB="$ILIB;$DOTNET_FRAMEWORK_HOME/lib"
+ else
+ ILIB="$ILIB;$DOTNET_FRAMEWORK_HOME/Lib/um/$WINDOWS_SDK_ARCH"
fi
- ILIB="$ILIB;$DOTNET_FRAMEWORK_HOME/lib"
AC_SUBST(ILIB)
fi