Blame view

buildroot/buildroot-2016.08.1/docs/manual/adding-packages-luarocks.txt 3.33 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  // -*- mode:doc; -*-
  // vim: set syntax=asciidoc:
  
  === Infrastructure for LuaRocks-based packages
  
  [[luarocks-package-tutorial]]
  
  ==== +luarocks-package+ tutorial
  
  First, let's see how to write a +.mk+ file for a LuaRocks-based package,
  with an example :
  
  ------------------------
  01: ################################################################################
  02: #
  03: # luafoo
  04: #
  05: ################################################################################
  06:
  07: LUAFOO_VERSION = 1.0.2-1
  08: LUAFOO_DEPENDENCIES = foo
  09:
  10: LUAFOO_BUILD_OPTS += FOO_INCDIR=$(STAGING_DIR)/usr/include
  11: LUAFOO_BUILD_OPTS += FOO_LIBDIR=$(STAGING_DIR)/usr/lib
  12: LUAFOO_LICENSE = luaFoo license
  13: LUAFOO_LICENSE_FILES = COPYING
  14:
  15: $(eval $(luarocks-package))
  ------------------------
  
  On line 7, we declare the version of the package (the same as in the rockspec,
  which is the concatenation of the upstream version and the rockspec revision,
  separated by a hyphen '-').
  
  On line 8, we declare our dependencies against native libraries, so that they
  are built before the build process of our package starts.
  
  On lines 10-11, we tell Buildroot to pass custom options to LuaRocks when it is
  building the package.
  
  On lines 12-13, we specify the licensing terms for the package.
  
  Finally, on line 15, we invoke the +luarocks-package+
  macro that generates all the Makefile rules that actually allows the
  package to be built.
  
  [[luarocks-package-reference]]
  
  ==== +luarocks-package+ reference
  
  LuaRocks is a deployment and management system for Lua modules, and supports
  various +build.type+: +builtin+, +make+ and +cmake+. In the context of
  Buildroot, the +luarocks-package+ infrastructure only supports the +builtin+
  mode. LuaRocks packages that use the +make+ or +cmake+ build mechanisms
  should instead be packaged using the +generic-package+ and +cmake-package+
  infrastructures in Buildroot, respectively.
  
  The main macro of the LuaRocks package infrastructure is +luarocks-package+:
  like +generic-package+ it works by defining a number of variables providing
  metadata information about the package, and then calling +luarocks-package+. It
  is worth mentioning that building LuaRocks packages for the host is not
  supported, so the macro +host-luarocks-package+ is not implemented.
  
  Just like the generic infrastructure, the LuaRocks infrastructure works
  by defining a number of variables before calling the +luarocks-package+
  macro.
  
  First, all the package metadata information variables that exist in
  the generic infrastructure also exist in the LuaRocks infrastructure:
  +LUAFOO_VERSION+, +LUAFOO_SOURCE+, +LUAFOO_SITE+,
  +LUAFOO_DEPENDENCIES+, +LUAFOO_LICENSE+, +LUAFOO_LICENSE_FILES+.
  
  Two of them are populated by the LuaRocks infrastructure (for the
  +download+ step). If your package is not hosted on the LuaRocks mirror
  +$(BR2_LUAROCKS_MIRROR)+, you can override them:
  
  * +LUAFOO_SITE+, which defaults to +$(BR2_LUAROCKS_MIRROR)+
  
  * +LUAFOO_SOURCE+, which defaults to +luafoo-$(LUAFOO_VERSION).src.rock+
  
  A few additional variables, specific to the LuaRocks infrastructure, are
  also defined. They can be overridden in specific cases.
  
  * +LUAFOO_ROCKSPEC+, which defaults to +luafoo-$(LUAFOO_VERSION).rockspec+
  
  * +LUAFOO_SUBDIR+, which defaults to
    +luafoo-$(LUAFOO_VERSION_WITHOUT_ROCKSPEC_REVISION)+
  
  * +LUAFOO_BUILD_OPTS+ contains additional build options for the
    +luarocks build+ call.