Hi List,

the attached patch adds LuaJIT 1 & 2.
it needs more work about platforms (OS & cpu)

1) for LuaJIT 2
    assert x86 or x64
2) for LuaJIT 1
   assert x86
3) for LuaJIT 1 & Lua 5
replace
   buildFlags = "linux"; # TODO: support for non-linux systems
by something like:
   buildFlags = if linux then "linux"
               else if freebsd then "freebsd"
               else if (openbsd || netbsd) then "bsd"
               else if darwin then "macosx"
               else if cygwin then "posix"
               else "generic"


François
From b2f4b743a6cb618242efd4fcbf5dcbcdbeb51bc9 Mon Sep 17 00:00:00 2001
From: fperrad <[email protected]>
Date: Wed, 31 Mar 2010 16:20:41 +0200
Subject: [PATCH 1/2] add LuaJIT

---
 pkgs/development/interpreters/luajit/1.nix         |   26 ++++++++++++++
 pkgs/development/interpreters/luajit/2.nix         |   21 ++++++++++++
 .../interpreters/luajit/install-beta.patch         |   35 ++++++++++++++++++++
 pkgs/development/interpreters/luajit/prefix.patch  |   13 +++++++
 pkgs/top-level/all-packages.nix                    |    8 ++++
 5 files changed, 103 insertions(+), 0 deletions(-)
 create mode 100644 pkgs/development/interpreters/luajit/1.nix
 create mode 100644 pkgs/development/interpreters/luajit/2.nix
 create mode 100644 pkgs/development/interpreters/luajit/install-beta.patch
 create mode 100644 pkgs/development/interpreters/luajit/prefix.patch

diff --git a/pkgs/development/interpreters/luajit/1.nix b/pkgs/development/interpreters/luajit/1.nix
new file mode 100644
index 0000000..040da26
--- /dev/null
+++ b/pkgs/development/interpreters/luajit/1.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, ncurses, readline}:
+
+stdenv.mkDerivation {
+  name = "luajit-1.1.6";
+
+  # assert x86
+
+  src = fetchurl {
+    url = http://luajit.org/download/LuaJIT-1.1.6.tar.gz;
+    md5 = "945b99728ee935294d5b45660dd045fe";
+  };
+  buildFlags = "linux"; # TODO: support for non-linux systems
+  installFlags = "install INSTALL_TOP=\${out}";
+  buildInputs = [ ncurses readline ];
+
+  meta = {
+    description = "LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.";
+    longDescription = ''
+      LuaJIT is based on the Lua 5.1.x virtual machine and bytecode
+      interpreter from lua.org. It compiles bytecode to native x86 (i386+)
+      machine code to speed up the execution of Lua programs.
+    '';
+    homepage = http://www.luajit.org/;
+    license = "MIT";
+  };
+}
diff --git a/pkgs/development/interpreters/luajit/2.nix b/pkgs/development/interpreters/luajit/2.nix
new file mode 100644
index 0000000..aa0a6d5
--- /dev/null
+++ b/pkgs/development/interpreters/luajit/2.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, ncurses, readline}:
+
+stdenv.mkDerivation {
+  name = "luajit-2.0.0-beta4";
+
+  # assert x86 or x64
+
+  src = fetchurl {
+    url = http://luajit.org/download/LuaJIT-2.0.0-beta4.tar.gz;
+    md5 = "5c5a9305b3e06765e1dae138e1a95c3a";
+  };
+  patches = [ ./prefix.patch ./install-beta.patch ];
+  installFlags = "install DESTDIR=\${out}";
+  buildInputs = [ ncurses readline ];
+
+  meta = {
+    description = "LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.";
+    homepage = http://www.luajit.org/;
+    license = "MIT";
+  };
+}
diff --git a/pkgs/development/interpreters/luajit/install-beta.patch b/pkgs/development/interpreters/luajit/install-beta.patch
new file mode 100644
index 0000000..59ab190
--- /dev/null
+++ b/pkgs/development/interpreters/luajit/install-beta.patch
@@ -0,0 +1,35 @@
+diff --git a/Makefile b/Makefile
+index a4a356e..19b9ad9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -40,8 +40,7 @@ INSTALL_CMOD= $(INSTALL_LIB)/lua/$(ABIVER)
+ INSTALL_MAN= $(INSTALL_SHARE)/man/man1
+ INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
+ 
+-INSTALL_TNAME= luajit-$(VERSION)
+-INSTALL_TSYMNAME= luajit
++INSTALL_TNAME= luajit
+ INSTALL_ANAME= libluajit-$(ABIVER).a
+ INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER)
+ INSTALL_SOSHORT= libluajit-$(ABIVER).so
+@@ -55,7 +54,6 @@ INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
+ INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
+ INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
+ INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
+-INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
+ INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
+ 
+ INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
+@@ -113,12 +111,6 @@ install: $(INSTALL_DEP)
+ 	cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
+ 	cd lib && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
+ 	@echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
+-	@echo ""
+-	@echo "Note: the beta releases deliberately do NOT install a symlink for luajit"
+-	@echo "You can do this now by running this command (with sudo):"
+-	@echo ""
+-	@echo "  $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)"
+-	@echo ""
+ 
+ ##############################################################################
+ 
diff --git a/pkgs/development/interpreters/luajit/prefix.patch b/pkgs/development/interpreters/luajit/prefix.patch
new file mode 100644
index 0000000..604e885
--- /dev/null
+++ b/pkgs/development/interpreters/luajit/prefix.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index a4a356e..7c2e662 100644
+--- a/Makefile
++++ b/Makefile
+@@ -25,7 +25,7 @@ NODOTABIVER=  51
+ # Change the installation path as needed and modify src/luaconf.h accordingly.
+ # Note: PREFIX must be an absolute path!
+ #
+-export PREFIX= /usr/local
++export PREFIX=
+ ##############################################################################
+ 
+ DPREFIX= $(DESTDIR)$(PREFIX)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 69d38ae..70e4ffb 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2590,6 +2590,14 @@ let
     inherit fetchurl stdenv ncurses readline;
   };
 
+  luajit = import ../development/interpreters/luajit/1.nix {
+    inherit fetchurl stdenv ncurses readline;
+  };
+
+  luajit2 = import ../development/interpreters/luajit/2.nix {
+    inherit fetchurl stdenv ncurses readline;
+  };
+
   maude = import ../development/interpreters/maude {
     inherit fetchurl stdenv flex bison ncurses buddy tecla gmpxx libsigsegv makeWrapper;
   };
-- 
1.6.3.3

_______________________________________________
nix-dev mailing list
[email protected]
https://mail.cs.uu.nl/mailman/listinfo/nix-dev

Reply via email to