1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 autoreconfHook,
6 mlton,
7}:
8
9stdenv.mkDerivation rec {
10 pname = "mlkit";
11 version = "4.7.14";
12
13 src = fetchFromGitHub {
14 owner = "melsman";
15 repo = "mlkit";
16 rev = "v${version}";
17 sha256 = "sha256-0nAQHBcQgGdcWd4SFhDon7I0zi5U+YRTdGvG78tri6A=";
18 };
19
20 nativeBuildInputs = [
21 autoreconfHook
22 mlton
23 ];
24
25 buildFlags = [
26 "mlkit"
27 "mlkit_libs"
28 ];
29
30 doCheck = true;
31
32 # MLKit intentionally has some of these in its test suite.
33 # Since the test suite is available in `$out/share/mlkit/test`, we must disable this check.
34 dontCheckForBrokenSymlinks = true;
35
36 checkPhase = ''
37 runHook preCheck
38 echo ==== Running MLKit test suite: test ====
39 make -C test_dev test
40 echo ==== Running MLKit test suite: test_prof ====
41 make -C test_dev test_prof
42 runHook postCheck
43 '';
44
45 meta = {
46 description = "Standard ML Compiler and Toolkit";
47 homepage = "https://elsman.com/mlkit/";
48 changelog = "https://github.com/melsman/mlkit/blob/v${version}/NEWS.md";
49 license = lib.licenses.gpl2Plus;
50 platforms = lib.platforms.unix;
51 maintainers = with lib.maintainers; [ athas ];
52 };
53}