diff options
author | timor <timor.dd@googlemail.com> | 2016-08-10 16:00:12 +0200 |
---|---|---|
committer | timor <timor.dd@googlemail.com> | 2016-09-20 14:15:52 +0200 |
commit | ecbf44485b3a6b72ba260d20c82881cf10e86b09 (patch) | |
tree | 46391186934ae6b82568f27a936def3fbe7e83f5 /pkgs/development/compilers/ghdl | |
parent | 97801380b05447e59e47ba97d93f6c6cfefd56e4 (diff) |
ghdl: add support for llvm backend
Make the existing ghdl recipe more flexible, and introduce "ghdl_llvm" as a package in addition to "ghdl_mcode". This seems to specifically require llvm 3.5, though. The flavour is also encoded in the package name. cc @viric
Diffstat (limited to 'pkgs/development/compilers/ghdl')
-rw-r--r-- | pkgs/development/compilers/ghdl/default.nix | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/pkgs/development/compilers/ghdl/default.nix b/pkgs/development/compilers/ghdl/default.nix index d8b0598e27834..56d778f4f1c6b 100644 --- a/pkgs/development/compilers/ghdl/default.nix +++ b/pkgs/development/compilers/ghdl/default.nix @@ -1,16 +1,26 @@ -{ stdenv, fetchurl, gnat, zlib }: +{ stdenv, fetchurl, gnat, zlib, llvm_35, ncurses, clang, flavour ? "mcode" }: + +# mcode only works on x86, while the llvm flavour works on both x86 and x86_64. + + +assert flavour == "llvm" || flavour == "mcode"; + let + inherit (stdenv.lib) optional; + inherit (stdenv.lib) optionals; version = "0.33"; in stdenv.mkDerivation rec { - name = "ghdl-mcode-${version}"; + name = "ghdl-${flavour}-${version}"; src = fetchurl { url = "https://github.com/tgingold/ghdl/archive/v${version}.tar.gz"; sha256 = "09yvgqyglbakd74v2dgr470clzm744i232nixyffcds55vkij5da"; }; - buildInputs = [ gnat zlib ]; + buildInputs = [ gnat zlib ] ++ optionals (flavour == "llvm") [ clang ncurses ]; + + configureFlags = optional (flavour == "llvm") "--with-llvm=${llvm_35}"; patchPhase = '' # Disable warnings-as-errors, because there are warnings (unused things) @@ -23,11 +33,10 @@ stdenv.mkDerivation rec { meta = { homepage = "http://sourceforge.net/p/ghdl-updates/wiki/Home/"; - description = "Free VHDL simulator, mcode flavour"; + description = "Free VHDL simulator"; maintainers = with stdenv.lib.maintainers; [viric]; - # I think that mcode can only generate x86 code, - # so it fails to link pieces on x86_64. - platforms = with stdenv.lib.platforms; [ "i686-linux" ]; + platforms = with stdenv.lib.platforms; (if flavour == "llvm" then [ "i686-linux" "x86_64-linux" ] + else [ "i686-linux" ]); license = stdenv.lib.licenses.gpl2Plus; }; } |