Skip to content
Snippets Groups Projects

Install LLVM 7.0.1 on Debian 10

Closed Ben Gamari requested to merge wip/deb10-llvm into master
4 files
+ 55
40
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 27
12
@@ -9,37 +9,51 @@ let
, triple : Text
}
let Source: Type =
< FromBindist : BindistSpec
| FromDistro : List Text
-- Commands to run to install
>
let
Options =
{ Type =
{ bindist : BindistSpec
{ source : Source
, destDir : Text
}
, default = {}
}
let
install: Options.Type -> CF.Type =
\(opts: Options.Type) ->
installFromBindistTo: Text -> BindistSpec -> CF.Type =
\(destDir: Text) -> \(bindist: BindistSpec) ->
let
url: Text = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${opts.bindist.version}/clang+llvm-${opts.bindist.version}-${opts.bindist.triple}.tar.xz"
url: Text = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${bindist.version}/clang+llvm-${bindist.version}-${bindist.triple}.tar.xz"
in
CF.run "install LLVM for bootstrap GHC"
CF.run "install LLVM"
[ "curl -L ${url} | tar -xJC ."
, "mkdir ${opts.destDir}"
, "cp -R clang+llvm*/* ${opts.destDir}"
, "mkdir ${destDir}"
, "cp -R clang+llvm*/* ${destDir}"
, "rm -R clang+llvm*"
, "${opts.destDir}/bin/llc --version"
, "${destDir}/bin/llc --version"
]
let
maybeInstallTo: Text -> Optional BindistSpec -> CF.Type =
\(destDir: Text) -> \(opts: Optional BindistSpec) ->
install: Options.Type -> CF.Type =
\(opts: Options.Type) ->
merge
{ FromBindist = installFromBindistTo opts.destDir
, FromDistro = \(cmds: List Text) -> CF.run "install LLVM" cmds
} opts.source
let
maybeInstallTo: Text -> Optional Source -> CF.Type =
\(destDir: Text) -> \(source: Optional Source) ->
merge
{ Some = \(tv: BindistSpec) -> install { bindist = tv, destDir = destDir }
{ Some = \(src: Source) -> install { source = src, destDir = destDir }
, None = [] : CF.Type
} opts
} source
let
setEnv: Text -> CF.Type =
@@ -51,6 +65,7 @@ let
in
{ Options = Options
, Source = Source
, BindistSpec = BindistSpec
, install = install
, maybeInstallTo = maybeInstallTo
Loading