我正在制作一个嵌入式 Linux 系统,我想将“ bluez ”包(和蓝牙实用程序)添加到 Buildroot 环境的包中。
不幸的是,tar 球似乎不可用,但源代码可从 Git 存储库获得,但我不确定如何将其包含在 .mk 文件中。
我可以这样做吗?如果可以,该怎么做?
Buildroot 已经有一个bluez包,它将成为即将发布的 2011.11 版本的一部分。同时,您可以使用最新的 Git 版本的 Buildroot,或者将 bluez 包反向移植到旧版本的 Buildroot 中。
回到最初的问题,Buildroot 能够从 Git 存储库中获取源代码。如文档中所述,您只需执行以下操作:
MYPKG_VERSION = some_commit_id_or_tag_or_branch_name
MYPKG_SITE = git://thegitrepository
MYPKG_SITE_METHOD = git
在你的.mk
文件中。
看起来该bluez
软件包的 tarball 已经可用。谷歌搜索“bluez”会产生http://www.bluez.org/download/,它有几个 tarball 的链接。
如果出于某种原因您真的想要 Git 存储库中的代码,您可以制作存储库的本地克隆,然后使用该git archive
命令创建一个 tarball。有关git archive --help
文档,请参阅。
根据您的需要,您也可以直接从存储库的本地副本构建(而不是创建一个 tarball 以在后面的步骤中再次解压缩它)。
最小的工作在树 2016.05 示例
https://github.com/cirosantilli/buildroot/tree/git-package-2016.05
唯一有趣的文件是package/hello/Config.in
:
HELLO_VERSION = branch2
HELLO_SITE = git://github.com/cirosantilli/hello-c.git
define HELLO_BUILD_CMDS
$(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D)
endef
define HELLO_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/hello $(TARGET_DIR)/usr/bin
endef
$(eval $(generic-package))
它下载并构建:https ://github.com/cirosantilli/hello-c
MYPKG_SITE_METHOD = git
git:
从上推断SITE
。
git submodule + *_OVERRIDE_SRCDIR
for git forks
如果您要修改存储库的源,我推荐这种方法:如何修改 Buildroot 包的源以进行包开发?