[Buildroot] [v2] luajit: complete replacement for lua

François Perrad francois.perrad at gadz.org
Sat Dec 15 09:32:46 UTC 2012


2012/12/13 Arnout Vandecappelle <arnout at mind.be>:
>  Hi Francois,
>
>
> On 06/12/12 09:44, Francois Perrad wrote:
>>
>> the mutual exclusion is done by a choice
>>
>> Signed-off-by: Francois Perrad<francois.perrad at gadz.org>
>>
>> see initial discussion,
>> http://article.gmane.org/gmane.comp.lib.uclibc.buildroot/43499
>>
>> ---
>>   Makefile                                         |    6 ++++++
>>   package/Config.in                                |    1 -
>>   package/copas/copas.mk                           |    2 +-
>>   package/coxpcall/coxpcall.mk                     |    1 -
>>   package/lua-msgpack-native/lua-msgpack-native.mk |    2 +-
>>   package/lua/Config.in                            |   25
>> ++++++++++++++++++++++
>>   package/luacjson/luacjson.mk                     |    2 +-
>>   package/luaexpat/luaexpat.mk                     |    2 +-
>>   package/luafilesystem/luafilesystem.mk           |    2 +-
>>   package/luajit/Config.in                         |   12 -----------
>>   package/luajit/luajit-05-install-like-lua.patch  |   17 +++++++++++++++
>>   package/luasocket/luasocket.mk                   |    2 +-
>>   package/rings/rings.mk                           |    2 +-
>>   package/xavante/xavante.mk                       |    2 +-
>>   14 files changed, 56 insertions(+), 22 deletions(-)
>>   delete mode 100644 package/luajit/Config.in
>>   create mode 100644 package/luajit/luajit-05-install-like-lua.patch
>>
>> diff --git a/Makefile b/Makefile
>> index 4b09437..b5215e0 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -282,6 +282,12 @@ HOSTCC  := $(CCACHE) $(HOSTCC)
>>   HOSTCXX := $(CCACHE) $(HOSTCXX)
>>   endif
>>
>> +ifeq ($(BR2_PACKAGE_LUA),y)
>> +    LUA_INTERPRETER = lua
>> +else ifeq ($(BR2_PACKAGE_LUAJIT),y)
>> +    LUA_INTERPRETER = luajit
>> +endif
>> +
>
>
>  Minor detail: I think this fits better in package/Makefile.in.

Ok.

>
>
>>   #############################################################
>>   #
>>   # You should probably leave this stuff alone unless you know
>> diff --git a/package/Config.in b/package/Config.in
>> index 74e439e..e6e294e 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -271,7 +271,6 @@ source "package/erlang/Config.in"
>>   source "package/haserl/Config.in"
>>   source "package/jamvm/Config.in"
>>   source "package/lua/Config.in"
>> -source "package/luajit/Config.in"
>>   if BR2_PACKAGE_LUA || BR2_PACKAGE_LUAJIT
>>   menu "LUA libraries/modules"
>>   source "package/cgilua/Config.in"
>> diff --git a/package/copas/copas.mk b/package/copas/copas.mk
>> index c84a6cc..a258927 100644
>> --- a/package/copas/copas.mk
>> +++ b/package/copas/copas.mk
>> @@ -6,7 +6,7 @@
>>
>>   COPAS_VERSION = 1.1.6
>>   COPAS_SITE = http://github.com/downloads/keplerproject/copas
>> -COPAS_DEPENDENCIES = lua coxpcall luasocket
>> +COPAS_DEPENDENCIES = coxpcall luasocket
>
>
>  I guess this is removed because it's a runtime-only dependency?
> Then it's better to do this in a separate patch.

Ok.

>
> [snip]
>>
>> diff --git a/package/lua/Config.in b/package/lua/Config.in
>> index 4166730..d698a25 100644
>> --- a/package/lua/Config.in
>> +++ b/package/lua/Config.in
>> @@ -1,3 +1,13 @@
>> +
>> +choice
>> +       prompt "Lua Interpreter"
>> +       default BR2_PACKAGE_LUA_NONE
>> +
>> +config BR2_PACKAGE_LUA_NONE
>> +       bool "none"
>> +       help
>> +         None.
>> +
>>   config BR2_PACKAGE_LUA
>>         bool "lua"
>>         help
>> @@ -5,6 +15,21 @@ config BR2_PACKAGE_LUA
>>
>>           http://www.lua.org/
>>
>> +config BR2_PACKAGE_LUAJIT
>> +       bool "luajit"
>> +       # Luajit is only available for some target architectures, and
>> +       # has some complexity wrt 32/64. See luajit.mk for details.
>> +       depends on BR2_i386 || (BR2_x86_64&&  BR2_HOSTARCH='x86_64') ||
>> BR2_powerpc || BR2_arm || BR2_armeb
>>
>> +       help
>> +         LuaJIT implements the full set of language features defined
>> +         by Lua 5.1. The virtual machine (VM) is API- and
>> +         ABI-compatible to the standard Lua interpreter and can be
>> +         deployed as a drop-in replacement.
>> +
>> +         http://luajit.org/
>> +
>> +endchoice
>
>
>  It's a good idea to make it a choice, but I have a few problems
> with it:
>
> - it doesn't work well with packages that select LUA (e.g.
> BR2_PACKAGE_LIGHTTPD_LUA);
> - it's not good to split luajit's Config.in from the .mk file.
>
>  Maybe there could be a symbol BR2_USE_LUA that can be selected by
> other packages? This symbol could be defined package/Config.in.
> The choice would default to BR2_PACKAGE_LUA if BR2_USE_LUA, and
> BR2_PACKAGE_LUA_NONE would depend on !BR2_USE_LUA.
>

You are right, the choice lua/luajit works well for Lua extensions,
but not when Lua is embedded (dnsmask, libedje, haserl, lighttpd).
So, I'll remove it.

François

>> +
>>   if BR2_PACKAGE_LUA
>>
>>   choice
>
> [snip]
>
>> diff --git a/package/xavante/xavante.mk b/package/xavante/xavante.mk
>> index 0c1c6f1..7f49f4d 100644
>> --- a/package/xavante/xavante.mk
>> +++ b/package/xavante/xavante.mk
>> @@ -6,7 +6,7 @@
>>
>>   XAVANTE_VERSION = 2.2.1
>>   XAVANTE_SITE = http://github.com/downloads/keplerproject/xavante
>> -XAVANTE_DEPENDENCIES = cgilua copas coxpcall lua luafilesystem luasocket
>> wsapi
>> +XAVANTE_DEPENDENCIES = cgilua copas coxpcall luafilesystem luasocket
>> wsapi
>
>
>  Here again I think it should be a separate patch.
>
>
>  Regards,
>  Arnout
>
>
>>   XAVANTE_LICENSE = MIT
>>
>>   define XAVANTE_INSTALL_TARGET_CMDS
>
>
> --
> Arnout Vandecappelle                               arnout at mind be
> Senior Embedded Software Architect                 +32-16-286540
> Essensium/Mind                                     http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot



More information about the buildroot mailing list