Files correlati : cg0.exe cg0700a.msk cg0700b.msk cg3.exe cg4.exe Bug : Commento: Merge 1.0 libraries
151 lines
5.1 KiB
Bash
151 lines
5.1 KiB
Bash
#!/bin/sh
|
|
|
|
# Derived from INSTALL.windows in the original source
|
|
# to support VS2008/2010/2013/2015/2017/2019/2022.
|
|
|
|
# Set environment variables for using MSVC 10/11/12/14,
|
|
# for creating native Windows executables.
|
|
|
|
_VS2008=${_VS2008:=0}
|
|
_VS2010=${_VS2010:=0}
|
|
_VS2013=${_VS2013:=0}
|
|
_VS2015=${_VS2015:=1} # default
|
|
_VS2017=${_VS2017:=0}
|
|
_VS2019=${_VS2019:=0}
|
|
_VS2022=${_VS2022:=0}
|
|
_TARGET_X64=${_TARGET_X64:=0}
|
|
_DO_CONFIG=${_DO_CONFIG:=1}
|
|
_DO_MAKE=${_DO_MAKE:=0}
|
|
_DO_CHECK=${_DO_CHECK:=0}
|
|
|
|
if [ "${_TARGET_X64}" -eq 1 ]; then
|
|
ARCH=x64
|
|
ARCH_U=X64
|
|
ARCH_ALT=amd64
|
|
ARCH_BITS=64
|
|
ARCH_HOST=x86_64-w64-mingw32
|
|
else
|
|
ARCH=x86
|
|
ARCH_U=X86
|
|
ARCH_ALT=
|
|
ARCH_BITS=32
|
|
ARCH_HOST=i686-w64-mingw32
|
|
fi
|
|
|
|
INSTALL_PREFIX="/usr/local/msvc${ARCH_BITS}"
|
|
|
|
if [ `basename "$0"` == config_for_vs.sh ]; then
|
|
BuildAuxDir=`dirname "$0"`'/build-aux'
|
|
BuildAuxDir=`realpath "$BuildAuxDir"`
|
|
[ ! -x "${BuildAuxDir}/compile" ] && exit 1
|
|
[ ! -x "${BuildAuxDir}/ar-lib" ] && exit 1
|
|
_BUILD_CC="${BuildAuxDir}/compile"
|
|
_BUILD_AR="${BuildAuxDir}/ar-lib"
|
|
fi
|
|
|
|
# Windows C library headers and libraries.
|
|
WindowsCrtIncludeDir='C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\'
|
|
WindowsCrtLibDir='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\'
|
|
[ ! -d "${WindowsCrtIncludeDir}" ] && exit 1
|
|
[ ! -d "${WindowsCrtLibDir}" ] && exit 1
|
|
INCLUDE="${WindowsCrtIncludeDir};${INCLUDE}"
|
|
LIB="${WindowsCrtLibDir}${ARCH};${LIB}"
|
|
|
|
# Windows API headers and libraries.
|
|
WindowsSdkIncludeDir='C:\Program Files (x86)\Windows Kits\8.1\Include\'
|
|
WindowsSdkLibDir='C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\'
|
|
[ ! -d "${WindowsSdkIncludeDir}" ] && exit 1
|
|
[ ! -d "${WindowsSdkLibDir}" ] && exit 1
|
|
INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;${INCLUDE}"
|
|
LIB="${WindowsSdkLibDir}${ARCH};${LIB}"
|
|
|
|
# Visual C++ tools, headers and libraries.
|
|
if [ "${_VS2022}" -eq 1 ]; then
|
|
_ARCH_PATH_W="\\${ARCH}"
|
|
VSINSTALLDIR='C:\Program Files\Microsoft Visual Studio\2022\Community\'
|
|
_VCVER=`( cd "/c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC" && ls -1rd [1-9]* | head -1 )`
|
|
VCINSTALLDIR="${VSINSTALLDIR}"'VC\Tools\MSVC\'"${_VCVER}"'\'
|
|
_VCBINDIR=`cygpath -u "${VCINSTALLDIR}"`"/bin/Host${ARCH_U}/${ARCH}"
|
|
elif [ "${_VS2019}" -eq 1 ]; then
|
|
_ARCH_PATH_W="\\${ARCH}"
|
|
VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\'
|
|
_VCVER=`( cd "/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC" && ls -1rd [1-9]* | head -1 )`
|
|
VCINSTALLDIR="${VSINSTALLDIR}"'VC\Tools\MSVC\'"${_VCVER}"'\'
|
|
_VCBINDIR=`cygpath -u "${VCINSTALLDIR}"`"/bin/Host${ARCH_U}/${ARCH}"
|
|
elif [ "${_VS2017}" -eq 1 ]; then
|
|
_ARCH_PATH_W="\\${ARCH}"
|
|
VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\'
|
|
_VCVER=`( cd "/c/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC" && ls -1rd [1-9]* | head -1 )`
|
|
VCINSTALLDIR="${VSINSTALLDIR}"'VC\Tools\MSVC\'"${_VCVER}"'\'
|
|
_VCBINDIR=`cygpath -u "${VCINSTALLDIR}"`"/bin/Host${ARCH_U}/${ARCH}"
|
|
else
|
|
if [ "${_TARGET_X64}" -eq 1 ]; then
|
|
_ARCH_PATH="/${ARCH_ALT}"
|
|
_ARCH_PATH_W="\\${ARCH_ALT}"
|
|
else
|
|
_ARCH_PATH=
|
|
_ARCH_PATH_W=
|
|
fi
|
|
if [ "${_VS2008}" -eq 1 ]; then
|
|
VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 10.0\'
|
|
elif [ "${_VS2010}" -eq 1 ]; then
|
|
VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 11.0\'
|
|
elif [ "${_VS2013}" -eq 1 ]; then
|
|
VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 12.0\'
|
|
elif [ "${_VS2015}" -eq 1 ]; then
|
|
VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0\'
|
|
else
|
|
exit 1
|
|
fi
|
|
VCINSTALLDIR="${VSINSTALLDIR}"'VC\'
|
|
_VCBINDIR=`cygpath -u "${VCINSTALLDIR}"`"/bin${_ARCH_PATH}"
|
|
unset _ARCH_PATH
|
|
fi
|
|
[ ! -d "${VSINSTALLDIR}" ] && exit 1
|
|
[ ! -d "${VCINSTALLDIR}" ] && exit 1
|
|
[ ! -d "${_VCBINDIR}" ] && exit 1
|
|
[ ! -x "${_VCBINDIR}/cl.exe" ] && exit 1
|
|
if [ "${_TARGET_X64}" -ne 1 -a \( "${_VS2008}" -eq 1 -o "${_VS2010}" -eq 1 \) ]; then
|
|
# VS2008/VS2010 32-bit needs IDE directory in path.
|
|
PATH="${_VCBINDIR}:${VSINSTALLDIR}/Common7/IDE:${PATH}"
|
|
else
|
|
PATH="${_VCBINDIR}:${PATH}"
|
|
fi
|
|
INCLUDE="${VCINSTALLDIR}include;${INCLUDE}"
|
|
LIB="${VCINSTALLDIR}lib${_ARCH_PATH_W};${LIB}"
|
|
unset _ARCH_PATH_W
|
|
|
|
echo "PATH=${PATH}"
|
|
echo "INCLUDE=${INCLUDE}"
|
|
echo "LIB=${LIB}"
|
|
|
|
export INCLUDE LIB
|
|
|
|
PATH="${INSTALL_PREFIX}/bin:${PATH}"
|
|
export PATH
|
|
|
|
[ `basename "$0"` != config_for_vs.sh ] && return 0
|
|
|
|
win32_target=_WIN32_WINNT_WINXP # for MSVC 9.0
|
|
win32_target=_WIN32_WINNT_VISTA # possibly for MSVC >= 10.0
|
|
win32_target=_WIN32_WINNT_WIN7 # possibly for MSVC >= 10.0
|
|
win32_target=_WIN32_WINNT_WIN8 # possibly for MSVC >= 10.0
|
|
|
|
if [ "${_DO_CONFIG}" -eq 1 ]; then
|
|
./configure --host=${ARCH_HOST} --prefix=${INSTALL_PREFIX} \
|
|
CC="${_BUILD_CC} cl -nologo" \
|
|
CFLAGS="-MD" \
|
|
CXX="${_BUILD_CC} cl -nologo" \
|
|
CXXFLAGS="-MD" \
|
|
CPPFLAGS="-D_WIN32_WINNT=${win32_target} -I${INSTALL_PREFIX}/include" \
|
|
LDFLAGS="-L${INSTALL_PREFIX}/lib" \
|
|
LD="link" \
|
|
NM="dumpbin -symbols" \
|
|
STRIP=":" \
|
|
AR="${_BUILD_AR} lib" \
|
|
RANLIB=":"
|
|
fi
|
|
|
|
[ "${_DO_MAKE}" -eq 1 ] && make
|
|
[ "${_DO_CHECK}" -eq 1 ] && make check
|