@@ -41,6 +41,9 @@ define GHC_INFO
41
41
$(shell $(GHC0 ) --info | $(GHC0 ) -e 'getContents >>= foldMap putStrLn . lookup "$1" . read')
42
42
endef
43
43
44
+ BUILD_HOST := $(shell uname -m | tr A-Z a-z) -$(shell uname -s | tr A-Z a-z)
45
+ TARGET_HOST ?= $(BUILD_HOST )
46
+
44
47
TARGET_PLATFORM := $(call GHC_INFO,target platform string)
45
48
TARGET_ARCH := $(call GHC_INFO,target arch)
46
49
TARGET_OS := $(call GHC_INFO,target os)
@@ -71,7 +74,7 @@ $(STAGE1_BIN) &: libraries/directory/configure libraries/unix/configure librarie
71
74
@$(LIB )
72
75
log mkdir -p $(@D )
73
76
log export HADRIAN_SETTINGS=' $(HADRIAN_SETTINGS)'
74
- log $(CABAL_INSTALL ) --project-file cabal.project.stage1 $(addprefix exe:,$(STAGE1_EXE ) )
77
+ log $(CABAL_INSTALL ) --project-file cabal.project.stage1. $( BUILD_HOST ) $(addprefix exe:,$(STAGE1_EXE ) )
75
78
76
79
% /settings : _stage1/bin/ghc-toolchain-bin
77
80
@$(LIB )
@@ -101,7 +104,7 @@ $(STAGE2_BIN) &: _stage1/bin/ghc _stage1/lib/settings rts/configure libraries/gh
101
104
@$(LIB )
102
105
log mkdir -p $(@D )
103
106
log export HADRIAN_SETTINGS=" $$ (cat ./HADRIAN_SETTINGS)"
104
- log $(CABAL_INSTALL ) --package-db=$(abspath _stage1/lib/package.conf.d) --build-package-db=$(abspath _stage0/lib/package.conf.d) --project-file cabal.project.stage2 $(addprefix exe:,$(STAGE2_EXE ) )
107
+ log $(CABAL_INSTALL ) --package-db=$(abspath _stage1/lib/package.conf.d) --build-package-db=$(abspath _stage0/lib/package.conf.d) --project-file cabal.project.stage2. $( TARGET_HOST ) $(addprefix exe:,$(STAGE2_EXE ) )
105
108
106
109
# Build a few extra RTS variants (debug, threaded, debug-threaded)
107
110
# We build these with the stage1 compiler, as we build all other libraries
@@ -110,7 +113,7 @@ rts-debug: GHC = $(abspath _stage1/bin/ghc)
110
113
rts-debug : _stage2/bin/ghc
111
114
@$(LIB )
112
115
log rm -f ~ /.ghc/* /* /default
113
- log $(CABAL_INSTALL ) --write-ghc-environment-files=never --package-db=$(abspath _stage1/lib/package.conf.d) --build-package-db=$(abspath _stage0/lib/package.conf.d) --project-file cabal.project.stage2 --lib rts:rts --constraint=" rts+debug"
116
+ log $(CABAL_INSTALL ) --write-ghc-environment-files=never --package-db=$(abspath _stage1/lib/package.conf.d) --build-package-db=$(abspath _stage0/lib/package.conf.d) --project-file cabal.project.stage2. $( TARGET_HOST ) --lib rts:rts --constraint=" rts+debug"
114
117
# cabal still writes the environment files even if we pass --write-ghc-environment-files=never
115
118
log rm -f ~ /.ghc/* /* /default
116
119
@@ -119,7 +122,7 @@ rts-threaded: GHC = $(abspath _stage2/bin/ghc)
119
122
rts-threaded : _stage2/bin/ghc
120
123
@$(LIB )
121
124
log rm -f ~ /.ghc/* /* /default
122
- log $(CABAL_INSTALL ) --write-ghc-environment-files=never --package-db=$(abspath _stage1/lib/package.conf.d) --build-package-db=$(abspath _stage0/lib/package.conf.d) --project-file cabal.project.stage2 --lib rts:rts --constraint=" rts+threaded"
125
+ log $(CABAL_INSTALL ) --write-ghc-environment-files=never --package-db=$(abspath _stage1/lib/package.conf.d) --build-package-db=$(abspath _stage0/lib/package.conf.d) --project-file cabal.project.stage2. $( TARGET_HOST ) --lib rts:rts --constraint=" rts+threaded"
123
126
# cabal still writes the environment files even if we pass --write-ghc-environment-files=never
124
127
log rm -f ~ /.ghc/* /* /default
125
128
@@ -129,7 +132,7 @@ rts-debug-threaded: GHC = $(abspath _stage2/bin/ghc)
129
132
rts-debug-threaded : _stage2/bin/ghc
130
133
@$(LIB )
131
134
log rm -f ~ /.ghc/* /* /default
132
- log $(CABAL_INSTALL ) --write-ghc-environment-files=never --package-db=$(abspath _stage1/lib/package.conf.d) --build-package-db=$(abspath _stage0/lib/package.conf.d) --project-file cabal.project.stage2 --lib rts:rts --constraint=" rts+debug" --constraint=" rts+threaded"
135
+ log $(CABAL_INSTALL ) --write-ghc-environment-files=never --package-db=$(abspath _stage1/lib/package.conf.d) --build-package-db=$(abspath _stage0/lib/package.conf.d) --project-file cabal.project.stage2. $( TARGET_HOST ) --lib rts:rts --constraint=" rts+debug" --constraint=" rts+threaded"
133
136
# cabal still writes the environment files even if we pass --write-ghc-environment-files=never
134
137
log rm -f ~ /.ghc/* /* /default
135
138
0 commit comments