75 lines
1.7 KiB
Nix
75 lines
1.7 KiB
Nix
|
{stdenv, fetchFromGitHub
|
||
|
, llvmPackages
|
||
|
, cmake, boehmgc, gmp, zlib, ncurses, boost
|
||
|
, waf, python, git, sbcl
|
||
|
}:
|
||
|
stdenv.mkDerivation rec {
|
||
|
name = "${pname}-${version}";
|
||
|
pname = "clasp";
|
||
|
version = "0.4.99.20170801";
|
||
|
|
||
|
src = fetchFromGitHub {
|
||
|
owner = "drmeister";
|
||
|
repo = "clasp";
|
||
|
rev = "525ce1cffff39311e3e7df6d0b71fa267779bdf5";
|
||
|
sha256 = "1jqya04wybgxnski341p5sycy2gysxad0s5q8d59z0f6ckj3v8k1";
|
||
|
fetchSubmodules = true;
|
||
|
};
|
||
|
|
||
|
nativeBuildInputs = [ cmake python git sbcl ];
|
||
|
|
||
|
buildInputs = with llvmPackages; (
|
||
|
builtins.map (x: stdenv.lib.overrideDerivation x
|
||
|
(x: {NIX_CFLAGS_COMPILE= (x.NIX_CFLAGS_COMPILE or "") + " -frtti"; }))
|
||
|
[ llvm clang clang-unwrapped clang ]) ++
|
||
|
[
|
||
|
gmp zlib ncurses
|
||
|
boost boehmgc
|
||
|
(boost.override {enableStatic = true; enableShared = false;})
|
||
|
(stdenv.lib.overrideDerivation boehmgc
|
||
|
(x: {configureFlags = (x.configureFlags or []) ++ ["--enable-static"];}))
|
||
|
];
|
||
|
|
||
|
NIX_CFLAGS_COMPILE = " -frtti ";
|
||
|
|
||
|
configurePhase = ''
|
||
|
runHook preConfigure
|
||
|
|
||
|
export CXX=clang++
|
||
|
export CC=clang
|
||
|
|
||
|
echo "
|
||
|
INSTALL_PATH_PREFIX = '$out'
|
||
|
" | sed -e 's/^ *//' > wscript.config
|
||
|
|
||
|
python ./waf configure update_submodules
|
||
|
|
||
|
runHook postConfigure
|
||
|
'';
|
||
|
|
||
|
buildPhase = ''
|
||
|
runHook preBuild
|
||
|
|
||
|
python ./waf build_cboehm
|
||
|
|
||
|
runHook postBuild
|
||
|
'';
|
||
|
|
||
|
installPhase = ''
|
||
|
runHook preInstall
|
||
|
|
||
|
python ./waf install_cboehm
|
||
|
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
|
||
|
meta = {
|
||
|
inherit version;
|
||
|
description = ''A Common Lisp implementation based on LLVM with C++ integration'';
|
||
|
license = stdenv.lib.licenses.lgpl21Plus ;
|
||
|
maintainers = [stdenv.lib.maintainers.raskin];
|
||
|
platforms = stdenv.lib.platforms.linux;
|
||
|
homepage = "https://github.com/drmeister/clasp";
|
||
|
};
|
||
|
}
|