diff options
author | Lluís Batlle i Rossell <viric@viric.name> | 2014-04-16 10:33:27 +0200 |
---|---|---|
committer | Lluís Batlle i Rossell <viric@viric.name> | 2014-04-16 10:35:45 +0200 |
commit | 44bda71b88a8c7e96421e2d7766e30d5a22ee134 (patch) | |
tree | a3328fa50f5ee68d6f0d6199a323984527b709cb /pkgs/development/compilers/ghdl | |
parent | d4097e4e0e992123745cb01c7dfc48bdbb54e3cc (diff) |
Adding ghdl 0.31 mcode flavour
This allows having a recent ghdl, without building it with gcc.
The major drawback is the speed.
Diffstat (limited to 'pkgs/development/compilers/ghdl')
-rw-r--r-- | pkgs/development/compilers/ghdl/default.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/development/compilers/ghdl/default.nix b/pkgs/development/compilers/ghdl/default.nix new file mode 100644 index 000000000000..cd33d3d79a70 --- /dev/null +++ b/pkgs/development/compilers/ghdl/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchurl, gnat, zlib }: + +assert stdenv.system == "i686-linux"; + +let + version = "0.31"; +in +stdenv.mkDerivation rec { + name = "ghdl-mcode-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/ghdl/ghdl-${version}.tar.gz"; + sha256 = "1v0l9h6906b0bvnwfi2qg5nz9vjg80isc5qgjxr1yqxpkfm2xcf0"; + }; + + buildInputs = [ gnat zlib ]; + + # Tarbomb + preUnpack = '' + mkdir ghdl + cd ghdl + ''; + + sourceRoot = "translate/ghdldrv"; + + patchPhase = '' + sed -i 's,$$curdir/lib,'$out'/share/ghdl_mcode/translate/lib,' Makefile + ''; + + postBuild = '' + # Build the LIB + ln -s ghdl_mcode ghdl + make install.mcode + ''; + + installPhase = '' + ensureDir $out/bin + cp ghdl_mcode $out/bin + + ensureDir $out/share/ghdl_mcode/translate + cp -R ../lib $out/share/ghdl_mcode/translate + cp -R ../../libraries $out/share/ghdl_mcode + + ensureDir $out/share/man/man1 + cp ../../doc/ghdl.1 $out/share/man/man1/ghdl_mcode.1 + + # Ghdl has some timestamps checks, storing file timestamps in '.cf' files. + # As we will change the timestamps to 1970-01-01 00:00:01, we also set the + # content of that .cf to that value. This way ghdl does not complain on + # the installed object files from the basic libraries (ieee, ...) + pushd $out + find . -name "*.cf" -exec \ + sed 's/[0-9]*\.000" /19700101000001.000" /g' -i {} \; + popd + ''; + + meta = { + homepage = "http://sourceforge.net/p/ghdl-updates/wiki/Home/"; + description = "Free VHDL simulator, mcode flavour"; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; linux; + license = "GPLv2+"; + }; +} |