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
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
29 # argument 3 is the uppercase package name, without the HOST_ prefix
31 # argument 4 is the type (target or host)
32 ################################################################################
34 define inner-luarocks-package
37 $(2)_SUBDIR ?
= $(1)-$$(shell echo
"$$($(2)_VERSION)" | sed
-e
"s/-[0-9]$$$$//")
38 $(2)_ROCKSPEC ?
= $(1)-$$($(2)_VERSION
).rockspec
39 $(2)_SOURCE ?
= $(1)-$$($(2)_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
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
)
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
)
66 # Call the generic package infrastructure to generate the necessary
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
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