luajit: fix cross-compilation, partially

Also clean the expression a bit.
This commit is contained in:
Vladimír Čunát 2019-02-21 10:35:42 +01:00
parent 147a685948
commit 5ddfa4183a
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA

View file

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl
{ stdenv, lib, fetchurl, buildPackages
, name ? "luajit-${version}"
, isStable
, sha256
@ -20,24 +20,23 @@ stdenv.mkDerivation rec {
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
postPatch = ''
substituteInPlace Makefile --replace ldconfig :
'';
configurePhase = false;
makeFlags = [
"PREFIX=$(out)"
"DEFAULT_CC=cc"
"CROSS=${stdenv.cc.targetPrefix}"
# TODO: when pointer size differs, we would need e.g. -m32
"HOST_CC=${buildPackages.stdenv.cc}/bin/cc"
];
buildFlags = [ "amalg" ]; # Build highly optimized version
enableParallelBuilding = true;
installPhase = ''
make install PREFIX="$out"
postInstall = ''
( cd "$out/include"; ln -s luajit-*/* . )
ln -s "$out"/bin/luajit-* "$out"/bin/lua
''