2017-10-16 81 views
0

多年來我已經使用了Buildroot,並且一直設法找到解決方案來解決我遇到的障礙。但是這個人讓我進入了圈子。爲什麼Buildroot不能提供添加到每個過程構建的項目特定主機包的目標?

我已經添加了一個git-sourced python工具作爲我的Buildroot構建ARM目標的主機包。我已經完成了package/Config.in.host和package/toolname/Config.in.host以及package/toolname/toolname.mk文件的工作。一切看起來都是按順序的。我將這些工作與add_new_package.wizard輸出結果進行了比較。

新選項DOES出現在menuconfig中。

它不作爲make目標,雖然我有目標端軟件包,我已經包括這是有效的目標。即我可以運行: make target-side-package-name 這些軟件包的構建就好了。

我不能運行: 使主機端軟件包名稱因爲我得到錯誤「沒有規則制定目標」。

所以我必須有一些東西我不正確地與主機軟件包,雖然我明確正在做目標軟件包正確的事情。

一切指向Buildroot只是簡單地忽略我的主機包,而不是將其粘貼到menuconfig。我在網絡上搜索的時間已經導致沒有一個人關於有同樣問題的人。我錯過了我會想到的事情。

我的問題是 - 我可以做什麼調試,我可以在哪裏查找讓Buildroot正確識別我的新包的內容?

編輯:我相信我現在明白問題的一部分是構建順序,也許我可以用依賴性指令修復一個問題。我的目標軟件包依賴於主機軟件包,正在首先構建。我認爲常識會決定首先處理主機軟件包,但顯然這不是真的。

編輯:公示.mk文件

TOOLNAME_VERSION = 2 
TOOLNAME_SITE = $(call github,devname,toolname,$(TOOLNAME_VERSION)) 
TOOLNAME_SETUP_TYPE = setuptools 
TOOLNAME_LICENSE = GPL-3.0 
TOOLNAME_LICENSE_FILES = LICENSE 

HOST_TOOLNAME_DEPENDENCIES = host-python-library 

$(eval $(host-python-package)) 

TOOLNAME = $(HOST_DIR)/usr/bin/toolname 

正如我之前暗示,現在運行得很好,所以我知道它主要是設置正確,剩下的問題是make目標丟失。根據Buildroot手冊,我應該有一個可用的。

我現在已經發現缺少make目標實際上使得建立依賴於這個的其他軟件包成爲不可能。依賴包的構建現在失敗了,因爲工具名稱包中的「無法生成」,它依賴於通過 TARGET_PACKAGE_DEPENDENCIES =工具名稱

+0

郵件列表和IRC頻道是此類問題的最佳位置。你會在那裏找到更好的答案。你的問題也很模糊:你能否提供你的Config.in和.mk文件(可能混淆敏感數據)? –

+0

感謝您的建議。我已經發布了.mk,Config.in.host中沒有任何興趣,它很簡單,並且該包顯示在menuconfig中並且構建正確。這只是造成目標的問題而已。 –

回答

0

哈利路亞!答案是使目標名稱不是工具名稱,而是主機工具名稱。問題的根本原因在於Buildroot文檔第8.12.5節中沒有提到這種細微差別。我在第17章中研究包依賴性的時候偶然發現了答案,它在那裏確定了適用於該特定情況的正確用法。

1

您可以發佈您的toolname.mk嗎?這聽起來像你忘了添加$(eval $(host-python-package))行。

+0

它在那裏,謝謝你的猜測。 –

相關問題