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)_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
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
)
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
)
70 # Call the generic package infrastructure to generate the necessary
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
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