]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - package/pkg-luarocks.mk
package/llvm: fix host-llvm build with GCC8
[coffee/buildroot.git] / package / pkg-luarocks.mk
1 ################################################################################
2 # LuaRocks package infrastructure
3 # see http://luarocks.org/
4 #
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.
10 #
11 # See the Buildroot documentation for details on the usage of this
12 # infrastructure
13 #
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.
17 #
18 ################################################################################
19
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
25 #
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 ################################################################################
33
34 define inner-luarocks-package
35
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))
42
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
46
47 #
48 # Extract step. Extract into a temporary dir and move the relevant part to the
49 # source dir.
50 #
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 $$($(2)_DL_DIR)/$$($(2)_SOURCE)
56         mv $$($(2)_DIR)/luarocks-extract/*/* $$($(2)_DIR)
57 endef
58 endif
59
60 #
61 # Build/install step.
62 #
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
69
70 # Call the generic package infrastructure to generate the necessary
71 # make targets
72 $(call inner-generic-package,$(1),$(2),$(3),$(4))
73
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
77
78 endef
79
80 ################################################################################
81 # luarocks-package -- the target generator macro for LuaRocks packages
82 ################################################################################
83
84 luarocks-package = $(call inner-luarocks-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target)
85 # host-luarocks-package not supported