summary refs log tree commit diff
path: root/pkgs/development/interpreters/lua-5
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2015-06-02 20:31:34 +0300
committerMichael Raskin <7c6f434c@mail.ru>2015-06-02 20:32:12 +0300
commite66294151a69921e3ce38267ebae3c33121e20ae (patch)
treefdcf03bb1cb2492a309bf8b74ebf2f4452e63ef5 /pkgs/development/interpreters/lua-5
parent8daf4f5445133e097f3a08c14a3e551ba45db1bd (diff)
downloadnixpkgs-e66294151a69921e3ce38267ebae3c33121e20ae.tar
nixpkgs-e66294151a69921e3ce38267ebae3c33121e20ae.tar.gz
nixpkgs-e66294151a69921e3ce38267ebae3c33121e20ae.tar.bz2
nixpkgs-e66294151a69921e3ce38267ebae3c33121e20ae.tar.lz
nixpkgs-e66294151a69921e3ce38267ebae3c33121e20ae.tar.xz
nixpkgs-e66294151a69921e3ce38267ebae3c33121e20ae.tar.zst
nixpkgs-e66294151a69921e3ce38267ebae3c33121e20ae.zip
Adding Lua 5.3, seems to work
Diffstat (limited to 'pkgs/development/interpreters/lua-5')
-rw-r--r--pkgs/development/interpreters/lua-5/5.3.nix102
-rw-r--r--pkgs/development/interpreters/lua-5/lua-5.3-dso.make8
2 files changed, 110 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/lua-5/5.3.nix b/pkgs/development/interpreters/lua-5/5.3.nix
new file mode 100644
index 00000000000..faa4b7694ee
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/5.3.nix
@@ -0,0 +1,102 @@
+{ stdenv, fetchurl, readline, compat ? false }:
+
+stdenv.mkDerivation rec {
+  name = "lua-${version}";
+  luaversion = "5.3";
+  version = "${luaversion}.0";
+
+  src = fetchurl {
+    url = "http://www.lua.org/ftp/${name}.tar.gz";
+    sha1 = "1c46d1c78c44039939e820126b86a6ae12dadfba";
+  };
+
+  nativeBuildInputs = [ readline ];
+
+  patches = if stdenv.isDarwin then [ ./5.2.darwin.patch ] else [];
+
+  configurePhase =
+    if stdenv.isDarwin
+    then ''
+    makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=macosx CFLAGS="-DLUA_USE_LINUX -fno-common -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDFLAGS="-fPIC" V=${luaversion} R=${version} )
+    installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.${version}.dylib" INSTALL_DATA='cp -d' )
+  '' else ''
+    makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-DLUA_USE_LINUX -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDFLAGS="-fPIC" V=${luaversion} R=${version})
+    installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.${luaversion} liblua.so.${version}" INSTALL_DATA='cp -d' )
+    cat ${./lua-5.3-dso.make} >> src/Makefile
+    sed -e 's/ALL_T *= */& $(LUA_SO)/' -i src/Makefile
+  '';
+
+  postBuild = stdenv.lib.optionalString (! stdenv.isDarwin) ''
+    ( cd src; make liblua.so "''${makeFlagsArray[@]}" )
+  '';
+
+  postInstall = ''
+    mkdir -p "$out/share/doc/lua" "$out/lib/pkgconfig"
+    mv "doc/"*.{gif,png,css,html} "$out/share/doc/lua/"
+    rmdir $out/{share,lib}/lua/${luaversion} $out/{share,lib}/lua
+    mkdir -p "$out/lib/pkgconfig"
+    cat >"$out/lib/pkgconfig/lua.pc" <<EOF
+    prefix=$out
+    libdir=$out/lib
+    includedir=$out/include
+    INSTALL_BIN=$out/bin
+    INSTALL_INC=$out/include
+    INSTALL_LIB=$out/lib
+    INSTALL_MAN=$out/man/man1
+
+    Name: Lua
+    Description: An Extensible Extension Language
+    Version: ${version}
+    Requires:
+    Libs: -L$out/lib -llua -lm
+    Cflags: -I$out/include
+    EOF
+  '';
+
+  crossAttrs = let
+    isMingw = stdenv.cross.libc == "msvcrt";
+    isDarwin = stdenv.cross.libc == "libSystem";
+  in {
+    configurePhase = ''
+      makeFlagsArray=(
+        INSTALL_TOP=$out
+        INSTALL_MAN=$out/share/man/man1
+        CC=${stdenv.cross.config}-gcc
+        STRIP=:
+        RANLIB=${stdenv.cross.config}-ranlib
+        V=${luaversion}
+        R=${version}
+        ${if isMingw then "mingw" else stdenv.lib.optionalString isDarwin ''
+        AR="${stdenv.cross.config}-ar rcu"
+        macosx
+        ''}
+      )
+    '' + stdenv.lib.optionalString isMingw ''
+      installFlagsArray=(
+        TO_BIN="lua.exe luac.exe"
+        TO_LIB="liblua.a lua52.dll"
+        INSTALL_DATA="cp -d"
+      )
+    '';
+  } // stdenv.lib.optionalAttrs isDarwin {
+    postPatch = ''
+      sed -i -e 's/-Wl,-soname[^ ]* *//' src/Makefile
+    '';
+  };
+
+  meta = {
+    homepage = "http://www.lua.org";
+    description = "Powerful, fast, lightweight, embeddable scripting language";
+    longDescription = ''
+      Lua combines simple procedural syntax with powerful data
+      description constructs based on associative arrays and extensible
+      semantics. Lua is dynamically typed, runs by interpreting bytecode
+      for a register-based virtual machine, and has automatic memory
+      management with incremental garbage collection, making it ideal
+      for configuration, scripting, and rapid prototyping.
+    '';
+    license = stdenv.lib.licenses.mit;
+    hydraPlatforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/development/interpreters/lua-5/lua-5.3-dso.make b/pkgs/development/interpreters/lua-5/lua-5.3-dso.make
new file mode 100644
index 00000000000..c70dbc4f9cc
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/lua-5.3-dso.make
@@ -0,0 +1,8 @@
+
+LUA_SO=liblua.so
+
+$(LUA_SO): $(CORE_O) $(LIB_O)
+	$(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS)
+	ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
+	ln -sf $(LUA_SO).$(R) $(LUA_SO)
+