summaryrefslogtreecommitdiffstats
path: root/package/pkg-luarocks.mk
diff options
context:
space:
mode:
authorFrancois Perrad <fperrad@gmail.com>2014-01-11 16:42:07 +0100
committerPeter Korsgaard <peter@korsgaard.com>2014-01-13 23:17:18 +0100
commit72afb294fffe7b06aa6d1db1ced637852e408d21 (patch)
tree922460b3f6589d1dca31834aea3b47d1ee899b77 /package/pkg-luarocks.mk
parentb3713fa5185902bbba60cd5b0469f7efbef0a203 (diff)
downloadbuildroot-72afb294fffe7b06aa6d1db1ced637852e408d21.tar.gz
buildroot-72afb294fffe7b06aa6d1db1ced637852e408d21.zip
luarocks: new infrastructure
Signed-off-by: Francois Perrad <francois.perrad@gadz.org> [yann.morin.1998@free.fr: apply Thomas' comments] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/pkg-luarocks.mk')
-rw-r--r--package/pkg-luarocks.mk82
1 files changed, 82 insertions, 0 deletions
diff --git a/package/pkg-luarocks.mk b/package/pkg-luarocks.mk
new file mode 100644
index 0000000000..e82818a0c4
--- /dev/null
+++ b/package/pkg-luarocks.mk
@@ -0,0 +1,82 @@
+################################################################################
+# 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.
+#
+################################################################################
+
+################################################################################
+# 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]$$//")
+$(2)_ROCKSPEC ?= $(1)-$($(3)_VERSION).rockspec
+$(2)_SOURCE ?= $(1)-$($(3)_VERSION).src.rock
+$(2)_SITE ?= $(call qstrip,$(BR2_LUAROCKS_MIRROR))
+
+# Since we do not support host-luarocks-package, we know this is
+# a target package, and can just add the required dependencies
+$(2)_DEPENDENCIES += host-luarocks luainterpreter
+
+# $(2)_DEPENDENCIES are handled for configure step (too late)
+# but host-luarocks is required to do the extract
+$(1)-extract: host-luarocks
+
+#
+# Extract step
+#
+ifndef $(2)_EXTRACT_CMDS
+define $(2)_EXTRACT_CMDS
+ cd $$($(2)_DIR)/.. && \
+ $$(LUAROCKS_RUN) unpack --force $(DL_DIR)/$$($(2)_SOURCE)
+endef
+endif
+
+#
+# Build/install step.
+#
+ifndef $(2)_INSTALL_TARGET_CMDS
+define $(2)_INSTALL_TARGET_CMDS
+ cd $$($(2)_SRCDIR) && \
+ $$(LUAROCKS_RUN) make --deps-mode=none --keep $$($(2)_ROCKSPEC) $$($(2)_BUILD_OPT)
+endef
+endif
+
+# Call the generic package infrastructure to generate the necessary
+# make targets
+$(call inner-generic-package,$(1),$(2),$(3),$(4),$(5))
+
+endef
+
+################################################################################
+# luarocks-package -- the target generator macro for LuaRocks packages
+################################################################################
+
+luarocks-package = $(call inner-luarocks-package,$(call pkgname),$(call UPPERCASE,$(call pkgname)),$(call UPPERCASE,$(call pkgname)),$(call pkgparentdir),target)
+# host-luarocks-package not supported
OpenPOWER on IntegriCloud