2.8. 添加新包¶
添加新包有下面的几个步骤:
- package 下添加包的配置 
<pkg>/
|-> <pkg>.mk              --> 必须
|-> Config.in             --> 可选
|-> Config.in.host        --> 仅 host 工具需要
- 修改上层的 Config.in/Config.in.host - 修改之后,才能在 menuconfig 中看到 
- 源码 - 自主开发的组件,应该放到 source/artinchip 目录中; 三方开源代码,应该下载源码包到 dl/<pkg> 目录中。 
2.8.1. ArtInChip 开发的组件包¶
建议:统一使用 cmake 进行编译。
原因:
- cmake 功能比较强,更适合作为源码包的编译管理 
- cmake Makefile 书写比较简单(主要是针对 Autotools) 
- cmake 可以源码和编译结果分离,支持 install等(主要针对 Generic Makefile) 
2.8.2. 开源组件包¶
添加相关源码包是,根据使用的编译工具不同,可以参考:
autotools:
package/third-party/acl
cmake:
package/third-party/lzo
package/artinchip/*
generic makefile:
package/third-party/bzip2
support kconfig:
uboot
linux
package/third-party/busybox
2.8.3. 注意事项¶
2.8.3.1. 包的路径¶
当前 SDK 中,仅支持在
package/artinchip/
package/third-party/
下添加,并且仅支持新增一级目录。例如
pacakge/artinchip/foo
2.8.3.2. 包的名字¶
以添加一个名字为 foo 的包为例:
| 包的目录名字 | 必须为  | 
| Config.in 中的名字 | 必须为 以  | 
| foo.mk 中的变量名 | 变量名必须以  | 
注解
包的名字,可以包含 - 或者 _ ,如果使用了中杠,则需要注意:
- 包目录名字继续使用中杠 
- 相关的变量名字,需要将中杠改为下划线 
2.8.3.3. 软连接的使用¶
如果在软件包的安装阶段,需要使用软连接创建目录,则需要添加参数 -n ,如:
ln -snf source_dir_path target_name
原因是 ln -sf 对重复创建的目标,并不会更新软连接的时间戳,这样会导致重复执行
make <pkg>-prebuilt 无法检测到安装目录中的软连接目录的变化,导致生成的预编译
二进制包缺漏该软连接。
-n 的功能是:当软连接指向目录时,将其当做一般文件对待。这样重复创建/更新链接时,
相应的时间戳也会更新。