diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix index 8b5d14e7f5f..390d37dd245 100644 --- a/pkgs/development/compilers/polyml/default.nix +++ b/pkgs/development/compilers/polyml/default.nix @@ -1,33 +1,38 @@ -{stdenv, fetchurl, autoreconfHook}: +{ stdenv, fetchFromGitHub, autoreconfHook, gmp, libffi }: -let - version = "5.6"; -in - -stdenv.mkDerivation { +stdenv.mkDerivation rec { name = "polyml-${version}"; + version = "5.7"; prePatch = stdenv.lib.optionalString stdenv.isDarwin '' substituteInPlace configure.ac --replace stdc++ c++ ''; - buildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook; + buildInputs = [ libffi gmp ]; - src = fetchurl { - url = "mirror://sourceforge/polyml/polyml.${version}.tar.gz"; - sha256 = "05d6l2a5m9jf32a8kahwg2p2ph4x9rjf1nsl83331q3gwn5bkmr0"; + nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook; + + configureFlags = [ + "--enable-shared" + "--with-system-libffi" + "--with-gmp" + ]; + + src = fetchFromGitHub { + owner = "polyml"; + repo = "polyml"; + rev = "v${version}"; + sha256 = "10nsljmcl0zjbcc7ifc991ypwfwq5gh4rcp5rg4nnb706c6bs16y"; }; - meta = { + meta = with stdenv.lib; { description = "Standard ML compiler and interpreter"; longDescription = '' Poly/ML is a full implementation of Standard ML. ''; homepage = http://www.polyml.org/; - license = stdenv.lib.licenses.lgpl21; - platforms = with stdenv.lib.platforms; linux; - maintainers = [ #Add your name here! - stdenv.lib.maintainers.z77z - ]; + license = licenses.lgpl21; + platforms = with platforms; (linux ++ darwin); + maintainers = with maintainers; [ z77z yurrriq ]; }; }