linux-headers: bump 4.{4, 9, 10}.x series
[buildroot-gz.git] / package / pkg-luarocks.mk
blobd7628671118513931e7a489e533357e89a1c8e36
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)_NAME_UPSTREAM ?= $(1)
38 $(2)_SUBDIR ?= $$($(2)_NAME_UPSTREAM)-$$(shell echo "$$($(2)_VERSION)" | sed -e "s/-[0-9]$$$$//")
39 $(2)_ROCKSPEC ?= $$(call LOWERCASE,$$($(2)_NAME_UPSTREAM))-$$($(2)_VERSION).rockspec
40 $(2)_SOURCE ?= $$(call LOWERCASE,$$($(2)_NAME_UPSTREAM))-$$($(2)_VERSION).src.rock
41 $(2)_SITE ?= $$(call qstrip,$$(BR2_LUAROCKS_MIRROR))
43 # Since we do not support host-luarocks-package, we know this is
44 # a target package, and can just add the required dependencies
45 $(2)_DEPENDENCIES += host-luarocks luainterpreter
48 # Extract step. Extract into a temporary dir and move the relevant part to the
49 # source dir.
51 ifndef $(2)_EXTRACT_CMDS
52 define $(2)_EXTRACT_CMDS
53 mkdir -p $$($(2)_DIR)/luarocks-extract
54 cd $$($(2)_DIR)/luarocks-extract && \
55 $$(LUAROCKS_RUN_ENV) $$(LUAROCKS_RUN_CMD) unpack --force $$(DL_DIR)/$$($(2)_SOURCE)
56 mv $$($(2)_DIR)/luarocks-extract/*/* $$($(2)_DIR)
57 endef
58 endif
61 # Build/install step.
63 ifndef $(2)_INSTALL_TARGET_CMDS
64 define $(2)_INSTALL_TARGET_CMDS
65 cd $$($(2)_SRCDIR) && $$(LUAROCKS_RUN_ENV) flock $$(TARGET_DIR) \
66 $$(LUAROCKS_RUN_CMD) make --keep $$($(2)_ROCKSPEC) $$($(2)_BUILD_OPTS)
67 endef
68 endif
70 # Call the generic package infrastructure to generate the necessary
71 # make targets
72 $(call inner-generic-package,$(1),$(2),$(3),$(4))
74 # $(2)_DEPENDENCIES are handled for configure step (too late)
75 # but host-luarocks is required to do the extract
76 $$($(2)_TARGET_EXTRACT): | host-luarocks
78 endef
80 ################################################################################
81 # luarocks-package -- the target generator macro for LuaRocks packages
82 ################################################################################
84 luarocks-package = $(call inner-luarocks-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target)
85 # host-luarocks-package not supported