lua: choice between 5.1.x & 5.2.x
authorFrancois Perrad <fperrad@gmail.com>
Fri, 17 Jan 2014 17:47:35 +0000 (18:47 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 21 Jan 2014 22:27:13 +0000 (23:27 +0100)
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
15 files changed:
package/lua/5.1.5/lua-01-root-path.patch [new file with mode: 0644]
package/lua/5.1.5/lua-02-shared-libs-for-lua.patch [new file with mode: 0644]
package/lua/5.1.5/lua-11-linenoise.patch [new file with mode: 0644]
package/lua/5.2.3/lua-01-root-path.patch [new file with mode: 0644]
package/lua/5.2.3/lua-02-shared-libs-for-lua.patch [new file with mode: 0644]
package/lua/5.2.3/lua-04-lua-pc.patch [new file with mode: 0644]
package/lua/5.2.3/lua-11-linenoise.patch [new file with mode: 0644]
package/lua/Config.in
package/lua/lua-01-root-path.patch [deleted file]
package/lua/lua-02-shared-libs-for-lua.patch [deleted file]
package/lua/lua-11-linenoise.patch [deleted file]
package/lua/lua.mk
package/luainterpreter/Config.in
package/luainterpreter/luainterpreter.mk
package/luajit/Config.in

diff --git a/package/lua/5.1.5/lua-01-root-path.patch b/package/lua/5.1.5/lua-01-root-path.patch
new file mode 100644 (file)
index 0000000..fd0da6e
--- /dev/null
@@ -0,0 +1,30 @@
+Adjust installation location to /usr.
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/etc/lua.pc
+===================================================================
+--- a/etc/lua.pc
++++ b/etc/lua.pc
+@@ -8,7 +8,7 @@
+ R= 5.1.5
+ # grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
+-prefix= /usr/local
++prefix= /usr
+ INSTALL_BIN= ${prefix}/bin
+ INSTALL_INC= ${prefix}/include
+ INSTALL_LIB= ${prefix}/lib
+Index: b/src/luaconf.h
+===================================================================
+--- a/src/luaconf.h
++++ b/src/luaconf.h
+@@ -94,7 +94,7 @@
+       ".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
+ #else
+-#define LUA_ROOT      "/usr/local/"
++#define LUA_ROOT      "/usr/"
+ #define LUA_LDIR      LUA_ROOT "share/lua/5.1/"
+ #define LUA_CDIR      LUA_ROOT "lib/lua/5.1/"
+ #define LUA_PATH_DEFAULT  \
diff --git a/package/lua/5.1.5/lua-02-shared-libs-for-lua.patch b/package/lua/5.1.5/lua-02-shared-libs-for-lua.patch
new file mode 100644 (file)
index 0000000..97a7068
--- /dev/null
@@ -0,0 +1,49 @@
+Add the compilation of a shared library.
+Compile the lua binary with the shared library.
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/src/Makefile
+===================================================================
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -23,6 +23,7 @@
+ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+ LUA_A=        liblua.a
++LUA_SO=       liblua.so
+ CORE_O=       lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
+       lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o  \
+       lundump.o lvm.o lzio.o
+@@ -36,8 +37,9 @@
+ LUAC_O=       luac.o print.o
+ ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
+-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
++ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T)
+ ALL_A= $(LUA_A)
++ALL_SO= $(LUA_SO)
+ default: $(PLAT)
+@@ -47,12 +49,18 @@
+ a:    $(ALL_A)
++so:   $(ALL_SO)
++
+ $(LUA_A): $(CORE_O) $(LIB_O)
+       $(AR) $@ $(CORE_O) $(LIB_O)     # DLL needs all object files
+       $(RANLIB) $@
+-$(LUA_T): $(LUA_O) $(LUA_A)
+-      $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
++$(LUA_SO): $(CORE_O) $(LIB_O)
++      $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $?
++      ln -fs $@.$(PKG_VERSION) $@
++
++$(LUA_T): $(LUA_O) $(LUA_SO)
++      $(CC) -o $@ -L. $(MYLDFLAGS) $(LUA_O) -llua $(LIBS)
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
+       $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
diff --git a/package/lua/5.1.5/lua-11-linenoise.patch b/package/lua/5.1.5/lua-11-linenoise.patch
new file mode 100644 (file)
index 0000000..488c080
--- /dev/null
@@ -0,0 +1,24 @@
+Add support of linenoise (replace readline)
+
+see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/src/luaconf.h
+===================================================================
+--- a/src/luaconf.h
++++ b/src/luaconf.h
+@@ -279,6 +279,13 @@
+       if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
+         add_history(lua_tostring(L, idx));  /* add it to history */
+ #define lua_freeline(L,b)     ((void)L, free(b))
++#elif defined(LUA_USE_LINENOISE)
++#include <linenoise.h>
++#define lua_readline(L,b,p)   ((void)L, ((b)=linenoise(p)) != NULL)
++#define lua_saveline(L,idx) \
++      if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
++        linenoiseHistoryAdd(lua_tostring(L, idx));  /* add it to history */
++#define lua_freeline(L,b)     ((void)L, free(b))
+ #else
+ #define lua_readline(L,b,p)   \
+       ((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \
diff --git a/package/lua/5.2.3/lua-01-root-path.patch b/package/lua/5.2.3/lua-01-root-path.patch
new file mode 100644 (file)
index 0000000..c6f242c
--- /dev/null
@@ -0,0 +1,17 @@
+Adjust installation location to /usr.
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/src/luaconf.h
+===================================================================
+--- a/src/luaconf.h
++++ b/src/luaconf.h
+@@ -100,7 +100,7 @@
+ #else                 /* }{ */
+ #define LUA_VDIR      LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/"
+-#define LUA_ROOT      "/usr/local/"
++#define LUA_ROOT      "/usr/"
+ #define LUA_LDIR      LUA_ROOT "share/lua/" LUA_VDIR
+ #define LUA_CDIR      LUA_ROOT "lib/lua/" LUA_VDIR
+ #define LUA_PATH_DEFAULT  \
diff --git a/package/lua/5.2.3/lua-02-shared-libs-for-lua.patch b/package/lua/5.2.3/lua-02-shared-libs-for-lua.patch
new file mode 100644 (file)
index 0000000..4679325
--- /dev/null
@@ -0,0 +1,49 @@
+Add the compilation of a shared library.
+Compile the lua binary with the shared library.
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/src/Makefile
+===================================================================
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -29,6 +29,7 @@
+ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+ LUA_A=        liblua.a
++LUA_SO=       liblua.so
+ CORE_O=       lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
+       lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
+       ltm.o lundump.o lvm.o lzio.o
+@@ -43,8 +44,9 @@
+ LUAC_O=       luac.o
+ ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
+-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
++ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T)
+ ALL_A= $(LUA_A)
++ALL_SO= $(LUA_SO)
+ # Targets start here.
+ default: $(PLAT)
+@@ -55,12 +57,18 @@
+ a:    $(ALL_A)
++so:   $(ALL_SO)
++
+ $(LUA_A): $(BASE_O)
+       $(AR) $@ $(BASE_O)
+       $(RANLIB) $@
+-$(LUA_T): $(LUA_O) $(LUA_A)
+-      $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
++$(LUA_SO): $(CORE_O) $(LIB_O)
++      $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $?
++      ln -fs $@.$(PKG_VERSION) $@
++
++$(LUA_T): $(LUA_O) $(LUA_SO)
++      $(CC) -o $@ -L. $(LDFLAGS) $(LUA_O) -llua $(LIBS)
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
+       $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
diff --git a/package/lua/5.2.3/lua-04-lua-pc.patch b/package/lua/5.2.3/lua-04-lua-pc.patch
new file mode 100644 (file)
index 0000000..62acb20
--- /dev/null
@@ -0,0 +1,40 @@
+add lua.pc
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/etc/lua.pc
+===================================================================
+--- /dev/null
++++ b/etc/lua.pc
+@@ -0,0 +1,31 @@
++# lua.pc -- pkg-config data for Lua
++
++# vars from install Makefile
++
++# grep '^V=' ../Makefile
++V= 5.2
++# grep '^R=' ../Makefile
++R= 5.2.3
++
++# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
++prefix= /usr
++INSTALL_BIN= ${prefix}/bin
++INSTALL_INC= ${prefix}/include
++INSTALL_LIB= ${prefix}/lib
++INSTALL_MAN= ${prefix}/man/man1
++INSTALL_LMOD= ${prefix}/share/lua/${V}
++INSTALL_CMOD= ${prefix}/lib/lua/${V}
++
++# canonical vars
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: Lua
++Description: An Extensible Extension Language
++Version: ${R}
++Requires: 
++Libs: -L${libdir} -llua -lm
++Cflags: -I${includedir}
++
++# (end of lua.pc)
diff --git a/package/lua/5.2.3/lua-11-linenoise.patch b/package/lua/5.2.3/lua-11-linenoise.patch
new file mode 100644 (file)
index 0000000..b1f228c
--- /dev/null
@@ -0,0 +1,26 @@
+Add support of linenoise (replace readline)
+
+see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/src/lua.c
+===================================================================
+--- a/src/lua.c
++++ b/src/lua.c
+@@ -72,6 +72,15 @@
+           add_history(lua_tostring(L, idx));  /* add it to history */
+ #define lua_freeline(L,b)     ((void)L, free(b))
++#elif defined(LUA_USE_LINENOISE)
++
++#include <linenoise.h>
++#define lua_readline(L,b,p)   ((void)L, ((b)=linenoise(p)) != NULL)
++#define lua_saveline(L,idx) \
++      if (lua_rawlen(L,idx) > 0)  /* non-empty line? */ \
++        linenoiseHistoryAdd(lua_tostring(L, idx));  /* add it to history */
++#define lua_freeline(L,b)     ((void)L, free(b))
++
+ #elif !defined(lua_readline)
+ #define lua_readline(L,b,p) \
index b96ef0e92e51de0747da6667315afb973c411b6a..c4c12e96634b790859c0ebcb46fd2972e46b004a 100644 (file)
@@ -11,6 +11,24 @@ if BR2_PACKAGE_LUA
 config BR2_PACKAGE_PROVIDES_LUA_INTERPRETER
        default "lua"
 
+choice
+       prompt "Lua Version"
+       default BR2_PACKAGE_LUA_5_1
+       help
+         Select the version of Lua API/ABI you wish to use.
+
+       config BR2_PACKAGE_LUA_5_1
+               bool "Lua 5.1.x"
+
+       config BR2_PACKAGE_LUA_5_2
+               bool "Lua 5.2.x"
+
+endchoice
+
+config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION
+       default "5.1"   if BR2_PACKAGE_LUA_5_1
+       default "5.2"   if BR2_PACKAGE_LUA_5_2
+
 choice
        prompt "Lua Interpreter command-line editing"
        default BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE
diff --git a/package/lua/lua-01-root-path.patch b/package/lua/lua-01-root-path.patch
deleted file mode 100644 (file)
index fd0da6e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Adjust installation location to /usr.
-
-Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
-
-Index: b/etc/lua.pc
-===================================================================
---- a/etc/lua.pc
-+++ b/etc/lua.pc
-@@ -8,7 +8,7 @@
- R= 5.1.5
- # grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
--prefix= /usr/local
-+prefix= /usr
- INSTALL_BIN= ${prefix}/bin
- INSTALL_INC= ${prefix}/include
- INSTALL_LIB= ${prefix}/lib
-Index: b/src/luaconf.h
-===================================================================
---- a/src/luaconf.h
-+++ b/src/luaconf.h
-@@ -94,7 +94,7 @@
-       ".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
- #else
--#define LUA_ROOT      "/usr/local/"
-+#define LUA_ROOT      "/usr/"
- #define LUA_LDIR      LUA_ROOT "share/lua/5.1/"
- #define LUA_CDIR      LUA_ROOT "lib/lua/5.1/"
- #define LUA_PATH_DEFAULT  \
diff --git a/package/lua/lua-02-shared-libs-for-lua.patch b/package/lua/lua-02-shared-libs-for-lua.patch
deleted file mode 100644 (file)
index 97a7068..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-Add the compilation of a shared library.
-Compile the lua binary with the shared library.
-
-Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
-
-Index: b/src/Makefile
-===================================================================
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -23,6 +23,7 @@
- PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
- LUA_A=        liblua.a
-+LUA_SO=       liblua.so
- CORE_O=       lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
-       lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o  \
-       lundump.o lvm.o lzio.o
-@@ -36,8 +37,9 @@
- LUAC_O=       luac.o print.o
- ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
--ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
-+ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T)
- ALL_A= $(LUA_A)
-+ALL_SO= $(LUA_SO)
- default: $(PLAT)
-@@ -47,12 +49,18 @@
- a:    $(ALL_A)
-+so:   $(ALL_SO)
-+
- $(LUA_A): $(CORE_O) $(LIB_O)
-       $(AR) $@ $(CORE_O) $(LIB_O)     # DLL needs all object files
-       $(RANLIB) $@
--$(LUA_T): $(LUA_O) $(LUA_A)
--      $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
-+$(LUA_SO): $(CORE_O) $(LIB_O)
-+      $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $?
-+      ln -fs $@.$(PKG_VERSION) $@
-+
-+$(LUA_T): $(LUA_O) $(LUA_SO)
-+      $(CC) -o $@ -L. $(MYLDFLAGS) $(LUA_O) -llua $(LIBS)
- $(LUAC_T): $(LUAC_O) $(LUA_A)
-       $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
diff --git a/package/lua/lua-11-linenoise.patch b/package/lua/lua-11-linenoise.patch
deleted file mode 100644 (file)
index 488c080..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Add support of linenoise (replace readline)
-
-see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html
-
-Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
-
-Index: b/src/luaconf.h
-===================================================================
---- a/src/luaconf.h
-+++ b/src/luaconf.h
-@@ -279,6 +279,13 @@
-       if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
-         add_history(lua_tostring(L, idx));  /* add it to history */
- #define lua_freeline(L,b)     ((void)L, free(b))
-+#elif defined(LUA_USE_LINENOISE)
-+#include <linenoise.h>
-+#define lua_readline(L,b,p)   ((void)L, ((b)=linenoise(p)) != NULL)
-+#define lua_saveline(L,idx) \
-+      if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
-+        linenoiseHistoryAdd(lua_tostring(L, idx));  /* add it to history */
-+#define lua_freeline(L,b)     ((void)L, free(b))
- #else
- #define lua_readline(L,b,p)   \
-       ((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \
index a88a11ec9d2db91a7fe5fba7cbb1ec40a8790724..2c867f6e1e842c905dd5af556a56abd3e65d9558 100644 (file)
@@ -4,7 +4,11 @@
 #
 ################################################################################
 
+ifeq ($(BR2_PACKAGE_LUA_5_2),y)
+LUA_VERSION = 5.2.3
+else
 LUA_VERSION = 5.1.5
+endif
 LUA_SITE = http://www.lua.org/ftp
 LUA_INSTALL_STAGING = YES
 LUA_LICENSE = MIT
@@ -13,6 +17,13 @@ LUA_LICENSE_FILES = COPYRIGHT
 LUA_CFLAGS = -Wall -fPIC
 LUA_MYLIBS += -ldl
 
+ifeq ($(BR2_PACKAGE_LUA_5_2),y)
+LUA_CFLAGS += -DLUA_COMPAT_ALL
+ifneq ($(BR2_LARGEFILE),y)
+LUA_CFLAGS += -D_FILE_OFFSET_BITS=32
+endif
+endif
+
 ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_READLINE),y)
        LUA_DEPENDENCIES = readline ncurses
        LUA_MYLIBS += -lreadline -lhistory -lncurses
@@ -33,6 +44,10 @@ HOST_LUA_DEPENDENCIES =
 HOST_LUA_CFLAGS = -Wall -fPIC -DLUA_USE_DLOPEN -DLUA_USE_POSIX
 HOST_LUA_MYLIBS = -ldl
 
+ifeq ($(BR2_PACKAGE_LUA_5_2),y)
+HOST_LUA_CFLAGS += -DLUA_COMPAT_ALL
+endif
+
 define LUA_BUILD_CMDS
        $(MAKE) \
        CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" \
@@ -70,7 +85,8 @@ define LUA_INSTALL_TARGET_CMDS
        $(INSTALL) -m 0755 -D $(@D)/src/liblua.so.$(LUA_VERSION) \
                $(TARGET_DIR)/usr/lib/liblua.so.$(LUA_VERSION)
        ln -sf liblua.so.$(LUA_VERSION) $(TARGET_DIR)/usr/lib/liblua.so
-       $(INSTALL) -m 0644 -D $(@D)/src/liblua.a $(TARGET_DIR)/usr/lib/liblua.a
+       mkdir -p $(TARGET_DIR)/usr/lib/lua/$(LUAINTERPRETER_ABIVER)
+       mkdir -p $(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)
 endef
 
 define HOST_LUA_INSTALL_CMDS
index 15621452decf1c11ffcf829a1a4af9e6de07f3ea..a05bde1db3b47aa2532066423a65d0e2d3b88060 100644 (file)
@@ -4,3 +4,6 @@ config BR2_PACKAGE_HAS_LUA_INTERPRETER
 config BR2_PACKAGE_PROVIDES_LUA_INTERPRETER
        string
        depends on BR2_PACKAGE_HAS_LUA_INTERPRETER
+
+config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION
+       string
index 04d63d4712a219f2a604313696de37c96ec58c3b..c37d621b71e978a8ca4e08ec39279e6adb30132a 100644 (file)
@@ -7,4 +7,6 @@
 LUAINTERPRETER_SOURCE =
 LUAINTERPRETER_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LUA_INTERPRETER))
 
+LUAINTERPRETER_ABIVER = $(call qstrip,$(BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION))
+
 $(eval $(generic-package))
index e0bfbf5505faa9e94fa6af8834fb62862f902a5f..9c4ecc36cda96f8a04ae66ec4bbd5f39e195d583 100644 (file)
@@ -17,4 +17,7 @@ if BR2_PACKAGE_LUAJIT
 config BR2_PACKAGE_PROVIDES_LUA_INTERPRETER
        default "luajit"
 
+config BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION
+       default "5.1"
+
 endif