| ... |
... |
@@ -483,24 +483,24 @@ bindistRules = do |
|
483
|
483
|
("distrib" -/- "configure.ac" <.> "in")
|
|
484
|
484
|
(root -/- stageString stage -/- "distrib" -/- "configure.ac")
|
|
485
|
485
|
$ mconcat
|
|
486
|
|
- [ interpolateSetting "ConfiguredEmsdkVersion" EmsdkVersion
|
|
487
|
|
- , interpolateVar "LeadingUnderscore" $ yesNo <$> getTarget stage tgtSymbolsHaveLeadingUnderscore
|
|
488
|
|
- , interpolateSetting "LlvmMaxVersion" LlvmMaxVersion
|
|
489
|
|
- , interpolateSetting "LlvmMinVersion" LlvmMinVersion
|
|
490
|
|
- , interpolateVar "LlvmTarget" $ getTarget stage tgtLlvmTarget
|
|
491
|
|
- , interpolateSetting "ProjectVersion" ProjectVersion
|
|
492
|
|
- , interpolateVar "EnableDistroToolchain" $ interp (staged (lookupStageBuildConfig "settings-use-distro-mingw"))
|
|
493
|
|
- , interpolateVar "TablesNextToCode" $ yesNo <$> getTarget stage tgtTablesNextToCode
|
|
494
|
|
- , interpolateVar "TargetHasLibm" $ yesNo <$> getTarget stage tgtHasLibm
|
|
495
|
|
- , interpolateVar "TargetPlatform" $ getTarget stage targetPlatformTriple
|
|
496
|
|
- , interpolateVar "TargetWordBigEndian" $ getTarget stage isBigEndian
|
|
497
|
|
- , interpolateVar "TargetWordSize" $ getTarget stage wordSize
|
|
498
|
|
- , interpolateVar "Unregisterised" $ yesNo <$> getTarget stage tgtUnregisterised
|
|
499
|
|
- , interpolateVar "UseLibdw" $ fmap yesNo $ interp $ staged (fmap (isJust . tgtRTSWithLibdw) . targetStage)
|
|
500
|
|
- , interpolateVar "UseLibffiForAdjustors" $ yesNo <$> getTarget stage tgtUseLibffiForAdjustors
|
|
501
|
|
- , interpolateVar "GhcWithSMP" $ yesNo <$> targetSupportsSMP stage
|
|
502
|
|
- , crossStageInterps
|
|
503
|
|
- ]
|
|
|
486
|
+ [ interpolateSetting "ConfiguredEmsdkVersion" EmsdkVersion
|
|
|
487
|
+ , interpolateVar "LeadingUnderscore" $ yesNo <$> getLibTarget stage tgtSymbolsHaveLeadingUnderscore
|
|
|
488
|
+ , interpolateSetting "LlvmMaxVersion" LlvmMaxVersion
|
|
|
489
|
+ , interpolateSetting "LlvmMinVersion" LlvmMinVersion
|
|
|
490
|
+ , interpolateVar "LlvmTarget" $ getLibTarget stage tgtLlvmTarget
|
|
|
491
|
+ , interpolateSetting "ProjectVersion" ProjectVersion
|
|
|
492
|
+ , interpolateVar "EnableDistroToolchain" $ interp (staged (lookupStageBuildConfig "settings-use-distro-mingw"))
|
|
|
493
|
+ , interpolateVar "TablesNextToCode" $ yesNo <$> getLibTarget stage tgtTablesNextToCode
|
|
|
494
|
+ , interpolateVar "TargetHasLibm" $ yesNo <$> getLibTarget stage tgtHasLibm
|
|
|
495
|
+ , interpolateVar "TargetPlatform" $ getLibTarget stage targetPlatformTriple
|
|
|
496
|
+ , interpolateVar "TargetWordBigEndian" $ getLibTarget stage isBigEndian
|
|
|
497
|
+ , interpolateVar "TargetWordSize" $ getLibTarget stage wordSize
|
|
|
498
|
+ , interpolateVar "Unregisterised" $ yesNo <$> getLibTarget stage tgtUnregisterised
|
|
|
499
|
+ , interpolateVar "UseLibdw" $ yesNo <$> getLibTarget stage (isJust . tgtRTSWithLibdw)
|
|
|
500
|
+ , interpolateVar "UseLibffiForAdjustors" $ yesNo <$> getLibTarget stage tgtUseLibffiForAdjustors
|
|
|
501
|
+ , interpolateVar "GhcWithSMP" $ yesNo <$> libStageSupportsSMP stage
|
|
|
502
|
+ , crossStageInterps
|
|
|
503
|
+ ]
|
|
504
|
504
|
|
|
505
|
505
|
-- We can build two kinds of bindists: Regular Stage2 (including
|
|
506
|
506
|
-- cross-compilers) and fully cross-compiled Stage3. To avoid
|
| ... |
... |
@@ -555,6 +555,13 @@ bindistRules = do |
|
555
|
555
|
where
|
|
556
|
556
|
interp = interpretInContext (semiEmptyTarget Stage2)
|
|
557
|
557
|
getTarget stage = interp . queryTarget stage
|
|
|
558
|
+ getLibTarget executableStage f = do
|
|
|
559
|
+ isCross <- crossStage executableStage
|
|
|
560
|
+ getTarget (if isCross then succStage executableStage else executableStage) f
|
|
|
561
|
+ -- | 'targetSupportsSMP' lifted to the library stage (see 'getLibTarget').
|
|
|
562
|
+ libStageSupportsSMP stage = do
|
|
|
563
|
+ isCross <- crossStage stage
|
|
|
564
|
+ targetSupportsSMP (if isCross then succStage stage else stage)
|
|
558
|
565
|
|
|
559
|
566
|
-- | Given a 'String' replace characters '.' and '-' by underscores ('_') so that
|
|
560
|
567
|
-- the resulting 'String' is a valid C preprocessor identifier.
|