add LLVM and Clang
This commit is contained in:
parent
7bac1cd3ef
commit
ed53324019
|
@ -1,9 +1,12 @@
|
|||
{ pkgs }:
|
||||
rec {
|
||||
let
|
||||
llvm-src = pkgs.callPackage ./fetch-llvm-clang.nix {};
|
||||
in rec {
|
||||
yosys = pkgs.callPackage ./yosys.nix {};
|
||||
symbiyosys = pkgs.symbiyosys.override { inherit yosys; };
|
||||
nmigen = pkgs.callPackage ./nmigen.nix { inherit yosys; };
|
||||
jtagtap = pkgs.callPackage ./jtagtap.nix { inherit nmigen; };
|
||||
minerva = pkgs.callPackage ./minerva.nix { inherit nmigen; inherit jtagtap; };
|
||||
heavycomps = pkgs.callPackage ./heavycomps.nix { inherit nmigen; };
|
||||
llvm-hx = pkgs.callPackage ./llvm-hx.nix { inherit llvm-src; };
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
{ runCommand, fetchFromGitHub, git }:
|
||||
|
||||
let
|
||||
llvm-src = fetchFromGitHub {
|
||||
rev = "527aa86b578da5dfb9cf4510b71f0f46a11249f7";
|
||||
owner = "m-labs";
|
||||
repo = "llvm-or1k";
|
||||
sha256 = "0lmcg9xj66pf4mb6racipw67vm8kwm84dl861hyqnywd61kvhrwa";
|
||||
};
|
||||
clang-src = fetchFromGitHub {
|
||||
rev = "9e996136d52ed506ed8f57ef8b13b0f0f735e6a3";
|
||||
owner = "m-labs";
|
||||
repo = "clang-or1k";
|
||||
sha256 = "0w5f450i76y162aswi2c7jip8x3arzljaxhbqp8qfdffm0rdbjp4";
|
||||
};
|
||||
in
|
||||
runCommand "llvm_or1k_src" {}''
|
||||
mkdir -p $out
|
||||
mkdir -p $out/tools/clang
|
||||
cp -r ${llvm-src}/* $out/
|
||||
cp -r ${clang-src}/* $out/tools/clang
|
||||
''
|
|
@ -0,0 +1,45 @@
|
|||
{ stdenv
|
||||
, git
|
||||
, llvm-src
|
||||
, perl, groff, cmake, libxml2, python, libffi, valgrind
|
||||
, ...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "llvm-hx";
|
||||
src = llvm-src;
|
||||
|
||||
buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind;
|
||||
|
||||
preBuild = ''
|
||||
NIX_BUILD_CORES=4
|
||||
makeFlagsArray=(-j''$NIX_BUILD_CORES)
|
||||
mkdir -p $out/
|
||||
'';
|
||||
|
||||
cmakeFlags = with stdenv; [
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DLLVM_BUILD_LLVM_DYLIB=ON"
|
||||
"-DLLVM_LINK_LLVM_DYLIB=ON"
|
||||
"-DLLVM_TARGETS_TO_BUILD=X86"
|
||||
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=RISCV;OR1K"
|
||||
"-DLLVM_ENABLE_ASSERTIONS=OFF"
|
||||
"-DLLVM_INSTALL_UTILS=ON"
|
||||
"-DLLVM_INCLUDE_TESTS=OFF"
|
||||
"-DLLVM_INCLUDE_DOCS=OFF"
|
||||
"-DLLVM_INCLUDE_EXAMPLES=OFF"
|
||||
"-DCLANG_ENABLE_ARCMT=OFF"
|
||||
"-DCLANG_ENABLE_STATIC_ANALYZER=OFF"
|
||||
"-DCLANG_INCLUDE_TESTS=OFF"
|
||||
"-DCLANG_INCLUDE_DOCS=OFF"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
meta = {
|
||||
description = "Collection of modular and reusable compiler and toolchain technologies";
|
||||
homepage = http://llvm.org/;
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
maintainers = with stdenv.lib.maintainers; [ sb0 ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue