diff --git a/pkgs/development/compilers/ccl/default.nix b/pkgs/development/compilers/ccl/default.nix index 3522e234fa2..30eb528cab7 100644 --- a/pkgs/development/compilers/ccl/default.nix +++ b/pkgs/development/compilers/ccl/default.nix @@ -1,23 +1,48 @@ { stdenv, fetchsvn, gcc, glibc, m4, coreutils }: /* TODO: there are also MacOS, FreeBSD and Windows versions */ -assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux"; +assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux" + || stdenv.system == "armv7l-linux" || stdenv.system == "armv6l-linux"; +let + options = rec { + x86_64-linux = { + arch = "linuxx86"; + sha256 = "04p77n18cw0bc8i66mp2vfrhlliahrx66lm004a3nw3h0mdk0gd8"; + runtime = "lx86cl64"; + kernel = "linuxx8664"; + }; + i686-linux = { + arch = "linuxx86"; + sha256 = x86_64-linux.sha256; + runtime = "lx86cl"; + kernel = "linuxx8632"; + }; + armv7l-linux = { + arch = "linuxarm"; + sha256 = "0xg9p1q1fpgyfhwjk2hh24vqzddzx5zqff04lycf0vml5qw1gnkv"; + runtime = "armcl"; + kernel = "linuxarm"; + }; + armv6l-linux = armv7l-linux; + }; + cfg = options.${stdenv.system}; +in stdenv.mkDerivation rec { name = "ccl-${version}"; version = "1.10"; revision = "16313"; src = fetchsvn { - url = http://svn.clozure.com/publicsvn/openmcl/release/1.10/linuxx86/ccl; + url = "http://svn.clozure.com/publicsvn/openmcl/release/${version}/${cfg.arch}/ccl"; rev = revision; - sha256 = "04p77n18cw0bc8i66mp2vfrhlliahrx66lm004a3nw3h0mdk0gd8"; + sha256 = cfg.sha256; }; buildInputs = [ gcc glibc m4 ]; - CCL_RUNTIME = if stdenv.system == "x86_64-linux" then "lx86cl64" else "lx86cl"; - CCL_KERNEL = if stdenv.system == "x86_64-linux" then "linuxx8664" else "linuxx8632"; + CCL_RUNTIME = cfg.runtime; + CCL_KERNEL = cfg.kernel; patchPhase = '' substituteInPlace lisp-kernel/${CCL_KERNEL}/Makefile \