summaryrefslogtreecommitdiff
path: root/compiler/ghc.mk
diff options
context:
space:
mode:
authorJohn Ericson <git@JohnEricson.me>2019-03-27 00:27:01 -0400
committerBen Gamari <ben@smart-cactus.org>2019-05-14 16:41:19 -0400
commite529c65eacf595006dd5358491d28c202d673732 (patch)
tree0498cb0a7023c491c240d64069e2442073e83d77 /compiler/ghc.mk
parentf9e4ea401121572d799b9db56f24aa1abdf5edf8 (diff)
downloadhaskell-e529c65eacf595006dd5358491d28c202d673732.tar.gz
Remove all target-specific portions of Config.hs
1. If GHC is to be multi-target, these cannot be baked in at compile time. 2. Compile-time flags have a higher maintenance than run-time flags. 3. The old way makes build system implementation (various bootstrapping details) with the thing being built. E.g. GHC doesn't need to care about which integer library *will* be used---this is purely a crutch so the build system doesn't need to pass flags later when using that library. 4. Experience with cross compilation in Nixpkgs has shown things work nicer when compiler's can *optionally* delegate the bootstrapping the package manager. The package manager knows the entire end-goal build plan, and thus can make top-down decisions on bootstrapping. GHC can just worry about GHC, not even core library like base and ghc-prim!
Diffstat (limited to 'compiler/ghc.mk')
-rw-r--r--compiler/ghc.mk50
1 files changed, 0 insertions, 50 deletions
diff --git a/compiler/ghc.mk b/compiler/ghc.mk
index 18c3425305..b8c0a1a2fc 100644
--- a/compiler/ghc.mk
+++ b/compiler/ghc.mk
@@ -55,10 +55,6 @@ compiler/stage%/build/Config.hs : mk/config.mk mk/project.mk | $$(dir $$@)/.
@echo >> $@
@echo '#include "ghc_boot_platform.h"' >> $@
@echo >> $@
- @echo 'data IntegerLibrary = IntegerGMP' >> $@
- @echo ' | IntegerSimple' >> $@
- @echo ' deriving Eq' >> $@
- @echo >> $@
@echo 'cBuildPlatformString :: String' >> $@
@echo 'cBuildPlatformString = BuildPlatform_NAME' >> $@
@echo 'cHostPlatformString :: String' >> $@
@@ -82,52 +78,6 @@ compiler/stage%/build/Config.hs : mk/config.mk mk/project.mk | $$(dir $$@)/.
@echo 'cBooterVersion = "$(GhcVersion)"' >> $@
@echo 'cStage :: String' >> $@
@echo 'cStage = show (STAGE :: Int)' >> $@
- @echo 'cIntegerLibraryType :: IntegerLibrary' >> $@
-ifeq "$(INTEGER_LIBRARY)" "integer-gmp"
- @echo 'cIntegerLibraryType = IntegerGMP' >> $@
-else ifeq "$(INTEGER_LIBRARY)" "integer-simple"
- @echo 'cIntegerLibraryType = IntegerSimple' >> $@
-else ifneq "$(CLEANING)" "YES"
-$(error Unknown integer library)
-endif
- @echo 'cGhcWithInterpreter :: String' >> $@
- @echo 'cGhcWithInterpreter = "$(GhcWithInterpreter)"' >> $@
- @echo 'cGhcWithNativeCodeGen :: String' >> $@
- @echo 'cGhcWithNativeCodeGen = "$(GhcWithNativeCodeGen)"' >> $@
- @echo 'cGhcWithSMP :: String' >> $@
- @echo 'cGhcWithSMP = "$(GhcWithSMP)"' >> $@
- @echo 'cGhcRTSWays :: String' >> $@
- @echo 'cGhcRTSWays = "$(GhcRTSWays)"' >> $@
- @echo 'cGhcRtsWithLibdw :: Bool' >> $@
-ifeq "$(GhcRtsWithLibdw)" "YES"
- @echo 'cGhcRtsWithLibdw = True' >> $@
-else
- @echo 'cGhcRtsWithLibdw = False' >> $@
-endif
- @echo 'cLeadingUnderscore :: String' >> $@
- @echo 'cLeadingUnderscore = "$(LeadingUnderscore)"' >> $@
- @echo 'cLibFFI :: Bool' >> $@
-ifeq "$(UseLibFFIForAdjustors)" "YES"
- @echo 'cLibFFI = True' >> $@
-else
- @echo 'cLibFFI = False' >> $@
-endif
-# Note that GhcThreaded just reflects the Makefile variable setting.
-# In particular, the stage1 compiler is never actually compiled with
-# -threaded, but it will nevertheless have cGhcThreaded = True.
-# The "+RTS --info" output will show what RTS GHC is really using.
- @echo 'cGhcThreaded :: Bool' >> $@
-ifeq "$(GhcThreaded)" "YES"
- @echo 'cGhcThreaded = True' >> $@
-else
- @echo 'cGhcThreaded = False' >> $@
-endif
- @echo 'cGhcDebugged :: Bool' >> $@
-ifeq "$(GhcDebugged)" "YES"
- @echo 'cGhcDebugged = True' >> $@
-else
- @echo 'cGhcDebugged = False' >> $@
-endif
@echo done.
# -----------------------------------------------------------------------------