blob: dbacd3a816d884e34811cbc666ca1cd946bc386e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# FP_SETTINGS
# ----------------------------------
# Set the variables used in the settings file
AC_DEFUN([FP_SETTINGS],
[
SettingsUseDistroMINGW="$EnableDistroToolchain"
if test "$windows" = YES -a "$EnableDistroToolchain" = "NO"; then
# Handle the Windows toolchain installed in FP_SETUP_WINDOWS_TOOLCHAIN.
# See Note [tooldir: How GHC finds mingw on Windows]
mingw_bin_prefix='$$tooldir/mingw/bin/'
SettingsCCompilerCommand="${mingw_bin_prefix}clang.exe"
SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2"
SettingsCxxCompilerFlags="$CONF_CXX_OPTS_STAGE2"
SettingsCCompilerLinkFlags="$CONF_GCC_LINKER_OPTS_STAGE2"
SettingsHaskellCPPCommand="${mingw_bin_prefix}clang.exe"
SettingsHaskellCPPFlags="$HaskellCPPArgs"
SettingsLdCommand="${mingw_bin_prefix}ld.lld.exe"
SettingsLdFlags=""
# LLD does not support object merging (#21068)
SettingsMergeObjectsCommand=""
SettingsMergeObjectsFlags=""
SettingsArCommand="${mingw_bin_prefix}llvm-ar.exe"
SettingsRanlibCommand="${mingw_bin_prefix}llvm-ranlib.exe"
SettingsDllWrapCommand="${mingw_bin_prefix}llvm-dllwrap.exe"
SettingsWindresCommand="${mingw_bin_prefix}llvm-windres.exe"
SettingsTouchCommand='$$topdir/bin/touchy.exe'
else
# This case handles the "normal" platforms (e.g. not Windows) where we
# don't provide the toolchain.
SettingsCCompilerCommand="$CC"
SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2"
SettingsCxxCompilerFlags="$CONF_CXX_OPTS_STAGE2"
SettingsHaskellCPPCommand="$HaskellCPPCmd"
SettingsHaskellCPPFlags="$HaskellCPPArgs"
SettingsCCompilerLinkFlags="$CONF_GCC_LINKER_OPTS_STAGE2"
SettingsLdCommand="$LdCmd"
SettingsLdFlags="$CONF_LD_LINKER_OPTS_STAGE2"
SettingsArCommand="$ArCmd"
SettingsRanlibCommand="$RanlibCmd"
SettingsMergeObjectsCommand="$MergeObjsCmd"
SettingsMergeObjectsFlags="$MergeObjsArgs"
if test -z "$DllWrapCmd"; then
SettingsDllWrapCommand="/bin/false"
else
SettingsDllWrapCommand="$DllWrapCmd"
fi
if test -z "$WindresCmd"; then
SettingsWindresCommand="/bin/false"
else
SettingsWindresCommand="$WindresCmd"
fi
if test "$HostOS" = "mingw32"; then
SettingsTouchCommand='$$topdir/bin/touchy.exe'
else
SettingsTouchCommand='touch'
fi
if test "$EnableDistroToolchain" = "YES"; then
# If the user specified --enable-distro-toolchain then we just use the
# executable names, not paths.
SettingsCCompilerCommand="$(basename $SettingsCCompilerCommand)"
SettingsHaskellCPPCommand="$(basename $SettingsHaskellCPPCommand)"
SettingsLdCommand="$(basename $SettingsLdCommand)"
SettingsMergeObjectsCommand="$(basename $SettingsMergeObjectsCommand)"
SettingsArCommand="$(basename $SettingsArCommand)"
SettingsDllWrapCommand="$(basename $SettingsDllWrapCommand)"
SettingsWindresCommand="$(basename $SettingsWindresCommand)"
fi
fi
# Platform-agnostic tools
if test -z "$ClangCmd"; then
ClangCmd="clang"
fi
SettingsClangCommand="$ClangCmd"
# LLVM backend tools
if test -z "$LlcCmd"; then
LlcCmd="llc"
fi
SettingsLlcCommand="$LlcCmd"
if test -z "$OptCmd"; then
OptCmd="opt"
fi
SettingsOptCommand="$OptCmd"
# Mac-only tools
if test -z "$OtoolCmd"; then
OtoolCmd="otool"
fi
SettingsOtoolCommand="$OtoolCmd"
if test -z "$InstallNameToolCmd"; then
InstallNameToolCmd="install_name_tool"
fi
SettingsInstallNameToolCommand="$InstallNameToolCmd"
SettingsCCompilerSupportsNoPie="$CONF_GCC_SUPPORTS_NO_PIE"
AC_SUBST(SettingsCCompilerCommand)
AC_SUBST(SettingsHaskellCPPCommand)
AC_SUBST(SettingsHaskellCPPFlags)
AC_SUBST(SettingsCCompilerFlags)
AC_SUBST(SettingsCxxCompilerFlags)
AC_SUBST(SettingsCCompilerLinkFlags)
AC_SUBST(SettingsCCompilerSupportsNoPie)
AC_SUBST(SettingsLdCommand)
AC_SUBST(SettingsLdFlags)
AC_SUBST(SettingsMergeObjectsCommand)
AC_SUBST(SettingsMergeObjectsFlags)
AC_SUBST(SettingsArCommand)
AC_SUBST(SettingsRanlibCommand)
AC_SUBST(SettingsOtoolCommand)
AC_SUBST(SettingsInstallNameToolCommand)
AC_SUBST(SettingsDllWrapCommand)
AC_SUBST(SettingsWindresCommand)
AC_SUBST(SettingsTouchCommand)
AC_SUBST(SettingsClangCommand)
AC_SUBST(SettingsLlcCommand)
AC_SUBST(SettingsOptCommand)
AC_SUBST(SettingsUseDistroMINGW)
])
|