website: update Free Electrons logo
[buildroot-gz.git] / package / pkg-luarocks.mk
blobda5c912c8138e8599ee5cc5853e4a86a6f8247cc
1 ################################################################################
2 # LuaRocks package infrastructure
3 # see http://luarocks.org/
5 # This file implements an infrastructure that eases development of
6 # package .mk files for LuaRocks packages.
7 # LuaRocks supports various build.type : builtin, make, cmake.
8 # This luarocks infrastructure supports only the builtin mode,
9 # the make & cmake modes could be directly handled by generic & cmake infrastructure.
11 # See the Buildroot documentation for details on the usage of this
12 # infrastructure
14 # In terms of implementation, this LuaRocks infrastructure requires
15 # the .mk file to only specify metadata information about the
16 # package: name, version, etc.
18 ################################################################################
20 ################################################################################
21 # inner-luarocks-package -- defines how the configuration, compilation and
22 # installation of a LuaRocks package should be done, implements a few hooks to
23 # tune the build process and calls the generic package infrastructure to
24 # generate the necessary make targets
26 # argument 1 is the lowercase package name
27 # argument 2 is the uppercase package name, including a HOST_ prefix
28 # for host packages
29 # argument 3 is the uppercase package name, without the HOST_ prefix
30 # for host packages
31 # argument 4 is the type (target or host)
32 ################################################################################
34 define inner-luarocks-package
36 $(2)_BUILD_OPTS ?=
37 $(2)_SUBDIR ?= $(1)-$$(shell echo "$$($(3)_VERSION)" | sed -e "s/-[0-9]$$$$//")
38 $(2)_ROCKSPEC ?= $(1)-$$($(3)_VERSION).rockspec
39 $(2)_SOURCE ?= $(1)-$$($(3)_VERSION).src.rock
40 $(2)_SITE ?= $$(call qstrip,$$(BR2_LUAROCKS_MIRROR))
42 # Since we do not support host-luarocks-package, we know this is
43 # a target package, and can just add the required dependencies
44 $(2)_DEPENDENCIES += host-luarocks luainterpreter
47 # Extract step
49 ifndef $(2)_EXTRACT_CMDS
50 define $(2)_EXTRACT_CMDS
51 cd $$($(2)_DIR)/.. && \
52 $$(LUAROCKS_RUN_ENV) $$(LUAROCKS_RUN_CMD) unpack --force $$(DL_DIR)/$$($(2)_SOURCE)
53 endef
54 endif
57 # Build/install step.
59 ifndef $(2)_INSTALL_TARGET_CMDS
60 define $(2)_INSTALL_TARGET_CMDS
61 cd $$($(2)_SRCDIR) && $$(LUAROCKS_RUN_ENV) flock $$(TARGET_DIR) \
62 $$(LUAROCKS_RUN_CMD) make --keep $$($(2)_ROCKSPEC) $$($(2)_BUILD_OPTS)
63 endef
64 endif
66 # Call the generic package infrastructure to generate the necessary
67 # make targets
68 $(call inner-generic-package,$(1),$(2),$(3),$(4))
70 # $(2)_DEPENDENCIES are handled for configure step (too late)
71 # but host-luarocks is required to do the extract
72 $$($(2)_TARGET_EXTRACT): | host-luarocks
74 endef
76 ################################################################################
77 # luarocks-package -- the target generator macro for LuaRocks packages
78 ################################################################################
80 luarocks-package = $(call inner-luarocks-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target)
81 # host-luarocks-package not supported