summary refs log tree commit diff
path: root/pkgs/development/interpreters/luajit/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/luajit/default.nix')
-rw-r--r--pkgs/development/interpreters/luajit/default.nix121
1 files changed, 62 insertions, 59 deletions
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index 9ee628f498e..c95b9e8b8e3 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -1,71 +1,74 @@
-{ stdenv, lib, fetchurl }:
-rec {
+{ stdenv, lib, fetchurl
+, name ? "luajit-${version}"
+, isStable
+, sha256
+, version
+, extraMeta ? {}
+, callPackage
+, self
+, packageOverrides ? (self: super: {})
+}:
+let
+  luaPackages = callPackage ../../lua-modules {lua=self; overrides=packageOverrides;};
+in
+stdenv.mkDerivation rec {
+  inherit name version;
+  src = fetchurl {
+    url = "http://luajit.org/download/LuaJIT-${version}.tar.gz";
+    inherit sha256;
+  };
 
-  luajit = luajit_2_1;
+  luaversion = "5.1";
 
-  luajit_2_0 = generic {
-    version = "2.0.5";
-    isStable = true;
-    sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7";
-    meta = genericMeta // {
-      platforms = lib.filter (p: p != "aarch64-linux") genericMeta.platforms;
-    };
-  };
+  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;
 
-  luajit_2_1 = generic {
-    version = "2.1.0-beta3";
-    isStable = false;
-    sha256 = "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs";
+  buildFlags = [ "amalg" ]; # Build highly optimized version
+  enableParallelBuilding = true;
+
+  installPhase   = ''
+      make install PREFIX="$out"
+      ( cd "$out/include"; ln -s luajit-*/* . )
+      ln -s "$out"/bin/luajit-* "$out"/bin/lua
+    ''
+    + stdenv.lib.optionalString (!isStable) ''
+      ln -s "$out"/bin/luajit-* "$out"/bin/luajit
+    '';
+
+  LuaPathSearchPaths = [
+    "lib/lua/${luaversion}/?.lua" "share/lua/${luaversion}/?.lua"
+    "share/lua/${luaversion}/?/init.lua" "lib/lua/${luaversion}/?/init.lua"
+    "share/${name}/?.lua"
+  ];
+  LuaCPathSearchPaths = [ "lib/lua/${luaversion}/?.so" "share/lua/${luaversion}/?.so" ];
+  setupHook = luaPackages.lua-setup-hook LuaPathSearchPaths LuaCPathSearchPaths;
+
+  passthru = rec {
+    buildEnv = callPackage ../lua-5/wrapper.nix {
+      lua = self;
+      inherit (luaPackages) requiredLuaModules;
+    };
+    withPackages = import ../lua-5/with-packages.nix { inherit buildEnv luaPackages;};
+    pkgs = luaPackages;
+    interpreter = "${self}/bin/lua";
   };
 
-  genericMeta = with stdenv.lib; {
+  meta = with stdenv.lib; extraMeta // {
     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 andir ];
   };
-
-  generic =
-    { version, sha256 ? null, isStable
-    , name ? "luajit-${version}"
-    , src ?
-      (fetchurl {
-        url = "http://luajit.org/download/LuaJIT-${version}.tar.gz";
-        inherit sha256;
-      })
-    , meta ? genericMeta
-    }:
-
-    stdenv.mkDerivation rec {
-      inherit name version src meta;
-
-      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   = ''
-        make install PREFIX="$out"
-        ( cd "$out/include"; ln -s luajit-*/* . )
-        ln -s "$out"/bin/luajit-* "$out"/bin/lua
-      ''
-        + stdenv.lib.optionalString (!isStable)
-          ''
-            ln -s "$out"/bin/luajit-* "$out"/bin/luajit
-          '';
-    };
 }
+