diff options
Diffstat (limited to 'pkgs/development')
-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 d8b0598e2783..56d778f4f1c6 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; }; } |