From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [pkg-luarocks infra V4 06/10] luarocks: new infrastructure
Date: Sun, 22 Dec 2013 18:31:53 +0100 [thread overview]
Message-ID: <20131222183153.4c2c90c8@skate> (raw)
In-Reply-To: <1384520859-3189-6-git-send-email-francois.perrad@gadz.org>
Dear Francois Perrad,
On Fri, 15 Nov 2013 14:07:35 +0100, Francois Perrad wrote:
>
> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
> Config.in | 8 ++++++
> Makefile | 1 +
> package/Makefile.in | 1 +
> package/pkg-luarocks.mk | 71 +++++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 81 insertions(+)
> create mode 100644 package/pkg-luarocks.mk
>
> diff --git a/Config.in b/Config.in
> index d87e0f0..cb41c36 100644
> --- a/Config.in
> +++ b/Config.in
> @@ -207,6 +207,14 @@ config BR2_DEBIAN_MIRROR
>
> endif
>
> +config BR2_LUAROCKS_MIRROR
> + string "LuaRocks mirror"
> + default "http://luarocks.org/repositories/rocks"
> + help
> + LuaRocks repository.
> +
> + See http://luarocks.org
> +
> endmenu
>
> config BR2_JLEVEL
> diff --git a/Makefile b/Makefile
> index c7a0a6d..0dde760 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -473,6 +473,7 @@ endif
> ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY),y)
> find $(TARGET_DIR)/usr/lib/ -name '*.py' -print0 | xargs -0 rm -f
> endif
> + rm -rf $(TARGET_DIR)/usr/lib/luarocks
> $(STRIP_FIND_CMD) | xargs $(STRIPCMD) 2>/dev/null || true
> if test -d $(TARGET_DIR)/lib/modules; then \
> find $(TARGET_DIR)/lib/modules -type f -name '*.ko' | \
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 612f3c7..f7fd8f9 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -363,4 +363,5 @@ include package/pkg-utils.mk
> include package/pkg-download.mk
> include package/pkg-autotools.mk
> include package/pkg-cmake.mk
> +include package/pkg-luarocks.mk
> include package/pkg-generic.mk
> diff --git a/package/pkg-luarocks.mk b/package/pkg-luarocks.mk
> new file mode 100644
> index 0000000..2a20413
> --- /dev/null
> +++ b/package/pkg-luarocks.mk
> @@ -0,0 +1,71 @@
> +################################################################################
> +# LuaRocks package infrastructure
> +# see http://luarocks.org/
> +#
> +# This file implements an infrastructure that eases development of
> +# package .mk files for LuaRocks packages.
> +# LuaRocks supports various build.type : builtin, make, cmake.
> +# This luarocks infrastructure supports only the builtin mode,
> +# the make & cmake modes could be directly handled by generic & cmake infrastructure.
> +#
> +# See the Buildroot documentation for details on the usage of this
> +# infrastructure
> +#
> +# In terms of implementation, this LuaRocks infrastructure requires
> +# the .mk file to only specify metadata informations about the
> +# package: name, version, etc.
> +#
> +################################################################################
> +
> +LUAROCKS_RUN = $(HOST_DIR)/usr/bin/luarocks
This variable could probably be provided by
package/luarocks/luarocks.mk.
> +
> +################################################################################
> +# inner-luarocks-package -- defines how the configuration, compilation and
> +# installation of a LuaRocks package should be done, implements a few hooks to
> +# tune the build process and calls the generic package infrastructure to
> +# generate the necessary make targets
> +#
> +# argument 1 is the lowercase package name
> +# argument 2 is the uppercase package name, including an HOST_ prefix
> +# for host packages
> +# argument 3 is the uppercase package name, without the HOST_ prefix
> +# for host packages
> +# argument 4 is the package directory prefix
> +# argument 5 is the type (target or host)
> +################################################################################
> +
> +define inner-luarocks-package
> +
> +$(2)_BUILD_OPT ?=
> +$(2)_SUBDIR ?= $(1)-$(shell echo "$($(3)_VERSION)" | sed -e "s/-[0-9]$$//")
Can we avoid this subdir for all packages?
> +$(2)_ROCKSPEC ?= $(1)-$($(3)_VERSION).rockspec
> +$(2)_SOURCE ?= $(1)-$($(3)_VERSION).src.rock
> +$(2)_SITE ?= $(call qstrip,$(BR2_LUAROCKS_MIRROR))
> +
> +#
> +# Extract step
> +#
> +$(2)_EXTRACT_CMDS ?= \
> + cd $$($(2)_DIR)/.. && $(LUAROCKS_RUN) unpack $(DL_DIR)/$$($(2)_SOURCE)
> +
> +# $(2)_DEPENDENCIES are handled for configure step (too late)
> +$(1)-extract: host-luarocks
Ok, I see the problem. However I believe I'd still like to see
host-luarocks added to $(2)_DEPENDENCIES so that the dependency graph
is correct, and "make source" / "make external-deps" properly show
luarocks.
> +#
> +# Build/install step.
> +#
> +$(2)_INSTALL_TARGET_CMDS ?= \
> + cd $$($(2)_SRCDIR) && $(LUAROCKS_RUN) build --minimal $$($(2)_ROCKSPEC) $$($(2)_BUILD_OPT)
Maybe the extract and install target steps could be written using a
define ... endef block instead, for better readability?
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
next prev parent reply other threads:[~2013-12-22 17:31 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-15 13:07 [Buildroot] [pkg-luarocks infra V4 01/10] luainterpreter: create virtual package Francois Perrad
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 02/10] luajit: allow to build Lua extensions without lua Francois Perrad
2013-12-22 17:23 ` Thomas Petazzoni
2014-01-07 14:11 ` François Perrad
2014-01-10 2:34 ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 03/10] lua: remove a too invasive patch Francois Perrad
2013-12-22 17:24 ` Thomas Petazzoni
2013-12-22 17:30 ` Yann E. MORIN
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 04/10] lua*: restore version in module paths Francois Perrad
2013-12-22 17:26 ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 05/10] luarocks: new package Francois Perrad
2013-12-22 17:28 ` Thomas Petazzoni
2013-12-22 20:45 ` Yann E. MORIN
2013-12-23 7:56 ` François Perrad
2013-12-23 8:21 ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 06/10] luarocks: new infrastructure Francois Perrad
2013-12-22 17:31 ` Thomas Petazzoni [this message]
2013-12-22 20:47 ` Yann E. MORIN
2013-12-23 8:20 ` François Perrad
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 07/10] lua-cjson: restore official name Francois Perrad
2013-12-22 17:32 ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 08/10] luasql-sqlite3: renamed like with LuaRocks Francois Perrad
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 09/10] lua*: refactor with luarocks infrastructure Francois Perrad
2013-12-22 17:34 ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 10/10] manual: adding packages luarocks Francois Perrad
2013-12-22 17:40 ` Thomas Petazzoni
2013-12-22 20:51 ` Yann E. MORIN
2013-12-22 20:02 ` Yann E. MORIN
2013-12-22 20:52 ` Yann E. MORIN
2013-12-22 17:22 ` [Buildroot] [pkg-luarocks infra V4 01/10] luainterpreter: create virtual package Thomas Petazzoni
2013-12-22 20:44 ` Yann E. MORIN
2013-12-22 17:37 ` Yann E. MORIN
2013-12-22 20:56 ` Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131222183153.4c2c90c8@skate \
--to=thomas.petazzoni@free-electrons.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox