windows.sh (dmd-2.094.0) | : | windows.sh (dmd-2.094.1) | ||
---|---|---|---|---|
skipping to change at line 29 | skipping to change at line 29 | |||
if [ "$HOST_DMD_VERSION" == "LATEST" ]; then | if [ "$HOST_DMD_VERSION" == "LATEST" ]; then | |||
download "http://downloads.dlang.org/releases/LATEST" LATEST | download "http://downloads.dlang.org/releases/LATEST" LATEST | |||
HOST_DMD_VERSION="$(cat LATEST)" | HOST_DMD_VERSION="$(cat LATEST)" | |||
fi | fi | |||
echo "D_VERSION: $HOST_DMD_VERSION" | echo "D_VERSION: $HOST_DMD_VERSION" | |||
echo "VSINSTALLDIR: $VSINSTALLDIR" | echo "VSINSTALLDIR: $VSINSTALLDIR" | |||
echo "GNU_MAKE: $("${GNU_MAKE}" --version)" | echo "GNU_MAKE: $("${GNU_MAKE}" --version)" | |||
echo "GREP_VERSION: $(grep --version)" | echo "GREP_VERSION: $(grep --version)" | |||
################################################################################ | ################################################################################ | |||
# Prepare C compiler | # Prepare DigitalMars make and C compiler | |||
################################################################################ | ################################################################################ | |||
install_host_dmc | ||||
export DM_MAKE="$PWD/dm/bin/make.exe" | ||||
if [ "$MODEL" == "32" ] ; then | if [ "$MODEL" == "32" ] ; then | |||
install_host_dmc | ||||
export CC="$PWD/dm/bin/dmc.exe" | export CC="$PWD/dm/bin/dmc.exe" | |||
export AR="$PWD/dm/bin/lib.exe" | export AR="$PWD/dm/bin/lib.exe" | |||
else | else | |||
export CC="$(where cl.exe)" | export CC="$(where cl.exe)" | |||
export AR="$(where lib.exe)" # must be done before installing dmd | export AR="$(where lib.exe)" # must be done before installing dmd | |||
export MSVC_AR="$AR" # for msvc-lib | export MSVC_AR="$AR" # for msvc-lib | |||
fi | fi | |||
################################################################################ | ################################################################################ | |||
# Install the host compiler | # Install the host compiler | |||
skipping to change at line 82 | skipping to change at line 84 | |||
LIBNAME=phobos.lib | LIBNAME=phobos.lib | |||
fi | fi | |||
################################################################################ | ################################################################################ | |||
# Build DMD | # Build DMD | |||
################################################################################ | ################################################################################ | |||
DMD_BIN_PATH="$DMD_DIR/generated/windows/release/${MODEL}/dmd" | DMD_BIN_PATH="$DMD_DIR/generated/windows/release/${MODEL}/dmd" | |||
cd "${DMD_DIR}/src" | cd "${DMD_DIR}/src" | |||
"${DM_MAKE}" -f "${MAKE_FILE}" reldmd-asserts DMD="$DMD_BIN_PATH" | "${DM_MAKE}" -f "${MAKE_FILE}" reldmd-asserts DMD="$DMD_BIN_PATH" MAKE="$DM_MAKE " | |||
################################################################################ | ################################################################################ | |||
# WORKAROUND: Build zlib separately with DigitalMars make | # WORKAROUND: Build zlib separately with DigitalMars make | |||
# REASON: whitespace path variables in DigitalMars make from indirect invocation from Phobos | # REASON: whitespace path variables in DigitalMars make from indirect invocation from Phobos | |||
################################################################################ | ################################################################################ | |||
if [ "$MODEL" != "32" ] ; then | if [ "$MODEL" != "32" ] ; then | |||
cd "${DMD_DIR}/../phobos/etc/c/zlib" | cd "${DMD_DIR}/../phobos/etc/c/zlib" | |||
${DM_MAKE} -f win64.mak MODEL=${MODEL} "zlib${MODEL}.lib" "CC=$CC" "LIB=$AR" VCDIR=. | "${DM_MAKE}" -f win64.mak MODEL=${MODEL} "zlib${MODEL}.lib" "CC=$CC" "LIB=$A R" VCDIR=. MAKE="$DM_MAKE" | |||
fi | fi | |||
################################################################################ | ################################################################################ | |||
# Build Druntime and Phobos | # Build Druntime and Phobos | |||
################################################################################ | ################################################################################ | |||
for proj in druntime phobos; do | for proj in druntime phobos; do | |||
cd "${DMD_DIR}/../${proj}" | cd "${DMD_DIR}/../${proj}" | |||
"${DM_MAKE}" -f "${MAKE_FILE}" MODEL=$MODEL DMD="$DMD_BIN_PATH" "CC=$CC" "AR =$AR" VCDIR=. | "${DM_MAKE}" -f "${MAKE_FILE}" MODEL=$MODEL DMD="$DMD_BIN_PATH" "CC=$CC" "AR =$AR" VCDIR=. MAKE="$DM_MAKE" | |||
done | done | |||
################################################################################ | ################################################################################ | |||
# Run druntime tests | # Run druntime tests | |||
################################################################################ | ################################################################################ | |||
cd "${DMD_DIR}/../druntime" | cd "${DMD_DIR}/../druntime" | |||
"${DM_MAKE}" -f "${MAKE_FILE}" MODEL=$MODEL DMD="$DMD_BIN_PATH" "CC=$CC" "AR=$AR " VCDIR=. unittest test_all | "${DM_MAKE}" -f "${MAKE_FILE}" MODEL=$MODEL DMD="$DMD_BIN_PATH" "CC=$CC" "AR=$AR " VCDIR=. MAKE="$DM_MAKE" unittest test_all | |||
################################################################################ | ################################################################################ | |||
# Run DMD testsuite | # Run DMD testsuite | |||
################################################################################ | ################################################################################ | |||
cd "${DMD_DIR}/test" | cd "${DMD_DIR}/test" | |||
if [ "$MODEL" == "32" ] ; then | if [ "$MODEL" == "32" ] ; then | |||
# WORKAROUND: Make Optlink use freshly built Phobos, not the host compiler's . | # WORKAROUND: Make Optlink use freshly built Phobos, not the host compiler's . | |||
# Optlink apparently prefers LIB in sc.ini over the LIB env variable (and | # Optlink apparently prefers LIB in sc.ini over the LIB env variable (and | |||
# `-conf=` for DMD apparently doesn't prevent that). | # `-conf=` for DMD apparently doesn't prevent that). | |||
End of changes. 7 change blocks. | ||||
6 lines changed or deleted | 8 lines changed or added |