about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/interpreters/s9fes/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters/s9fes/default.nix')
-rw-r--r--nixpkgs/pkgs/development/interpreters/s9fes/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/s9fes/default.nix b/nixpkgs/pkgs/development/interpreters/s9fes/default.nix
new file mode 100644
index 000000000000..a05dde8f1f51
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/s9fes/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl, ncurses, buildPackages }:
+
+let
+  isCrossCompiling = stdenv.hostPlatform != stdenv.buildPlatform;
+in
+
+stdenv.mkDerivation rec {
+  pname = "s9fes";
+  version = "20181205";
+
+  src = fetchurl {
+    url = "https://www.t3x.org/s9fes/s9fes-${version}.tgz";
+    sha256 = "sha256-Lp/akaDy3q4FmIE6x0fj9ae/SOD7tdsmzy2xdcCh13o=";
+  };
+
+  # Fix cross-compilation
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace 'ar q' '${stdenv.cc.targetPrefix}ar q' \
+      --replace 'strip' '${stdenv.cc.targetPrefix}strip'
+    ${lib.optionalString isCrossCompiling "substituteInPlace Makefile --replace ./s9 '${buildPackages.s9fes}/bin/s9'"}
+  '';
+
+  buildInputs = [ ncurses ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=$(out)" ];
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Scheme 9 From Empty Space, an interpreter for R4RS Scheme";
+    homepage = "http://www.t3x.org/s9fes/index.html";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ siraben ];
+    platforms = platforms.unix;
+  };
+}