在OPENWRT上添加开源模块
OPENWRT的开源模块添加通用方法
以一个案例说明添加通用模块的方法。
从网上下载一个lua-cjson-2.1.0.tar.gz,如何集成到自己的嵌入式OPENWRT环境里呢?
在package下创建目录
openwrt要求要编译的包,需要在package目录下创建有相应的目录。
简单的方法是,把lua-cjson-2.1.0.tar.gz放到dl目录,再在package下创建一个目录,如
package/feeds/packages/lua-cjson/
再写一个Makefile
include
(
T
O
P
D
I
R
)
/
r
u
l
e
s
.
m
k
包
括
这
个
通
用
的
r
u
l
e
.
m
k
P
K
G
N
A
M
E
:
=
l
u
a
−
c
j
s
o
n
P
K
G
V
E
R
S
I
O
N
:
=
2.1.0
−
−
指
定
版
本
号
组
成
源
码
包
:
P
K
G
S
O
U
R
C
E
:
=
(TOPDIR)/rules.mk 包括这个通用的rule.mk PKG_NAME:=lua-cjson PKG_VERSION:=2.1.0 --指定版本号 组成源码包: PKG_SOURCE:=
(TOPDIR)/rules.mk包括这个通用的rule.mkPKGNAME:=lua−cjsonPKGVERSION:=2.1.0−−指定版本号组成源码包:PKGSOURCE:=(PKG_NAME)-
(
P
K
G
V
E
R
S
I
O
N
)
.
t
a
r
.
g
z
编
译
目
录
:
会
自
动
解
压
到
这
里
进
行
编
译
P
K
G
B
U
I
L
D
D
I
R
:
=
(PKG_VERSION).tar.gz 编译目录:会自动解压到这里进行编译 PKG_BUILD_DIR:=
(PKGVERSION).tar.gz编译目录:会自动解压到这里进行编译PKGBUILDDIR:=(BUILD_DIR)/
(
P
K
G
N
A
M
E
)
−
(PKG_NAME)-
(PKGNAME)−(PKG_VERSION)
要用到cmake.mk的,这里引入进来
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
定义名称Package/lua-cjson,对应于.config Package_lua-cjson=y
define Package/lua-cjson
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua CJSON parser
URL:=https://github.com/mpx/lua-cjson
DEPENDS:= +lua
endef
define Package/lua-cjson/description
Lua CJSON is a fast JSON encoding/parsing module for Lua.
endef
CMAKE_OPTIONS +=
-DUSE_LUA=ON
define Package/lua-cjson/install
安装路径指定
$(INSTALL_DIR) $(1)/usr/lib/lua
安装文件指定
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/lib/lua/
其他安装的文件
$(INSTALL_DIR) $(1)/usr/lib/lua/cjson
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lua/cjson/util.lua $(1)/usr/lib/lua/cjson
endef
最后结束行
$(eval $(call BuildPackage,lua-cjson))