From patchwork Tue Jan 14 13:14:56 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francois Perrad X-Patchwork-Id: 310726 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id B07BA2C007A for ; Wed, 15 Jan 2014 00:15:17 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 7BE3A8B8C6; Tue, 14 Jan 2014 13:15:16 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N6diV48aMdgd; Tue, 14 Jan 2014 13:15:14 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id E7DC38B817; Tue, 14 Jan 2014 13:15:13 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 58E851BF994 for ; Tue, 14 Jan 2014 13:15:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 4E0838C00E for ; Tue, 14 Jan 2014 13:15:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ST5hocjqO1s7 for ; Tue, 14 Jan 2014 13:15:10 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by whitealder.osuosl.org (Postfix) with ESMTPS id AAFA68B4A2 for ; Tue, 14 Jan 2014 13:15:09 +0000 (UTC) Received: by mail-wi0-f171.google.com with SMTP id cc10so2536902wib.4 for ; Tue, 14 Jan 2014 05:15:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=olqKY6fE+3WT/2Q/WcQRNJIjgOw51s1cTie6FvtSE3s=; b=fhrlNDDmRlhMpZIydoZ6kEfm0D18bfHv0SZeoOjbM5P+MoHmjbP70GoGRdDPdNb5s7 I0kn1h8xAtZrM1KJe7YLoFPehKJQ+uVeSNEB2vIMfOdL4PeNrr26zmCm69oRi0FqVy0g l3Z3s3Wxs23pc9RVJ0uoxwyPlXQCyepoYwFxISbWLfV5av8MA//hiL0anVorU9eZ5pye m64KQmgphsFl11oTLO4KdqCOF23liZz42AqW6ioElzJvzDJWDaMZ9g8h4iuq8/O/VqDy VDoEh9rZjRJ6NOVevh5LnjR3Nn2Pu6xEf7wC0v1EDwgQpoUK4jvcnlXlRtcDRzlpb9w+ sX9w== X-Received: by 10.180.94.7 with SMTP id cy7mr20251566wib.21.1389705308229; Tue, 14 Jan 2014 05:15:08 -0800 (PST) Received: from ubuntu.localdomain (94.166.87.79.rev.sfr.net. [79.87.166.94]) by mx.google.com with ESMTPSA id gz5sm1406803wib.10.2014.01.14.05.15.06 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 14 Jan 2014 05:15:07 -0800 (PST) From: Francois Perrad To: buildroot@busybox.net Date: Tue, 14 Jan 2014 14:14:56 +0100 Message-Id: <1389705298-27263-2-git-send-email-francois.perrad@gadz.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1389705298-27263-1-git-send-email-francois.perrad@gadz.org> References: <1389705298-27263-1-git-send-email-francois.perrad@gadz.org> Subject: [Buildroot] [PATCH 1/3] lua: choice between 5.1.x & 5.2.x X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net Signed-off-by: Francois Perrad --- package/lua/{ => 5.1.5}/lua-01-root-path.patch | 0 .../{ => 5.1.5}/lua-02-shared-libs-for-lua.patch | 0 package/lua/{ => 5.1.5}/lua-11-linenoise.patch | 0 package/lua/5.2.3/lua-01-root-path.patch | 17 +++++++ package/lua/5.2.3/lua-02-shared-libs-for-lua.patch | 49 ++++++++++++++++++++ package/lua/5.2.3/lua-04-lua-pc.patch | 40 ++++++++++++++++ package/lua/5.2.3/lua-11-linenoise.patch | 26 +++++++++++ package/lua/Config.in | 14 ++++++ package/lua/lua.mk | 18 ++++++- package/luainterpreter/Config.in | 10 ++++ 10 files changed, 172 insertions(+), 2 deletions(-) rename package/lua/{ => 5.1.5}/lua-01-root-path.patch (100%) rename package/lua/{ => 5.1.5}/lua-02-shared-libs-for-lua.patch (100%) rename package/lua/{ => 5.1.5}/lua-11-linenoise.patch (100%) create mode 100644 package/lua/5.2.3/lua-01-root-path.patch create mode 100644 package/lua/5.2.3/lua-02-shared-libs-for-lua.patch create mode 100644 package/lua/5.2.3/lua-04-lua-pc.patch create mode 100644 package/lua/5.2.3/lua-11-linenoise.patch diff --git a/package/lua/lua-01-root-path.patch b/package/lua/5.1.5/lua-01-root-path.patch similarity index 100% rename from package/lua/lua-01-root-path.patch rename to package/lua/5.1.5/lua-01-root-path.patch diff --git a/package/lua/lua-02-shared-libs-for-lua.patch b/package/lua/5.1.5/lua-02-shared-libs-for-lua.patch similarity index 100% rename from package/lua/lua-02-shared-libs-for-lua.patch rename to package/lua/5.1.5/lua-02-shared-libs-for-lua.patch diff --git a/package/lua/lua-11-linenoise.patch b/package/lua/5.1.5/lua-11-linenoise.patch similarity index 100% rename from package/lua/lua-11-linenoise.patch rename to package/lua/5.1.5/lua-11-linenoise.patch 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 index 0000000..c6f242c --- /dev/null +++ b/package/lua/5.2.3/lua-01-root-path.patch @@ -0,0 +1,17 @@ +Adjust installation location to /usr. + +Signed-off-by: Francois Perrad + +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 index 0000000..4679325 --- /dev/null +++ b/package/lua/5.2.3/lua-02-shared-libs-for-lua.patch @@ -0,0 +1,49 @@ +Add the compilation of a shared library. +Compile the lua binary with the shared library. + +Signed-off-by: Francois Perrad + +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 index 0000000..62acb20 --- /dev/null +++ b/package/lua/5.2.3/lua-04-lua-pc.patch @@ -0,0 +1,40 @@ +add lua.pc + +Signed-off-by: Francois Perrad + +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 index 0000000..b1f228c --- /dev/null +++ b/package/lua/5.2.3/lua-11-linenoise.patch @@ -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 + +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 ++#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) \ diff --git a/package/lua/Config.in b/package/lua/Config.in index b96ef0e..9b8b6f1 100644 --- a/package/lua/Config.in +++ b/package/lua/Config.in @@ -12,6 +12,20 @@ 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 + +choice prompt "Lua Interpreter command-line editing" default BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE diff --git a/package/lua/lua.mk b/package/lua/lua.mk index a88a11e..97e5ea8 100644 --- a/package/lua/lua.mk +++ b/package/lua/lua.mk @@ -4,7 +4,12 @@ # ################################################################################ +LUA_ABIVER = $(call qstrip,$(BR2_PACKAGE_LUA_VERSION)) +ifeq ($(LUA_ABIVER),5.1) LUA_VERSION = 5.1.5 +else +LUA_VERSION = 5.2.3 +endif LUA_SITE = http://www.lua.org/ftp LUA_INSTALL_STAGING = YES LUA_LICENSE = MIT @@ -13,6 +18,14 @@ LUA_LICENSE_FILES = COPYRIGHT LUA_CFLAGS = -Wall -fPIC LUA_MYLIBS += -ldl +ifneq ($(BR2_LARGEFILE),y) +LUA_CFLAGS += -D_FILE_OFFSET_BITS=32 +endif + +ifeq ($(LUA_ABIVER),5.2) +LUA_CFLAGS += -DLUA_COMPAT_ALL +endif + ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_READLINE),y) LUA_DEPENDENCIES = readline ncurses LUA_MYLIBS += -lreadline -lhistory -lncurses @@ -30,7 +43,7 @@ endif # We never want to have host-readline and host-ncurses as dependencies # of host-lua. HOST_LUA_DEPENDENCIES = -HOST_LUA_CFLAGS = -Wall -fPIC -DLUA_USE_DLOPEN -DLUA_USE_POSIX +HOST_LUA_CFLAGS = -Wall -fPIC -DLUA_USE_DLOPEN -DLUA_USE_POSIX -DLUA_COMPAT_ALL HOST_LUA_MYLIBS = -ldl define LUA_BUILD_CMDS @@ -70,7 +83,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/$(LUA_ABIVER) + mkdir -p $(TARGET_DIR)/usr/share/lua/$(LUA_ABIVER) endef define HOST_LUA_INSTALL_CMDS diff --git a/package/luainterpreter/Config.in b/package/luainterpreter/Config.in index 1562145..3bc257e 100644 --- a/package/luainterpreter/Config.in +++ b/package/luainterpreter/Config.in @@ -4,3 +4,13 @@ config BR2_PACKAGE_HAS_LUA_INTERPRETER config BR2_PACKAGE_PROVIDES_LUA_INTERPRETER string depends on BR2_PACKAGE_HAS_LUA_INTERPRETER + +config BR2_PACKAGE_LUA_VERSION + string + default "5.1" if BR2_PACKAGE_LUA_5_1 || BR2_PACKAGE_LUAJIT + default "5.2" if BR2_PACKAGE_LUA_5_2 + +config BR2_PACKAGE_LUA_VERSION_NUM + int + default 501 if BR2_PACKAGE_LUA_5_1 || BR2_PACKAGE_LUAJIT + default 502 if BR2_PACKAGE_LUA_5_2