Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
e37a5f77
Commit
e37a5f77
authored
Aug 07, 2017
by
Andrey Mokhov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Drop append, simplify
parent
65c5d7c6
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
207 additions
and
236 deletions
+207
-236
src/Expression.hs
src/Expression.hs
+5
-7
src/Hadrian/Expression.hs
src/Hadrian/Expression.hs
+1
-1
src/Rules/Libffi.hs
src/Rules/Libffi.hs
+1
-1
src/Settings/Builders/Ar.hs
src/Settings/Builders/Ar.hs
+1
-1
src/Settings/Builders/Cc.hs
src/Settings/Builders/Cc.hs
+3
-3
src/Settings/Builders/Common.hs
src/Settings/Builders/Common.hs
+3
-16
src/Settings/Builders/Configure.hs
src/Settings/Builders/Configure.hs
+8
-8
src/Settings/Builders/DeriveConstants.hs
src/Settings/Builders/DeriveConstants.hs
+2
-2
src/Settings/Builders/Ghc.hs
src/Settings/Builders/Ghc.hs
+21
-25
src/Settings/Builders/GhcCabal.hs
src/Settings/Builders/GhcCabal.hs
+25
-25
src/Settings/Builders/Haddock.hs
src/Settings/Builders/Haddock.hs
+11
-11
src/Settings/Builders/Hsc2Hs.hs
src/Settings/Builders/Hsc2Hs.hs
+12
-18
src/Settings/Builders/Ld.hs
src/Settings/Builders/Ld.hs
+2
-2
src/Settings/Builders/Make.hs
src/Settings/Builders/Make.hs
+3
-3
src/Settings/Default.hs
src/Settings/Default.hs
+84
-84
src/Settings/Flavours/Development.hs
src/Settings/Flavours/Development.hs
+3
-3
src/Settings/Flavours/Performance.hs
src/Settings/Flavours/Performance.hs
+1
-1
src/Settings/Flavours/Profiled.hs
src/Settings/Flavours/Profiled.hs
+1
-1
src/Settings/Flavours/Quick.hs
src/Settings/Flavours/Quick.hs
+3
-3
src/Settings/Flavours/Quickest.hs
src/Settings/Flavours/Quickest.hs
+4
-4
src/Settings/Packages/Cabal.hs
src/Settings/Packages/Cabal.hs
+2
-2
src/Settings/Packages/Compiler.hs
src/Settings/Packages/Compiler.hs
+1
-1
src/Settings/Packages/GhcCabal.hs
src/Settings/Packages/GhcCabal.hs
+1
-1
src/Settings/Packages/Haddock.hs
src/Settings/Packages/Haddock.hs
+1
-1
src/Settings/Packages/Rts.hs
src/Settings/Packages/Rts.hs
+7
-11
src/Settings/Packages/RunGhc.hs
src/Settings/Packages/RunGhc.hs
+1
-1
No files found.
src/Expression.hs
View file @
e37a5f77
...
...
@@ -3,7 +3,7 @@ module Expression (
Expr
,
Predicate
,
Args
,
Ways
,
Packages
,
-- ** Construction and modification
expr
,
exprIO
,
append
,
arg
,
remove
,
expr
,
exprIO
,
arg
,
remove
,
-- ** Predicates
(
?
),
stage
,
stage0
,
stage1
,
stage2
,
notStage0
,
package
,
notPackage
,
...
...
@@ -17,7 +17,7 @@ module Expression (
-- * Convenient accessors
getContext
,
getStage
,
getPackage
,
getBuilder
,
getOutputs
,
getInputs
,
getWay
,
getInput
,
getOutput
,
getSetting
,
getSettingList
,
getFlag
,
getInput
,
getOutput
,
getSetting
,
getSettingList
,
getStagedSettingList
,
getFlag
,
-- * Re-exports
module
Data
.
Semigroup
,
...
...
@@ -57,16 +57,15 @@ type Ways = Expr [Way]
-- Basic operations on expressions:
-- | Append something to an expression.
append
::
a
->
Expr
a
append
=
pure
getSetting
::
Setting
->
Expr
String
getSetting
=
expr
.
setting
getSettingList
::
SettingList
->
Expr
[
String
]
getSettingList
=
expr
.
settingList
getStagedSettingList
::
(
Stage
->
SettingList
)
->
Expr
[
String
]
getStagedSettingList
f
=
getSettingList
.
f
=<<
getStage
getFlag
::
Flag
->
Predicate
getFlag
=
expr
.
flag
...
...
@@ -105,4 +104,3 @@ notPackage = notM . package
-- | Is a library package currently being built?
libraryPackage
::
Predicate
libraryPackage
=
isLibrary
<$>
getPackage
src/Hadrian/Expression.hs
View file @
e37a5f77
...
...
@@ -140,4 +140,4 @@ output f = any (f ?==) <$> getOutputs
-- | Does any of the output files match any of the given patterns?
outputs
::
[
FilePattern
]
->
Predicate
c
b
outputs
=
anyM
output
\ No newline at end of file
outputs
=
anyM
output
src/Rules/Libffi.hs
View file @
e37a5f77
...
...
@@ -28,7 +28,7 @@ configureEnvironment :: Action [CmdOption]
configureEnvironment
=
do
cFlags
<-
interpretInContext
libffiContext
$
mconcat
[
cArgs
,
arg
StagedSettingList
ConfCcArgs
]
,
get
StagedSettingList
ConfCcArgs
]
ldFlags
<-
interpretInContext
libffiContext
ldArgs
sequence
[
builderEnvironment
"CC"
$
Cc
CompileC
Stage1
,
builderEnvironment
"CXX"
$
Cc
CompileC
Stage1
...
...
src/Settings/Builders/Ar.hs
View file @
e37a5f77
...
...
@@ -5,7 +5,7 @@ import Settings.Builders.Common
arBuilderArgs
::
Args
arBuilderArgs
=
builder
Ar
?
mconcat
[
arg
"q"
,
arg
=<<
getOutput
,
append
=<<
getInputs
]
,
getInputs
]
-- This count includes arg "q" and arg file parameters in arBuilderArgs.
-- Update this value appropriately when changing arBuilderArgs.
...
...
src/Settings/Builders/Cc.hs
View file @
e37a5f77
...
...
@@ -6,13 +6,13 @@ ccBuilderArgs :: Args
ccBuilderArgs
=
do
way
<-
getWay
builder
Cc
?
mconcat
[
append
=<<
getPkgDataList
CcArgs
,
getSettingList
.
ConfCcArgs
=<<
getStage
[
getPkgDataList
CcArgs
,
getS
tagedS
ettingList
ConfCcArgs
,
cIncludeArgs
,
builder
(
Cc
CompileC
)
?
mconcat
[
arg
"-Werror"
,
Dynamic
`
wayUnit
`
way
?
append
[
"-fPIC"
,
"-DDYNAMIC"
]
,
Dynamic
`
wayUnit
`
way
?
pure
[
"-fPIC"
,
"-DDYNAMIC"
]
-- ref: mk/warning.mk:
-- SRC_CC_OPTS += -Wall $(WERROR)
,
arg
"-c"
,
arg
=<<
getInput
...
...
src/Settings/Builders/Common.hs
View file @
e37a5f77
...
...
@@ -8,8 +8,7 @@ module Settings.Builders.Common (
module
Settings
,
module
Settings
.
Path
,
module
UserSettings
,
cIncludeArgs
,
ldArgs
,
cArgs
,
cWarnings
,
argStagedBuilderPath
,
argStagedSettingList
,
bootPackageDatabaseArgs
cIncludeArgs
,
ldArgs
,
cArgs
,
cWarnings
,
bootPackageDatabaseArgs
)
where
import
Base
...
...
@@ -31,8 +30,8 @@ cIncludeArgs = do
mconcat
[
arg
"-Iincludes"
,
arg
$
"-I"
++
generatedPath
,
arg
$
"-I"
++
path
,
append
[
"-I"
++
pkgPath
pkg
-/-
dir
|
dir
<-
incDirs
]
,
append
[
"-I"
++
unifyPath
dir
|
dir
<-
depDirs
]
]
,
pure
[
"-I"
++
pkgPath
pkg
-/-
dir
|
dir
<-
incDirs
]
,
pure
[
"-I"
++
unifyPath
dir
|
dir
<-
depDirs
]
]
ldArgs
::
Args
ldArgs
=
mempty
...
...
@@ -49,18 +48,6 @@ cWarnings = do
,
gccGe46
?
notM
windowsHost
?
arg
"-Werror=unused-but-set-variable"
,
gccGe46
?
arg
"-Wno-error=inline"
]
argSettingList
::
SettingList
->
Args
argSettingList
=
(
append
=<<
)
.
getSettingList
argStagedSettingList
::
(
Stage
->
SettingList
)
->
Args
argStagedSettingList
ss
=
argSettingList
.
ss
=<<
getStage
argStagedBuilderPath
::
(
Stage
->
Builder
)
->
Args
argStagedBuilderPath
sb
=
do
stage
<-
getStage
path
<-
expr
$
builderPath
(
sb
stage
)
arg
path
bootPackageDatabaseArgs
::
Args
bootPackageDatabaseArgs
=
do
stage
<-
getStage
...
...
src/Settings/Builders/Configure.hs
View file @
e37a5f77
...
...
@@ -7,15 +7,15 @@ configureBuilderArgs = mconcat
[
builder
(
Configure
gmpBuildPath
)
?
do
hostPlatform
<-
getSetting
HostPlatform
buildPlatform
<-
getSetting
BuildPlatform
append
[
"--enable-shared=no"
,
"--host="
++
hostPlatform
,
"--build="
++
buildPlatform
]
pure
[
"--enable-shared=no"
,
"--host="
++
hostPlatform
,
"--build="
++
buildPlatform
]
,
builder
(
Configure
libffiBuildPath
)
?
do
top
<-
expr
topDirectory
targetPlatform
<-
getSetting
TargetPlatform
append
[
"--prefix="
++
top
-/-
libffiBuildPath
-/-
"inst"
,
"--libdir="
++
top
-/-
libffiBuildPath
-/-
"inst/lib"
,
"--enable-static=yes"
,
"--enable-shared=no"
-- TODO: add support for yes
,
"--host="
++
targetPlatform
]
]
pure
[
"--prefix="
++
top
-/-
libffiBuildPath
-/-
"inst"
,
"--libdir="
++
top
-/-
libffiBuildPath
-/-
"inst/lib"
,
"--enable-static=yes"
,
"--enable-shared=no"
-- TODO: add support for yes
,
"--host="
++
targetPlatform
]
]
src/Settings/Builders/DeriveConstants.hs
View file @
e37a5f77
...
...
@@ -16,11 +16,11 @@ deriveConstantsBuilderArgs = builder DeriveConstants ? do
,
arg
"-o"
,
arg
outputFile
,
arg
"--tmpdir"
,
arg
tempDir
,
arg
"--gcc-program"
,
arg
=<<
getBuilderPath
(
Cc
CompileC
Stage1
)
,
append
$
concatMap
(
\
a
->
[
"--gcc-flag"
,
a
])
cFlags
,
pure
$
concatMap
(
\
a
->
[
"--gcc-flag"
,
a
])
cFlags
,
arg
"--nm-program"
,
arg
=<<
getBuilderPath
Nm
,
isSpecified
Objdump
?
mconcat
[
arg
"--objdump-program"
,
arg
=<<
getBuilderPath
Objdump
]
,
arg
"--target-os"
,
return
<$>
getSetting
TargetOs
]
,
arg
"--target-os"
,
arg
=<<
getSetting
TargetOs
]
includeCcArgs
::
Args
includeCcArgs
=
mconcat
...
...
src/Settings/Builders/Ghc.hs
View file @
e37a5f77
...
...
@@ -15,25 +15,25 @@ ghcBuilderArgs = (builder (Ghc CompileHs) ||^ builder (Ghc LinkHs)) ? do
,
splitObjectsArgs
,
ghcLinkArgs
,
builder
(
Ghc
CompileHs
)
?
arg
"-c"
,
append
=<<
getInputs
,
getInputs
,
arg
"-o"
,
arg
=<<
getOutput
]
ghcCbuilderArgs
::
Args
ghcCbuilderArgs
=
builder
(
Ghc
CompileCWithGhc
)
?
do
way
<-
getWay
let
ccArgs
=
[
append
=<<
getPkgDataList
CcArgs
,
getSettingList
.
ConfCcArgs
=<<
getStage
let
ccArgs
=
[
getPkgDataList
CcArgs
,
getS
tagedS
ettingList
ConfCcArgs
,
cIncludeArgs
,
arg
"-Werror"
,
Dynamic
`
wayUnit
`
way
?
append
[
"-fPIC"
,
"-DDYNAMIC"
]
]
,
Dynamic
`
wayUnit
`
way
?
pure
[
"-fPIC"
,
"-DDYNAMIC"
]
]
mconcat
[
arg
"-Wall"
,
ghcLinkArgs
,
commonGhcArgs
,
mconcat
(
map
(
map
(
"-optc"
++
)
<$>
)
ccArgs
)
,
arg
"-c"
,
append
=<<
getInputs
,
getInputs
,
arg
"-o"
,
arg
=<<
getOutput
]
...
...
@@ -51,12 +51,12 @@ ghcLinkArgs = builder (Ghc LinkHs) ? do
return
$
concatMap
(
words
.
strip
)
buildInfo
else
return
[]
mconcat
[
(
Dynamic
`
wayUnit
`
way
)
?
append
[
"-shared"
,
"-dynamic"
,
"-dynload"
,
"deploy"
]
pure
[
"-shared"
,
"-dynamic"
,
"-dynload"
,
"deploy"
]
,
arg
"-no-auto-link-packages"
,
nonHsMainPackage
pkg
?
arg
"-no-hs-main"
,
not
(
nonHsMainPackage
pkg
)
?
arg
"-rtsopts"
,
append
[
"-optl-l"
++
lib
|
lib
<-
libs
++
gmpLibs
]
,
append
[
"-optl-L"
++
unifyPath
dir
|
dir
<-
libDirs
]
]
,
pure
[
"-optl-l"
++
lib
|
lib
<-
libs
++
gmpLibs
]
,
pure
[
"-optl-L"
++
unifyPath
dir
|
dir
<-
libDirs
]
]
needTouchy
::
Expr
()
needTouchy
=
notStage0
?
do
...
...
@@ -75,29 +75,26 @@ ghcMBuilderArgs = builder (Ghc FindHsDependencies) ? do
,
commonGhcArgs
,
arg
"-include-pkg-deps"
,
arg
"-dep-makefile"
,
arg
=<<
getOutput
,
append
$
concat
[
[
"-dep-suffix"
,
wayPrefix
w
]
|
w
<-
ways
]
,
append
=<<
getInputs
]
,
pure
$
concat
[
[
"-dep-suffix"
,
wayPrefix
w
]
|
w
<-
ways
]
,
getInputs
]
haddockGhcArgs
::
Args
haddockGhcArgs
=
mconcat
[
commonGhcArgs
,
append
=<<
getPkgDataList
HsArgs
]
haddockGhcArgs
=
mconcat
[
commonGhcArgs
,
getPkgDataList
HsArgs
]
-- This is included into ghcBuilderArgs, ghcMBuilderArgs and haddockGhcArgs.
commonGhcArgs
::
Args
commonGhcArgs
=
do
way
<-
getWay
path
<-
getBuildPath
confCc
<-
getSettingList
.
ConfCcArgs
=<<
getStage
confCpp
<-
getSettingList
.
ConfCppArgs
=<<
getStage
cppArgs
<-
getPkgDataList
CppArgs
mconcat
[
arg
"-hisuf"
,
arg
$
hisuf
way
,
arg
"-osuf"
,
arg
$
osuf
way
,
arg
"-hcsuf"
,
arg
$
hcsuf
way
,
wayGhcArgs
,
packageGhcArgs
,
includeGhcArgs
,
append
$
map
(
"-optc"
++
)
c
onfCc
,
append
$
map
(
"-optP"
++
)
c
onfCpp
,
append
$
map
(
"-optP"
++
)
c
ppArgs
,
map
(
"-optc"
++
)
<$>
getStagedSettingList
C
onfCc
Args
,
map
(
"-optP"
++
)
<$>
getStagedSettingList
C
onfCpp
Args
,
map
(
"-optP"
++
)
<$>
getPkgDataList
C
ppArgs
,
arg
"-odir"
,
arg
path
,
arg
"-hidir"
,
arg
path
,
arg
"-stubdir"
,
arg
path
]
...
...
@@ -107,20 +104,19 @@ wayGhcArgs :: Args
wayGhcArgs
=
do
way
<-
getWay
mconcat
[
if
(
Dynamic
`
wayUnit
`
way
)
then
append
[
"-fPIC"
,
"-dynamic"
]
then
pure
[
"-fPIC"
,
"-dynamic"
]
else
arg
"-static"
,
(
Threaded
`
wayUnit
`
way
)
?
arg
"-optc-DTHREADED_RTS"
,
(
Debug
`
wayUnit
`
way
)
?
arg
"-optc-DDEBUG"
,
(
Profiling
`
wayUnit
`
way
)
?
arg
"-prof"
,
(
Logging
`
wayUnit
`
way
)
?
arg
"-eventlog"
,
(
way
==
debug
||
way
==
debugDynamic
)
?
append
[
"-ticky"
,
"-DTICKY_TICKY"
]
]
pure
[
"-ticky"
,
"-DTICKY_TICKY"
]
]
-- FIXME: Get rid of to-be-deprecated -this-package-key.
packageGhcArgs
::
Args
packageGhcArgs
=
do
compId
<-
getPkgData
ComponentId
pkgDepIds
<-
getPkgDataList
DepIds
-- FIXME: Get rid of to-be-deprecated -this-package-key.
thisArg
<-
do
not0
<-
notStage0
unit
<-
getFlag
SupportsThisUnitId
...
...
@@ -129,7 +125,7 @@ packageGhcArgs = do
,
arg
"-no-user-package-db"
,
bootPackageDatabaseArgs
,
libraryPackage
?
arg
(
thisArg
++
compId
)
,
append
$
map
(
"-package-id "
++
)
pkg
DepIds
]
,
map
(
"-package-id "
++
)
<$>
getPkgDataList
DepIds
]
includeGhcArgs
::
Args
includeGhcArgs
=
do
...
...
@@ -140,10 +136,10 @@ includeGhcArgs = do
mconcat
[
arg
"-i"
,
arg
$
"-i"
++
path
,
arg
$
"-i"
++
autogenPath
context
,
append
[
"-i"
++
pkgPath
pkg
-/-
dir
|
dir
<-
srcDirs
]
,
pure
[
"-i"
++
pkgPath
pkg
-/-
dir
|
dir
<-
srcDirs
]
,
cIncludeArgs
,
arg
$
"-I"
++
generatedPath
,
arg
$
"-optc-I"
++
generatedPath
,
(
not
$
nonCabalContext
context
)
?
append
[
"-optP-include"
,
"-optP"
++
autogenPath
context
-/-
"cabal_macros.h"
]
]
pure
[
"-optP-include"
,
"-optP"
++
autogenPath
context
-/-
"cabal_macros.h"
]
]
src/Settings/Builders/GhcCabal.hs
View file @
e37a5f77
...
...
@@ -29,7 +29,7 @@ ghcCabalBuilderArgs = builder GhcCabal ? do
,
withStaged
Ar
,
with
Alex
,
with
Happy
,
verbosity
<
Chatty
?
append
[
"-v0"
,
"--configure-option=--quiet"
,
verbosity
<
Chatty
?
pure
[
"-v0"
,
"--configure-option=--quiet"
,
"--configure-option=--disable-option-checking"
]
]
ghcCabalHsColourBuilderArgs
::
Args
...
...
@@ -37,7 +37,7 @@ ghcCabalHsColourBuilderArgs = builder GhcCabalHsColour ? do
path
<-
getPackagePath
top
<-
expr
topDirectory
context
<-
getContext
append
[
"hscolour"
,
path
,
top
-/-
buildPath
context
]
pure
[
"hscolour"
,
path
,
top
-/-
buildPath
context
]
-- TODO: Isn't vanilla always built? If yes, some conditions are redundant.
-- TODO: Need compiler_stage1_CONFIGURE_OPTS += --disable-library-for-ghci?
...
...
@@ -45,18 +45,18 @@ libraryArgs :: Args
libraryArgs
=
do
ways
<-
getLibraryWays
withGhci
<-
expr
ghcWithInterpreter
append
[
if
vanilla
`
elem
`
ways
then
"--enable-library-vanilla"
else
"--disable-library-vanilla"
,
if
vanilla
`
elem
`
ways
&&
withGhci
&&
not
(
dynamicGhcPrograms
flavour
)
then
"--enable-library-for-ghci"
else
"--disable-library-for-ghci"
,
if
profiling
`
elem
`
ways
then
"--enable-library-profiling"
else
"--disable-library-profiling"
,
if
dynamic
`
elem
`
ways
then
"--enable-shared"
else
"--disable-shared"
]
pure
[
if
vanilla
`
elem
`
ways
then
"--enable-library-vanilla"
else
"--disable-library-vanilla"
,
if
vanilla
`
elem
`
ways
&&
withGhci
&&
not
(
dynamicGhcPrograms
flavour
)
then
"--enable-library-for-ghci"
else
"--disable-library-for-ghci"
,
if
profiling
`
elem
`
ways
then
"--enable-library-profiling"
else
"--disable-library-profiling"
,
if
dynamic
`
elem
`
ways
then
"--enable-shared"
else
"--disable-shared"
]
-- TODO: LD_OPTS?
configureArgs
::
Args
...
...
@@ -67,28 +67,28 @@ configureArgs = do
not
(
null
values
)
?
arg
(
"--configure-option="
++
key
++
"="
++
values
)
cFlags
=
mconcat
[
remove
[
"-Werror"
]
cArgs
,
arg
StagedSettingList
ConfCcArgs
,
get
StagedSettingList
ConfCcArgs
,
arg
$
"-I"
++
top
-/-
generatedPath
]
ldFlags
=
ldArgs
<>
(
arg
StagedSettingList
ConfGccLinkerArgs
)
cppFlags
=
cppArgs
<>
(
arg
StagedSettingList
ConfCppArgs
)
ldFlags
=
ldArgs
<>
(
get
StagedSettingList
ConfGccLinkerArgs
)
cppFlags
=
cppArgs
<>
(
get
StagedSettingList
ConfCppArgs
)
cldFlags
<-
unwords
<$>
(
cFlags
<>
ldFlags
)
mconcat
[
conf
"CFLAGS"
cFlags
,
conf
"LDFLAGS"
ldFlags
,
conf
"CPPFLAGS"
cppFlags
,
not
(
null
cldFlags
)
?
arg
(
"--gcc-options="
++
cldFlags
)
,
conf
"--with-iconv-includes"
$
return
<$>
getSetting
IconvIncludeDir
,
conf
"--with-iconv-libraries"
$
return
<$>
getSetting
IconvLibDir
,
conf
"--with-gmp-includes"
$
return
<$>
getSetting
GmpIncludeDir
,
conf
"--with-gmp-libraries"
$
return
<$>
getSetting
GmpLibDir
,
conf
"--with-curses-libraries"
$
return
<$>
getSetting
CursesLibDir
,
crossCompiling
?
(
conf
"--host"
$
return
<$>
getSetting
TargetPlatformFull
)
,
conf
"--with-cc"
$
arg
Sta
ge
d
BuilderPath
(
Cc
CompileC
)
]
,
conf
"--with-iconv-includes"
$
arg
=<<
getSetting
IconvIncludeDir
,
conf
"--with-iconv-libraries"
$
arg
=<<
getSetting
IconvLibDir
,
conf
"--with-gmp-includes"
$
arg
=<<
getSetting
GmpIncludeDir
,
conf
"--with-gmp-libraries"
$
arg
=<<
getSetting
GmpLibDir
,
conf
"--with-curses-libraries"
$
arg
=<<
getSetting
CursesLibDir
,
crossCompiling
?
(
conf
"--host"
$
arg
=<<
getSetting
TargetPlatformFull
)
,
conf
"--with-cc"
$
arg
=<<
ge
t
BuilderPath
.
(
Cc
CompileC
)
=<<
getStage
]
packageConstraints
::
Args
packageConstraints
=
stage0
?
do
constraints
<-
expr
.
readFileLines
$
bootPackageConstraints
append
$
concat
[
[
"--constraint"
,
c
]
|
c
<-
constraints
]
pure
$
concat
[
[
"--constraint"
,
c
]
|
c
<-
constraints
]
cppArgs
::
Args
cppArgs
=
arg
$
"-I"
++
generatedPath
...
...
src/Settings/Builders/Haddock.hs
View file @
e37a5f77
...
...
@@ -32,18 +32,18 @@ haddockBuilderArgs = builder Haddock ? do
,
arg
$
"--title="
++
pkgNameString
pkg
++
"-"
++
version
++
": "
++
synopsis
,
arg
$
"--prologue="
++
path
-/-
"haddock-prologue.txt"
,
arg
$
"--optghc=-D__HADDOCK_VERSION__="
++
show
(
versionToInt
hVersion
)
,
append
.
map
(
"--hide="
++
)
=<<
getPkgDataList
HiddenModules
,
append
$
[
"--read-interface=../"
++
dep
++
",../"
++
dep
++
"/src/%{MODULE/./-}.html
\\
#%{NAME},"
++
pkgHaddockFile
(
vanillaContext
Stage1
depPkg
)
|
(
dep
,
depName
)
<-
zip
deps
depNames
,
Just
depPkg
<-
[
findKnownPackage
$
PackageName
depName
]
,
depPkg
/=
rts
]
,
append
[
"--optghc="
++
opt
|
opt
<-
ghcOpts
]
,
map
(
"--hide="
++
)
<$>
getPkgDataList
HiddenModules
,
pure
[
"--read-interface=../"
++
dep
++
",../"
++
dep
++
"/src/%{MODULE/./-}.html
\\
#%{NAME},"
++
pkgHaddockFile
(
vanillaContext
Stage1
depPkg
)
|
(
dep
,
depName
)
<-
zip
deps
depNames
,
Just
depPkg
<-
[
findKnownPackage
$
PackageName
depName
]
,
depPkg
/=
rts
]
,
pure
[
"--optghc="
++
opt
|
opt
<-
ghcOpts
]
,
isSpecified
HsColour
?
append
[
"--source-module=src/%{MODULE/./-}.html"
,
"--source-entity=src/%{MODULE/./-}.html
\\
#%{NAME}"
]
,
append
=<<
getInputs
pure
[
"--source-module=src/%{MODULE/./-}.html"
,
"--source-entity=src/%{MODULE/./-}.html
\\
#%{NAME}"
]
,
getInputs
,
arg
"+RTS"
,
arg
$
"-t"
++
path
-/-
"haddock.t"
,
arg
"--machine-readable"
...
...
src/Settings/Builders/Hsc2Hs.hs
View file @
e37a5f77
...
...
@@ -7,8 +7,6 @@ hsc2hsBuilderArgs = builder Hsc2Hs ? do
stage
<-
getStage
ccPath
<-
getBuilderPath
$
Cc
CompileC
stage
gmpDir
<-
getSetting
GmpIncludeDir
cFlags
<-
getCFlags
lFlags
<-
getLFlags
top
<-
expr
topDirectory
hArch
<-
getSetting
HostArch
hOs
<-
getSetting
HostOs
...
...
@@ -20,9 +18,9 @@ hsc2hsBuilderArgs = builder Hsc2Hs ? do
mconcat
[
arg
$
"--cc="
++
ccPath
,
arg
$
"--ld="
++
ccPath
,
notM
windowsHost
?
arg
"--cross-safe"
,
append
.
map
(
"-I"
++
)
$
words
gmpDir
,
append
$
map
(
"--cflag="
++
)
c
Flags
,
append
$
map
(
"--lflag="
++
)
l
Flags
,
pure
$
map
(
"-I"
++
)
(
words
gmpDir
)
,
map
(
"--cflag="
++
)
<$>
getC
Flags
,
map
(
"--lflag="
++
)
<$>
getL
Flags
,
notStage0
?
crossCompiling
?
arg
"--cross-compile"
,
stage0
?
arg
(
"--cflag=-D"
++
hArch
++
"_HOST_ARCH=1"
)
,
stage0
?
arg
(
"--cflag=-D"
++
hOs
++
"_HOST_OS=1"
)
...
...
@@ -37,25 +35,21 @@ hsc2hsBuilderArgs = builder Hsc2Hs ? do
getCFlags
::
Expr
[
String
]
getCFlags
=
do
context
<-
getContext
cppArgs
<-
getPkgDataList
CppArgs
depCcArgs
<-
getPkgDataList
DepCcArgs
mconcat
[
remove
[
"-O"
]
(
cArgs
<>
argStagedSettingList
ConfCcArgs
)
,
argStagedSettingList
ConfCppArgs
mconcat
[
remove
[
"-O"
]
(
cArgs
<>
getStagedSettingList
ConfCcArgs
)
,
getStagedSettingList
ConfCppArgs
,
cIncludeArgs
,
append
c
ppArgs
,
append
d
epCcArgs
,
getPkgDataList
C
ppArgs
,
getPkgDataList
D
epCcArgs
,
cWarnings
,
arg
"-include"
,
arg
$
autogenPath
context
-/-
"cabal_macros.h"
]
getLFlags
::
Expr
[
String
]
getLFlags
=
do
pkgLdArgs
<-
getPkgDataList
LdArgs
libDirs
<-
getPkgDataList
DepLibDirs
extraLibs
<-
getPkgDataList
DepExtraLibs
depLdArgs
<-
getPkgDataList
DepLdArgs
mconcat
[
argStagedSettingList
ConfGccLinkerArgs
mconcat
[
getStagedSettingList
ConfGccLinkerArgs
,
ldArgs
,
append
pkg
LdArgs
,
append
$
[
"-L"
++
unifyPath
dir
|
dir
<-
libDirs
]
,
append
$
[
"-l"
++
unifyPath
dir
|
dir
<-
extraLibs
]
,
append
d
epLdArgs
]
,
getPkgDataList
LdArgs
,
pure
[
"-L"
++
unifyPath
dir
|
dir
<-
libDirs
]
,
pure
[
"-l"
++
unifyPath
dir
|
dir
<-
extraLibs
]
,
getPkgDataList
D
epLdArgs
]
src/Settings/Builders/Ld.hs
View file @
e37a5f77
...
...
@@ -3,7 +3,7 @@ module Settings.Builders.Ld (ldBuilderArgs) where
import
Settings.Builders.Common
ldBuilderArgs
::
Args
ldBuilderArgs
=
builder
Ld
?
mconcat
[
arg
StagedSettingList
ConfLdLinkerArgs
ldBuilderArgs
=
builder
Ld
?
mconcat
[
get
StagedSettingList
ConfLdLinkerArgs
,
arg
"-r"
,
arg
"-o"
,
arg
=<<
getOutput
,
append
=<<
getInputs
]
,
getInputs
]
src/Settings/Builders/Make.hs
View file @
e37a5f77
...
...
@@ -7,6 +7,6 @@ makeBuilderArgs = do
threads
<-
shakeThreads
<$>
(
expr
getShakeOptions
)
let
t
=
show
$
max
4
(
threads
-
2
)
-- Don't use all Shake's threads
mconcat
[
builder
(
Make
gmpBuildPath
)
?
append
[
"MAKEFLAGS=-j"
++
t
]
,
builder
(
Make
libffiBuildPath
)
?
append
[
"MAKEFLAGS=-j"
++
t
,
"install"
]
,
builder
(
Make
"testsuite/tests"
)
?
append
[
"THREADS="
++
t
,
"fast"
]
]
[
builder
(
Make
gmpBuildPath
)
?
pure
[
"MAKEFLAGS=-j"
++
t
]
,
builder
(
Make
libffiBuildPath
)
?
pure
[
"MAKEFLAGS=-j"
++
t
,
"install"
]
,
builder
(
Make
"testsuite/tests"
)
?
pure
[
"THREADS="
++
t
,
"fast"
]
]
src/Settings/Default.hs
View file @
e37a5f77
...
...
@@ -52,7 +52,7 @@ data SourceArgs = SourceArgs
sourceArgs
::
SourceArgs
->
Args
sourceArgs
SourceArgs
{
..
}
=
builder
Ghc
?
mconcat
[
hsDefault
,
append
=<<
getPkgDataList
HsArgs
,
getPkgDataList
HsArgs
,
libraryPackage
?
hsLibrary
,
package
compiler
?
hsCompiler
,
package
ghc
?
hsGhc
]
...
...
@@ -96,64 +96,64 @@ stage0Packages :: Packages
stage0Packages
=
do
win
<-
expr
windowsHost
ios
<-
expr
iosHost
append
$
[
binary
,
cabal
,
checkApiAnnotations
,
compareSizes
,
compiler
,
deriveConstants
,
dllSplit
,
genapply
,
genprimopcode
,
ghc
,
ghcBoot
,
ghcBootTh
,
ghcCabal
,
ghci
,
ghcPkg
,
ghcTags
,
hsc2hs
,
hp2ps
,
hpc
,
mkUserGuidePart
,
templateHaskell
,
transformers
,
unlit
]
++
[
terminfo
|
not
win
,
not
ios
]
++
[
touchy
|
win
]
pure
$
[
binary
,
cabal
,
checkApiAnnotations
,
compareSizes
,
compiler
,
deriveConstants
,
dllSplit
,
genapply
,
genprimopcode
,
ghc
,
ghcBoot
,
ghcBootTh
,
ghcCabal
,
ghci
,
ghcPkg
,
ghcTags
,
hsc2hs
,
hp2ps
,
hpc
,
mkUserGuidePart
,
templateHaskell
,
transformers
,
unlit
]
++
[
terminfo
|
not
win
,
not
ios
]
++
[
touchy
|
win
]
stage1Packages
::
Packages
stage1Packages
=
do
win
<-
expr
windowsHost
doc
<-
buildHaddock
flavour
mconcat
[
(
filter
isLibrary
)
<$>
stage0Packages
-- Build all Stage0 libraries in Stage1
,
append
$
[
array
,
base
,
bytestring
,
containers
,
deepseq
,
directory
,
filepath
,
ghc
,
ghcCabal
,
ghcCompact
,
ghcPrim
,
haskeline
,
hpcBin
,
hsc2hs
,
integerLibrary
flavour
,
pretty
,
process
,
rts
,
runGhc
,
time
]
++
[
iservBin
|
not
win
]
++
[
unix
|
not
win
]
++
[
win32
|
win
]
++
[
xhtml
|
doc
]
]
,
pure
$
[
array
,
base
,
bytestring
,
containers
,
deepseq
,
directory
,
filepath
,
ghc
,
ghcCabal
,
ghcCompact
,
ghcPrim
,
haskeline
,
hpcBin