diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix index 1694e3e48509..cd47883001bf 100644 --- a/pkgs/development/interpreters/luajit/default.nix +++ b/pkgs/development/interpreters/luajit/default.nix @@ -1,41 +1,67 @@ { stdenv, fetchurl }: +rec { -stdenv.mkDerivation rec { - name = "luajit-${version}"; - version = "2.1.0-beta3"; - luaversion = "5.1"; + luajit = luajit_2_1; - src = fetchurl { - url = "http://luajit.org/download/LuaJIT-${version}.tar.gz"; + luajit_2_0 = generic { + version = "2.0.5"; + isStable = true; + sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7"; + }; + + luajit_2_1 = generic { + version = "2.1.0-beta3"; + isStable = false; sha256 = "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs"; }; - enableParallelBuilding = true; - patchPhase = '' - substituteInPlace Makefile \ - --replace /usr/local $out + generic = + { version, sha256 ? null, isStable + , name ? "luajit-${version}" + , src ? + (fetchurl { + url = "http://luajit.org/download/LuaJIT-${version}.tar.gz"; + inherit sha256; + }) + }: - 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 - ''; + stdenv.mkDerivation rec { + inherit name version src; - configurePhase = false; - buildFlags = [ "amalg" ]; # Build highly optimized version - installPhase = '' - make install INSTALL_INC=$out/include PREFIX=$out - ln -s $out/bin/luajit* $out/bin/lua - ln -s $out/bin/luajit* $out/bin/luajit - ''; + luaversion = "5.1"; - meta = with stdenv.lib; { - description = "High-performance JIT compiler for Lua 5.1"; - homepage = http://luajit.org; - license = licenses.mit; - platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers ; [ thoughtpolice smironov ]; - }; + 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 = '' + make install INSTALL_INC="$out"/include PREFIX="$out" + ln -s "$out"/bin/luajit-* "$out"/bin/lua + '' + + stdenv.lib.optionalString (!isStable) + '' + ln -s "$out"/bin/luajit-* "$out"/bin/luajit + ''; + + meta = with stdenv.lib; { + description = "High-performance JIT compiler for Lua 5.1"; + homepage = http://luajit.org; + license = licenses.mit; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers ; [ thoughtpolice smironov vcunat ]; + }; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 61406ae271d7..68d08ec660a1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6117,7 +6117,8 @@ with pkgs; luaPackages = lua52Packages; - luajit = callPackage ../development/interpreters/luajit {}; + inherit (callPackages ../development/interpreters/luajit {}) + luajit luajit_2_0 luajit_2_1; luarocks = luaPackages.luarocks;