clasp-common-lisp: update/fix build, 2018-11-28 prerelease (towards 0.9)

This commit is contained in:
Michael Raskin 2019-01-11 16:29:19 +01:00
parent 11cd6aeb0c
commit eb5d51d4cf
2 changed files with 95 additions and 15 deletions

View File

@ -1,54 +1,131 @@
{ stdenv, fetchFromGitHub { stdenv, fetchFromGitHub, fetchFromGitLab
, llvmPackages , llvmPackages
, cmake, boehmgc, gmp, zlib, ncurses, boost , cmake, boehmgc, gmp, zlib, ncurses, boost, libelf
, python, git, sbcl , python, git, sbcl
, wafHook , wafHook
}: }:
let
sicl = fetchFromGitHub {
owner = "Bike";
repo = "SICL";
rev = "78052fb5f02a3814eb7295f3dcac09f21f98702b";
sha256 = "0wnmp40310ls6q9gkr5ysfkj2qirq26ljjicnkqifc53mm0ghz4i";
};
cst = fetchFromGitHub {
owner = "robert-strandh";
repo = "Concrete-Syntax-Tree";
rev = "8d8c5abf8f1690cb2b765241d81c2eb86d60d77e";
sha256 = "1rs8a5nbfffdyli126sccd0z1a8h5axp222b4pgwvgfxsb9w7g3s";
};
c2mop = fetchFromGitHub {
owner = "pcostanza";
repo = "closer-mop";
rev = "d4d1c7aa6aba9b4ac8b7bb78ff4902a52126633f";
sha256 = "1amcv0f3vbsq0aqhai7ki5bi367giway1pbfxyc47r7q3hq5hw3c";
};
acclimation = fetchFromGitHub {
owner = "robert-strandh";
repo = "Acclimation";
rev = "dd15c86b0866fc5d8b474be0da15c58a3c04c45c";
sha256 = "0ql224qs3zgflvdhfbca621v3byhhqfb71kzy70bslyczxv1bsh2";
};
eclector = fetchFromGitHub {
owner = "robert-strandh";
repo = "Eclector";
rev = "287ce817c0478668bd389051d2cc6b26ddc62ec9";
sha256 = "0v7mgkq49ddyx5vvsradcp772y5l7cv9xrll3280hyginpm8w6q3";
};
alexandria = fetchFromGitHub {
owner = "clasp-developers";
repo = "alexandria";
rev = "e5c54bc30b0887c237bde2827036d17315f88737";
sha256 = "14h7a9fwimiw9gqxjm2h47d95bfhrm7b81f6si7x8vy18d78fn4g";
};
mps = fetchFromGitHub {
owner = "Ravenbrook";
repo = "mps";
rev = "b8a05a3846430bc36c8200f24d248c8293801503";
sha256 = "1q2xqdw832jrp0w9yhgr8xihria01j4z132ac16lr9ssqznkprv6";
};
asdf = fetchFromGitLab {
domain = "gitlab.common-lisp.net";
owner = "asdf";
repo = "asdf";
rev = "3.3.1.2";
sha256 = "0ljr2vc0cb2wrijcyjmp9hcaj2bdhh05ci3zf4f43hdq6i2fgg6g";
};
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "clasp"; pname = "clasp";
version = "0.4.99.20170801"; version = "0.8.99.20181128";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "drmeister"; owner = "drmeister";
repo = "clasp"; repo = "clasp";
rev = "525ce1cffff39311e3e7df6d0b71fa267779bdf5"; rev = "2f2b52ccb750048460562b5987a7eaf7a1aa4445";
sha256 = "1jqya04wybgxnski341p5sycy2gysxad0s5q8d59z0f6ckj3v8k1"; sha256 = "0ra55vdnk59lygwzlxr5cg16vb9c45fmg59wahaxclwm461w7fwz";
fetchSubmodules = true; fetchSubmodules = true;
}; };
nativeBuildInputs = [ cmake python git sbcl wafHook ]; nativeBuildInputs = [ cmake python git sbcl wafHook ] ++
(with llvmPackages; [ llvm clang ]);
buildInputs = with llvmPackages; ( buildInputs = with llvmPackages;
builtins.map (x: stdenv.lib.overrideDerivation x (
(x: {NIX_CFLAGS_COMPILE= (x.NIX_CFLAGS_COMPILE or "") + " -frtti"; })) builtins.map (x: stdenv.lib.overrideDerivation x
[ llvm clang clang-unwrapped clang ]) ++ (x: {NIX_CFLAGS_COMPILE= (x.NIX_CFLAGS_COMPILE or "") + " -frtti"; }))
[ llvm clang clang-unwrapped clang ]) ++
[ [
gmp zlib ncurses gmp zlib ncurses
boost boehmgc boost boehmgc libelf
(boost.override {enableStatic = true; enableShared = false;}) (boost.override {enableStatic = true; enableShared = false;})
(stdenv.lib.overrideDerivation boehmgc (stdenv.lib.overrideDerivation boehmgc
(x: {configureFlags = (x.configureFlags or []) ++ ["--enable-static"];})) (x: {configureFlags = (x.configureFlags or []) ++ ["--enable-static"];}))
]; ];
NIX_CFLAGS_COMPILE = " -frtti "; NIX_CXXSTDLIB_COMPILE = " -frtti ";
postPatch = '' postPatch = ''
echo " echo "
INSTALL_PATH_PREFIX = '$out' PREFIX = '$out'
" | sed -e 's/^ *//' > wscript.config " | sed -e 's/^ *//' > wscript.config
mkdir -p src/lisp/kernel/contrib/sicl
mkdir -p src/lisp/kernel/contrib/Concrete-Syntax-Tree
mkdir -p src/lisp/kernel/contrib/closer-mop
mkdir -p src/lisp/kernel/contrib/Acclimation
mkdir -p src/lisp/kernel/contrib/Eclector
mkdir -p src/lisp/kernel/contrib/alexandria
mkdir -p src/mps
mkdir -p src/lisp/modules/asdf
cp -rfT "${sicl}" src/lisp/kernel/contrib/sicl
cp -rfT "${cst}" src/lisp/kernel/contrib/Concrete-Syntax-Tree
cp -rfT "${c2mop}" src/lisp/kernel/contrib/closer-mop
cp -rfT "${acclimation}" src/lisp/kernel/contrib/Acclimation
cp -rfT "${eclector}" src/lisp/kernel/contrib/Eclector
cp -rfT "${alexandria}" src/lisp/kernel/contrib/alexandria
cp -rfT "${mps}" src/mps
cp -rfT "${asdf}" src/lisp/modules/asdf
chmod -R u+rwX src
( cd src/lisp/modules/asdf; make )
''; '';
buildTargets = "build_cboehm"; buildTargets = "build_cboehm";
installTargets = "install_cboehm"; installTargets = "install_cboehm";
CLASP_SRC_DONTTOUCH = "true";
meta = { meta = {
inherit version; inherit version;
description = ''A Common Lisp implementation based on LLVM with C++ integration''; description = ''A Common Lisp implementation based on LLVM with C++ integration'';
license = stdenv.lib.licenses.lgpl21Plus ; license = stdenv.lib.licenses.lgpl21Plus ;
maintainers = [stdenv.lib.maintainers.raskin]; maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
# Large, long to build, a private build of clang is needed, a prerelease.
hydraPlatforms = [];
homepage = "https://github.com/drmeister/clasp"; homepage = "https://github.com/drmeister/clasp";
broken = true; # 2018-09-08, no successful build since 2018-01-03
}; };
} }

View File

@ -6670,7 +6670,10 @@ in
clang-sierraHack-stdenv = overrideCC stdenv clang-sierraHack; clang-sierraHack-stdenv = overrideCC stdenv clang-sierraHack;
libcxxStdenv = if stdenv.isDarwin then stdenv else lowPrio llvmPackages.libcxxStdenv; libcxxStdenv = if stdenv.isDarwin then stdenv else lowPrio llvmPackages.libcxxStdenv;
clasp-common-lisp = callPackage ../development/compilers/clasp {}; clasp-common-lisp = callPackage ../development/compilers/clasp {
llvmPackages = llvmPackages_6;
stdenv = llvmPackages_6.stdenv;
};
clean = callPackage ../development/compilers/clean { }; clean = callPackage ../development/compilers/clean { };