commit 7193f06810da939f0f2c80eb800cd78965787f22
parent 170881fba73c75207c75d0e614da2bc28b206892
Author: Tomas Hlavaty <tom@logand.com>
Date: Sun, 5 Jul 2015 14:17:39 +0200
nix build
Diffstat:
3 files changed, 75 insertions(+), 0 deletions(-)
diff --git a/default.nix b/default.nix
@@ -0,0 +1,61 @@
+{stdenv, fetchgit, sbcl, ccl, ecl, mkcl, lisptype, demo}:
+
+stdenv.mkDerivation rec {
+ name = "cl-rw-demo-${demo}-${lisptype}";
+
+ src = fetchgit {
+ url = http://logand.com/git/cl-rw.git;
+ rev = "ec5632cbea261e4fba765d9811b365b3efcb5bde";
+ sha256 = "03w7rah4bkzqw2m47jrb0nhwcsk3qq90nqd193b7qbcdwjkr6l4b";
+ };
+
+ buildInputs = [sbcl ccl ecl mkcl];
+
+ buildPhase = ''
+ export ASDF_OUTPUT_TRANSLATIONS=/:$(pwd)/cache/:
+ ''
+ + (if "sbcl" == "${lisptype}" then ''
+ sbcl \
+ --lose-on-corruption \
+ --disable-ldb \
+ --disable-debugger \
+ --no-sysinit \
+ --no-userinit \
+ --load "${sbcl}/lib/sbcl/contrib/asdf" \
+ --eval '(push (truename "./") asdf:*central-registry*)' \
+ --eval '(require :cl-rw-demo-${demo})' \
+ --eval '(rw.demo.${demo}::save-image)'
+ '' else "")
+ + (if "ccl" == "${lisptype}" then ''
+ lx86cl64 -K utf-8 -n \
+ -l "${ccl}/share/ccl-installation/tools/asdf" \
+ -e '(push (truename "./") asdf:*central-registry*)' \
+ -e '(require :cl-rw-demo-${demo})' \
+ -e '(rw.demo.${demo}::save-image)'
+ '' else "")
+ + (if "ecl" == "${lisptype}" then ''
+ find ${ecl}
+ ecl \
+ -norc \
+ -load "${ccl}/share/ccl-installation/tools/asdf" \
+ -eval '(push (truename "./") asdf:*central-registry*)' \
+ -eval '(require :cl-rw-demo-${demo})' \
+ -eval '(rw.demo.${demo}::save-image)'
+ '' else "")
+ + (if "mkcl" == "${lisptype}" then ''
+ mkcl \
+ -norc \
+ -load "${ccl}/share/ccl-installation/tools/asdf" \
+ -eval '(push (truename "./") asdf:*central-registry*)' \
+ -eval '(require :cl-rw-demo-${demo})' \
+ -eval '(rw.demo.${demo}::save-image)'
+ '' else "");
+
+ dontPatchELF = true;
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp cl-rw-demo-${demo} $out/bin/${name}
+ '';
+}
diff --git a/release.nix b/release.nix
@@ -0,0 +1,13 @@
+let
+ pkgs = import <nixpkgs> {};
+ demo = demo: lisptype: pkgs.callPackage ./. {demo = demo; lisptype = lisptype;};
+in {
+ cl-rw-demo-counter-sbcl = demo "counter" "sbcl";
+ cl-rw-demo-counter-ccl = demo "counter" "ccl";
+ #cl-rw-demo-counter-ecl = demo "counter" "ecl";
+ #cl-rw-demo-counter-mkcl = demo "counter" "mkcl";
+ cl-rw-demo-zappel-sbcl = demo "zappel" "sbcl";
+ cl-rw-demo-zappel-ccl = demo "zappel" "ccl";
+ #cl-rw-demo-zappel-ecl = demo "zappel" "ecl";
+ #cl-rw-demo-zappel-mkcl = demo "zappel" "mkcl";
+}
diff --git a/shell.nix b/shell.nix
@@ -0,0 +1 @@
+(import <nixpkgs> {}).callPackage ./. {demo = "counter"; lisptype = "sbcl";}