diff options
author | Karn Kallio <kkallio@skami.org> | 2014-05-14 15:15:34 -0430 |
---|---|---|
committer | Peter Simons <simons@cryp.to> | 2014-05-14 22:44:38 +0200 |
commit | 432998852c1e6cc6719c08e14a5dbf1cd842aa43 (patch) | |
tree | 965617090b504120a6684520af9960d8e35017ac /pkgs/development/compilers/mercury | |
parent | b11c9c582b5cddddda51406ce4915f720bc68184 (diff) |
Add the Mercury compiler to nixpkgs.
Diffstat (limited to 'pkgs/development/compilers/mercury')
-rw-r--r-- | pkgs/development/compilers/mercury/default.nix | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/pkgs/development/compilers/mercury/default.nix b/pkgs/development/compilers/mercury/default.nix new file mode 100644 index 000000000000..5ea922a371a7 --- /dev/null +++ b/pkgs/development/compilers/mercury/default.nix @@ -0,0 +1,62 @@ +{ stdenv, fetchurl, gcc, flex, bison, texinfo, jdk, erlang, makeWrapper +, readline }: + +stdenv.mkDerivation rec { + name = "mercury-${version}"; + version = "14.01"; + + src = fetchurl { + url = "http://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.gz"; + sha256 = "1hgwmsaacxhgx2p2hikl5px8xf0wny9wx47gjl258dgxxasbfij4"; + }; + + buildInputs = [ gcc flex bison texinfo jdk erlang makeWrapper + readline ]; + + patchPhase = '' + # Fix calls to programs in /bin + for p in uname pwd ; do + for f in $(egrep -lr /bin/$p *) ; do + sed -i 's@/bin/'$p'@'$p'@g' $f ; + done + done + ''; + + preConfigure = '' + ensureDir $out/lib/mercury/cgi-bin ; + configureFlags="--enable-deep-profiler=$out/lib/mercury/cgi-bin"; + ''; + + preBuild = '' + # Mercury buildsystem does not take -jN directly. + makeFlags="PARALLEL=-j$NIX_BUILD_CORES" ; + ''; + + postInstall = '' + # Wrap with compilers for the different targets. + for e in $(ls $out/bin) ; do + wrapProgram $out/bin/$e \ + --prefix PATH ":" "${gcc}/bin" \ + --prefix PATH ":" "${jdk}/bin" \ + --prefix PATH ":" "${erlang}/bin" + done + ''; + + meta = { + description = "Mercury is a pure logic programming language."; + longDescription = '' + Mercury is a logic/functional programming language which combines the + clarity and expressiveness of declarative programming with advanced + static analysis and error detection features. Its highly optimized + execution algorithm delivers efficiency far in excess of existing logic + programming systems, and close to conventional programming systems. + Mercury addresses the problems of large-scale program development, + allowing modularity, separate compilation, and numerous optimization/time + trade-offs. + ''; + homepage = "http://mercurylang.org"; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = [ ]; + }; +} |