2018-07-21 02:44:44 +02:00
|
|
|
{ stdenv, lib, fetchurl }:
|
2017-07-07 10:44:33 +02:00
|
|
|
rec {
|
2013-11-15 17:20:29 +01:00
|
|
|
|
2017-07-10 14:07:54 +02:00
|
|
|
luajit = luajit_2_1;
|
2013-11-15 17:20:29 +01:00
|
|
|
|
2017-07-07 10:44:33 +02:00
|
|
|
luajit_2_0 = generic {
|
|
|
|
version = "2.0.5";
|
|
|
|
isStable = true;
|
|
|
|
sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7";
|
2018-06-09 02:10:22 +02:00
|
|
|
meta = genericMeta // {
|
|
|
|
platforms = lib.filter (p: p != "aarch64-linux") genericMeta.platforms;
|
2017-07-10 14:07:54 +02:00
|
|
|
};
|
2014-04-09 04:15:55 +02:00
|
|
|
};
|
2013-11-15 17:20:29 +01:00
|
|
|
|
2017-07-07 10:44:33 +02:00
|
|
|
luajit_2_1 = generic {
|
|
|
|
version = "2.1.0-beta3";
|
|
|
|
isStable = false;
|
|
|
|
sha256 = "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs";
|
2014-04-09 04:15:55 +02:00
|
|
|
};
|
2017-07-07 10:44:33 +02:00
|
|
|
|
2018-06-09 02:10:22 +02:00
|
|
|
genericMeta = with stdenv.lib; {
|
2017-07-10 14:07:54 +02:00
|
|
|
description = "High-performance JIT compiler for Lua 5.1";
|
|
|
|
homepage = http://luajit.org;
|
|
|
|
license = licenses.mit;
|
|
|
|
platforms = platforms.linux ++ platforms.darwin;
|
2018-06-09 02:10:22 +02:00
|
|
|
maintainers = with maintainers; [ thoughtpolice smironov vcunat andir ];
|
2017-07-10 14:07:54 +02:00
|
|
|
};
|
|
|
|
|
2017-07-07 10:44:33 +02:00
|
|
|
generic =
|
|
|
|
{ version, sha256 ? null, isStable
|
|
|
|
, name ? "luajit-${version}"
|
|
|
|
, src ?
|
|
|
|
(fetchurl {
|
|
|
|
url = "http://luajit.org/download/LuaJIT-${version}.tar.gz";
|
|
|
|
inherit sha256;
|
|
|
|
})
|
2018-06-09 02:10:22 +02:00
|
|
|
, meta ? genericMeta
|
2017-07-07 10:44:33 +02:00
|
|
|
}:
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
2017-07-10 14:07:54 +02:00
|
|
|
inherit name version src meta;
|
2017-07-07 10:44:33 +02:00
|
|
|
|
|
|
|
luaversion = "5.1";
|
|
|
|
|
|
|
|
patchPhase = ''
|
|
|
|
substituteInPlace Makefile \
|
|
|
|
--replace /usr/local "$out"
|
|
|
|
|
|
|
|
substituteInPlace src/Makefile --replace gcc cc
|
|
|
|
'' + stdenv.lib.optionalString (stdenv.cc.libc != null)
|
|
|
|
''
|
|
|
|
substituteInPlace Makefile \
|
|
|
|
--replace ldconfig ${stdenv.cc.libc.bin or stdenv.cc.libc}/bin/ldconfig
|
|
|
|
'';
|
|
|
|
|
|
|
|
configurePhase = false;
|
|
|
|
|
|
|
|
buildFlags = [ "amalg" ]; # Build highly optimized version
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
|
|
|
installPhase = ''
|
2017-10-25 23:56:41 +02:00
|
|
|
make install PREFIX="$out"
|
2017-11-27 17:13:26 +01:00
|
|
|
( cd "$out/include"; ln -s luajit-*/* . )
|
2017-07-07 10:44:33 +02:00
|
|
|
ln -s "$out"/bin/luajit-* "$out"/bin/lua
|
|
|
|
''
|
|
|
|
+ stdenv.lib.optionalString (!isStable)
|
|
|
|
''
|
|
|
|
ln -s "$out"/bin/luajit-* "$out"/bin/luajit
|
|
|
|
'';
|
|
|
|
};
|
2013-11-15 17:20:29 +01:00
|
|
|
}
|