[Buildroot] [PATCH 07/24] luarocks: allow to work with host-luajit

Arnout Vandecappelle arnout at mind.be
Thu Feb 27 07:02:26 UTC 2014


On 02/24/14 08:34, Francois Perrad wrote:
> when we use luajit on target

 Can you explain more clearly why this is needed? I.e., why can't you use
host-lua for luarocks to build packages for luajit on the target? You'll
need at least two paragraphs to explain that properly. I can write the
explanation if you like, only I don't understand myself why it is needed :-)

> 
> Signed-off-by: Francois Perrad <francois.perrad at gadz.org>
> ---
>  package/luainterpreter/luainterpreter.mk |    4 ++++
>  package/luarocks/luarocks.mk             |   18 ++++++++++++------
>  2 files changed, 16 insertions(+), 6 deletions(-)
> 
> diff --git a/package/luainterpreter/luainterpreter.mk b/package/luainterpreter/luainterpreter.mk
> index c37d621..d5b95db 100644
> --- a/package/luainterpreter/luainterpreter.mk
> +++ b/package/luainterpreter/luainterpreter.mk
> @@ -5,8 +5,12 @@
>  #############################################################
>  
>  LUAINTERPRETER_SOURCE =
> +HOST_LUAINTERPRETER_SOURCE =
>  LUAINTERPRETER_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_LUA_INTERPRETER))
>  
>  LUAINTERPRETER_ABIVER = $(call qstrip,$(BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION))
>  
>  $(eval $(generic-package))
> +$(eval $(host-generic-package))

 This should be a separate patch - with explanation in the commit log! E.g.

luainterpreter: add host-luainterpreter

host-luainterpreter is needed for luarocks to work with the same lua
implementation as the one on the target.

> +
> +LUA_RUN = $(HOST_DIR)/usr/bin/$(call qstrip,$(BR2_PACKAGE_PROVIDES_LUA_INTERPRETER))

 Wouldn't it be easier to just symlink lua -> luajit in luajit?

 Actually, in the luajit Makefile I see:

$(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)

which smells to me as if it is already symlinking...

> diff --git a/package/luarocks/luarocks.mk b/package/luarocks/luarocks.mk
> index 86e57d2..0b99de6 100644
> --- a/package/luarocks/luarocks.mk
> +++ b/package/luarocks/luarocks.mk
> @@ -9,16 +9,22 @@ LUAROCKS_SITE = http://luarocks.org/releases/
>  LUAROCKS_LICENSE = MIT
>  LUAROCKS_LICENSE_FILES = COPYING
>  
> -HOST_LUAROCKS_DEPENDENCIES = host-lua luainterpreter
> +HOST_LUAROCKS_DEPENDENCIES = host-luainterpreter luainterpreter
>  
>  LUAROCKS_CONFIG_DIR  = $(HOST_DIR)/usr/etc/luarocks
>  LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/config-$(LUAINTERPRETER_ABIVER).lua
>  
> +HOST_LUAROCKS_CONF_OPT = \
> +	--prefix=$(HOST_DIR)/usr \
> +	--sysconfdir=$(LUAROCKS_CONFIG_DIR) \
> +	--with-lua=$(HOST_DIR)/usr
> +
> +ifeq ($(BR2_PACKAGE_LUAJIT),y)
> +HOST_LUAROCKS_CONF_OPT += --lua-suffix=jit
> +endif
> +
>  define HOST_LUAROCKS_CONFIGURE_CMDS
> -	cd $(@D) && ./configure \
> -		--prefix=$(HOST_DIR)/usr \
> -		--sysconfdir=$(LUAROCKS_CONFIG_DIR) \
> -		--with-lua=$(HOST_DIR)/usr
> +	cd $(@D) && ./configure $(HOST_LUAROCKS_CONF_OPT)
>  endef
>  
>  define HOST_LUAROCKS_INSTALL_CMDS
> @@ -43,4 +49,4 @@ endef
>  $(eval $(host-generic-package))
>  
>  LUAROCKS_RUN = LUA_PATH="$(HOST_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)/?.lua" \
> -	$(HOST_DIR)/usr/bin/lua $(HOST_DIR)/usr/bin/luarocks
> +	$(LUA_RUN) $(HOST_DIR)/usr/bin/luarocks

 This should be mentioned and explained explicitly in the commit message.
E.g.:

Since the host-lua executable can be either lua or luajit, use $(LUA_RUN)
to call it instead of an explicit path.

 Unless of course the symlink is installed :-)

 Regards,
 Arnout

> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
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



More information about the buildroot mailing list