summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2019-04-04 13:38:53 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-04-30 20:29:31 -0400
commit2988ef5e0334f9841bf23d905b0363a3b8a1a660 (patch)
treed7f14ef5ccb30adc1d57b215a37d0086392a8fa9
parent53d1cd9634bc788fca022309af3416831b577a81 (diff)
downloadhaskell-2988ef5e0334f9841bf23d905b0363a3b8a1a660.tar.gz
Move cGHC_UNLIT_PGM to be "unlit command" in settings
The bulk of the work was done in #712, making settings be make/Hadrian controlled. This commit then just moves the unlit command rules in make/Hadrian from the `Config.hs` generator to the `settings` generator in each build system. I think this is a good change because the crucial benefit is *settings* don't affect the build: ghc gets one baby step closer to being a regular cabal executable, and make/Hadrian just maintains settings as part of bootstrapping.
-rw-r--r--compiler/ghc.mk2
-rw-r--r--compiler/main/SysTools.hs6
-rw-r--r--hadrian/src/Rules/Generate.hs4
-rw-r--r--includes/ghc.mk1
4 files changed, 5 insertions, 8 deletions
diff --git a/compiler/ghc.mk b/compiler/ghc.mk
index 6cd774744d..69eff31330 100644
--- a/compiler/ghc.mk
+++ b/compiler/ghc.mk
@@ -110,8 +110,6 @@ endif
@echo 'cGhcEnableTablesNextToCode = "$(GhcEnableTablesNextToCode)"' >> $@
@echo 'cLeadingUnderscore :: String' >> $@
@echo 'cLeadingUnderscore = "$(LeadingUnderscore)"' >> $@
- @echo 'cGHC_UNLIT_PGM :: String' >> $@
- @echo 'cGHC_UNLIT_PGM = "$(utils/unlit_dist_PROG)"' >> $@
@echo 'cLibFFI :: Bool' >> $@
ifeq "$(UseLibFFIForAdjustors)" "YES"
@echo 'cLibFFI = True' >> $@
diff --git a/compiler/main/SysTools.hs b/compiler/main/SysTools.hs
index 5725896d6b..6eccdd7ec6 100644
--- a/compiler/main/SysTools.hs
+++ b/compiler/main/SysTools.hs
@@ -211,9 +211,9 @@ initSysTools top_dir
ghc_usage_msg_path = installed "ghc-usage.txt"
ghci_usage_msg_path = installed "ghci-usage.txt"
- -- For all systems, unlit, split, mangle are GHC utilities
- -- architecture-specific stuff is done when building Config.hs
- unlit_path = libexec cGHC_UNLIT_PGM
+ -- For all systems, unlit, split, mangle are GHC utilities
+ -- architecture-specific stuff is done when building Config.hs
+ unlit_path <- getToolSetting "unlit command"
windres_path <- getToolSetting "windres command"
libtool_path <- getToolSetting "libtool command"
diff --git a/hadrian/src/Rules/Generate.hs b/hadrian/src/Rules/Generate.hs
index b167cd1a00..0c35e85dd7 100644
--- a/hadrian/src/Rules/Generate.hs
+++ b/hadrian/src/Rules/Generate.hs
@@ -290,6 +290,7 @@ generateSettings = do
, ("dllwrap command", settingsFileSetting SettingsFileSetting_DllWrapCommand)
, ("windres command", settingsFileSetting SettingsFileSetting_WindresCommand)
, ("libtool command", settingsFileSetting SettingsFileSetting_LibtoolCommand)
+ , ("unlit command", ("$topdir/bin/" <>) . takeFileName <$> builderPath Unlit)
, ("cross compiling", flag' CrossCompiling)
, ("target os", lookupValueOrError configFile "haskell-target-os")
, ("target arch", lookupValueOrError configFile "haskell-target-arch")
@@ -335,7 +336,6 @@ generateConfigHs = do
cGhcWithSMP <- expr $ yesNo <$> ghcWithSMP
cGhcEnableTablesNextToCode <- expr $ yesNo <$> ghcEnableTablesNextToCode
cLeadingUnderscore <- expr $ yesNo <$> flag LeadingUnderscore
- cGHC_UNLIT_PGM <- fmap takeFileName $ getBuilderPath Unlit
cLibFFI <- expr useLibFFIForAdjustors
rtsWays <- getRtsWays
cGhcRtsWithLibdw <- getFlag WithLibdw
@@ -393,8 +393,6 @@ generateConfigHs = do
, "cGhcEnableTablesNextToCode = " ++ show cGhcEnableTablesNextToCode
, "cLeadingUnderscore :: String"
, "cLeadingUnderscore = " ++ show cLeadingUnderscore
- , "cGHC_UNLIT_PGM :: String"
- , "cGHC_UNLIT_PGM = " ++ show cGHC_UNLIT_PGM
, "cLibFFI :: Bool"
, "cLibFFI = " ++ show cLibFFI
, "cGhcThreaded :: Bool"
diff --git a/includes/ghc.mk b/includes/ghc.mk
index 27b704d140..b7bac36ba0 100644
--- a/includes/ghc.mk
+++ b/includes/ghc.mk
@@ -197,6 +197,7 @@ $(includes_SETTINGS) : includes/Makefile | $$(dir $$@)/.
@echo ',("dllwrap command", "$(SettingsDllWrapCommand)")' >> $@
@echo ',("windres command", "$(SettingsWindresCommand)")' >> $@
@echo ',("libtool command", "$(SettingsLibtoolCommand)")' >> $@
+ @echo ',("unlit command", "$$topdir/bin/$(utils/unlit_dist_PROG)")' >> $@
@echo ',("cross compiling", "$(CrossCompiling)")' >> $@
@echo ',("target os", "$(HaskellTargetOs)")' >> $@
@echo ',("target arch", "$(HaskellTargetArch)")' >> $@