Commit 48385cb2 authored by Tamar Christina's avatar Tamar Christina

Remove special casing of Windows in generic files

Summary:
Remove some Windows specific code from the .m4 files
and have configure figure it out.

Unfortunately touchy can't be removed since there
is no mingw build of coreutils. Only msys builds
which would give us a dependency on the msys runtime.

Reviewers: hvr, austin, thomie, bgamari

Reviewed By: thomie, bgamari

Subscribers: thomie, erikd, #ghc_windows_task_force

Differential Revision: https://phabricator.haskell.org/D2248
parent 11ff1df8
...@@ -458,42 +458,55 @@ AC_DEFUN([GET_ARM_ISA], ...@@ -458,42 +458,55 @@ AC_DEFUN([GET_ARM_ISA],
# Set the variables used in the settings file # Set the variables used in the settings file
AC_DEFUN([FP_SETTINGS], AC_DEFUN([FP_SETTINGS],
[ [
if test "$windows" = YES SettingsCCompilerCommand="$CC"
SettingsHaskellCPPCommand="$HaskellCPPCmd"
SettingsHaskellCPPFlags="$HaskellCPPArgs"
SettingsLdCommand="$LdCmd"
SettingsArCommand="$ArCmd"
SettingsPerlCommand="$PerlCmd"
if test -z "$DllWrap"
then then
mingw_bin_prefix=mingw/bin/
SettingsCCompilerCommand="\$topdir/../${mingw_bin_prefix}gcc.exe"
SettingsHaskellCPPCommand="\$topdir/../${mingw_bin_prefix}gcc.exe"
SettingsHaskellCPPFlags="$HaskellCPPArgs"
SettingsLdCommand="\$topdir/../${mingw_bin_prefix}ld.exe"
SettingsArCommand="\$topdir/../${mingw_bin_prefix}ar.exe"
SettingsPerlCommand='$topdir/../perl/perl.exe'
SettingsDllWrapCommand="\$topdir/../${mingw_bin_prefix}dllwrap.exe"
SettingsWindresCommand="\$topdir/../${mingw_bin_prefix}windres.exe"
SettingsTouchCommand='$topdir/bin/touchy.exe'
else
SettingsCCompilerCommand="$CC"
SettingsHaskellCPPCommand="$HaskellCPPCmd"
SettingsHaskellCPPFlags="$HaskellCPPArgs"
SettingsLdCommand="$LdCmd"
SettingsArCommand="$ArCmd"
SettingsPerlCommand="$PerlCmd"
SettingsDllWrapCommand="/bin/false" SettingsDllWrapCommand="/bin/false"
else
SettingsDllWrapCommand="$DllWrap"
fi
if test -z "$Windres"
then
SettingsWindresCommand="/bin/false" SettingsWindresCommand="/bin/false"
else
SettingsWindresCommand="$Windres"
fi
if test -z "$Libtool"
then
SettingsLibtoolCommand="libtool" SettingsLibtoolCommand="libtool"
else
SettingsLibtoolCommand="$Libtool"
fi
if test -z "$Touch"
then
SettingsTouchCommand='touch' SettingsTouchCommand='touch'
else
SettingsTouchCommand='$Touch'
fi fi
if test -z "$LlcCmd" if test -z "$LlcCmd"
then then
SettingsLlcCommand="llc" SettingsLlcCommand="llc"
else else
SettingsLlcCommand="$LlcCmd" SettingsLlcCommand="$LlcCmd"
fi fi
if test -z "$OptCmd" if test -z "$OptCmd"
then then
SettingsOptCommand="opt" SettingsOptCommand="opt"
else else
SettingsOptCommand="$OptCmd" SettingsOptCommand="$OptCmd"
fi fi
SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2" SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2"
SettingsCCompilerLinkFlags="$CONF_GCC_LINKER_OPTS_STAGE2" SettingsCCompilerLinkFlags="$CONF_GCC_LINKER_OPTS_STAGE2"
SettingsLdFlags="$CONF_LD_LINKER_OPTS_STAGE2" SettingsLdFlags="$CONF_LD_LINKER_OPTS_STAGE2"
......
...@@ -177,13 +177,9 @@ then ...@@ -177,13 +177,9 @@ then
if test "$ghc_host_os" = "mingw32" if test "$ghc_host_os" = "mingw32"
then then
if test "${OSTYPE}" = "msys" # Canonicalise to <drive>:/path/to/ghc
then WithGhc=`cygpath -m "${WithGhc}"`
WithGhc=`echo "${WithGhc}" | sed "s#^/\([a-zA-Z]\)/#\1:/#"`
else
# Canonicalise to <drive>:/path/to/ghc
WithGhc=`cygpath -m "${WithGhc}"`
fi
echo "GHC path canonicalised to: ${WithGhc}" echo "GHC path canonicalised to: ${WithGhc}"
fi fi
fi fi
...@@ -366,6 +362,8 @@ then ...@@ -366,6 +362,8 @@ then
NM="${mingwbin}nm.exe" NM="${mingwbin}nm.exe"
RANLIB="${mingwbin}ranlib.exe" RANLIB="${mingwbin}ranlib.exe"
OBJDUMP="${mingwbin}objdump.exe" OBJDUMP="${mingwbin}objdump.exe"
Windres="${mingwbin}windres.exe"
DllWrap="${mingwbin}dllwrap.exe"
fp_prog_ar="${mingwbin}ar.exe" fp_prog_ar="${mingwbin}ar.exe"
# NB. Download the perl binaries if required # NB. Download the perl binaries if required
...@@ -733,7 +731,6 @@ AC_SUBST(HaveDtrace) ...@@ -733,7 +731,6 @@ AC_SUBST(HaveDtrace)
AC_PATH_PROG(HSCOLOUR,HsColour) AC_PATH_PROG(HSCOLOUR,HsColour)
# HsColour is passed to Cabal, so we need a native path # HsColour is passed to Cabal, so we need a native path
if test "$HostOS" = "mingw32" && \ if test "$HostOS" = "mingw32" && \
test "${OSTYPE}" != "msys" && \
test "${HSCOLOUR}" != "" test "${HSCOLOUR}" != ""
then then
# Canonicalise to <drive>:/path/to/gcc # Canonicalise to <drive>:/path/to/gcc
......
...@@ -14,6 +14,11 @@ ...@@ -14,6 +14,11 @@
#include <windows.h> #include <windows.h>
/* /*
touch is used by GHC both during building and during compilation of
Haskell files. Unfortunately this means we need a 'touch' like program
in the GHC bindist. Since touch is not standard on Windows and msys2
doesn't include a mingw-w64 build of coreutils we need touchy for now.
With Windows 7 in a virtual box VM on OS X, some very odd things happen With Windows 7 in a virtual box VM on OS X, some very odd things happen
with dates and time stamps when SSHing into cygwin. e.g. here the with dates and time stamps when SSHing into cygwin. e.g. here the
"Change" time is in the past: "Change" time is in the past:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment