Skip to content

Commit 0a43c73

Browse files
committed
Add platform specific project files
1 parent 59fbd9e commit 0a43c73

5 files changed

+18
-5
lines changed

Makefile

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ define GHC_INFO
4141
$(shell $(GHC0) --info | $(GHC0) -e 'getContents >>= foldMap putStrLn . lookup "$1" . read')
4242
endef
4343

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+
4447
TARGET_PLATFORM := $(call GHC_INFO,target platform string)
4548
TARGET_ARCH := $(call GHC_INFO,target arch)
4649
TARGET_OS := $(call GHC_INFO,target os)
@@ -71,7 +74,7 @@ $(STAGE1_BIN) &: libraries/directory/configure libraries/unix/configure librarie
7174
@$(LIB)
7275
log mkdir -p $(@D)
7376
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))
7578

7679
%/settings: _stage1/bin/ghc-toolchain-bin
7780
@$(LIB)
@@ -101,7 +104,7 @@ $(STAGE2_BIN) &: _stage1/bin/ghc _stage1/lib/settings rts/configure libraries/gh
101104
@$(LIB)
102105
log mkdir -p $(@D)
103106
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))
105108

106109
# Build a few extra RTS variants (debug, threaded, debug-threaded)
107110
# We build these with the stage1 compiler, as we build all other libraries
@@ -110,7 +113,7 @@ rts-debug: GHC = $(abspath _stage1/bin/ghc)
110113
rts-debug: _stage2/bin/ghc
111114
@$(LIB)
112115
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"
114117
# cabal still writes the environment files even if we pass --write-ghc-environment-files=never
115118
log rm -f ~/.ghc/*/*/default
116119

@@ -119,7 +122,7 @@ rts-threaded: GHC = $(abspath _stage2/bin/ghc)
119122
rts-threaded: _stage2/bin/ghc
120123
@$(LIB)
121124
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"
123126
# cabal still writes the environment files even if we pass --write-ghc-environment-files=never
124127
log rm -f ~/.ghc/*/*/default
125128

@@ -129,7 +132,7 @@ rts-debug-threaded: GHC = $(abspath _stage2/bin/ghc)
129132
rts-debug-threaded: _stage2/bin/ghc
130133
@$(LIB)
131134
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"
133136
# cabal still writes the environment files even if we pass --write-ghc-environment-files=never
134137
log rm -f ~/.ghc/*/*/default
135138

cabal.project.stage1.arm64-darwin

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import: cabal.project.stage1
2+
3+
package rts
4+
flags: +leading-underscore

cabal.project.stage1.x86_64-linux

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import: cabal.project.stage1

cabal.project.stage2.arm64-darwin

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import: cabal.project.stage2
2+
3+
package rts
4+
flags: +leading-underscore

cabal.project.stage2.x86_64-linux

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import: cabal.project.stage2

0 commit comments

Comments
 (0)