首页 > 解决方案 > buildroot 使用 autotools 从 github 添加包

问题描述

我一直在寻找,但找不到答案。我目前正在学习 buildroot,它一直很棒,直到这个。

我正在尝试将Coova Chilli添加为一个包。

这是我的.mk文件。

#############################################################
#
# coovachilli
#
#############################################################
COOVACHILLI_VERSION = 1.4
COOVACHILLI_SOURCE = $(COOVACHILLI_VERSION).tar.gz
COOVACHILLI_SITE = https://github.com/coova/coova-chilli/archive
COOVACHILLI_INSTALL_STAGING = YES
COOVACHILLI_INSTALL_TARGET = NO
COOVACHILLI_CONF_OPTS = --prefix=/usr --libdir=/usr/lib --localstatedir=/var --sysconfdir=/etc --enable-miniportal --with-openssl --enable-libjson --enable-useragent --enable-sessionstate --enable-sessionid --enable-chilliredir --enable-binstatusfile --enable-statusfile --disable-static --enable-shared --enable-largelimits --enable-proxyvsa --enable-chilliproxy --enable-chilliradsec --with-poll  --enable-dhcpopt --enable-sessgarden --enable-ipwhitelist --enable-redirdnsreq --enable-miniconfig --enable-layer3 --enable-chilliscript --enable-eapol --enable-uamdomainfile --enable-modules --enable-multiroute
COOVACHILLI_DEPENDENCIES = openssl make libtool


$(eval $(autotools-package))

一直在关注一些教程,还有这个

但无论我做什么,包括这个包,我总是最终得到:
/bin/bash: ./configure: No such file or directory

我试过取消选择这个包并且make成功了。
我被>>> coovachilli 1.4 Configuring这个错误困住了。

我检查了buildroot > dl文件夹,可以看到它成功下载了文件。
此外,buildroot > output > build我可以看到coovachilli-1.4其中包含文件的文件夹。

标签: autotoolsbuildroot

解决方案


但无论我做什么,包括这个包,我总是最终得到:

/bin/bash: ./configure: No such file or directory

这似乎是因为您使用的 tarball 确实不包含configure脚本。该项目的 GitHub 源代码库和从那里可用的发布 tarball 不包含一个,也不包含其他各种 Autotools 生成的文件,而是提供了一个bootstrap运行 Autotools 来生成它们的“”脚本。

该方法遵循不将派生文件提交到源存储库的理念,但对于 Autotools 来说这是一种有点简单化的分析,因为

  • Autotools 的关键设计点之一是它们是包维护者的工具,而不是仅仅想要构建包的人的工具。运行 Autotools 并不是构建过程的正常部分。

  • 因此,由基于 Automake 的构建系统构建的分发包确实包含构成构建系统的所有生成文件。期望您向他们提供基于 Autotools 的分发包的第三方工具是正确的期望这些工具被包含在内。

  • 此外,由 Autotools 生成的脚本和其他文件比生成它们的 Autotools 输入文件更具可移植性。特别是,Autotools 输入并不总是与不同版本的 Autotools 完全兼容,而不是为它们编写。

无论如何,假设您使用 GitHub 提供的 tarball,您需要bootstrap在解压缩和启动到configure. 请注意,从 buildroot 的角度来看,这会在您的构建中引入(至少)对 Autoconf 和 A​​utomake 的依赖。


推荐阅读