我想從我的bitbake(.bb)食譜傳遞一個變量到我調用的Makefile。如何將一個變量從一個bitbake配方傳遞給一個makefile?
在我的食譜,我有:
export FOO="bar"
當它運行的do_compile()
方法我把它叫我產生一個Makefile。在Makefile中,我測試的變量是通過正確設置:
ifeq ($(FOO), "bar")
echo $(FOO) >> ./test.txt
else
echo "Didn't work" >> ./test.txt
endif
當我烤的食譜我只是在日誌中看到「沒有工作」。我覺得這很奇怪,因爲如果我在我的Makefile中有FOO="bar"
,並且剛剛運行make
,那麼我會在測試文件中看到「bar」打印。那爲什麼它沒有「正確地通過」?
我跑了一個更多的測試來驗證,在我的Makefile中,我只把這個行:
echo $(FOO) >> ./always_print.txt
然後烘焙食譜我看到bar
印在我的「always_print.txt」文件後,我卻看到了「沒有工作「印在test.txt ...
有沒有人有線索我在做什麼錯在這裏?
非常感謝。我讓這個太複雜了。有一個問題,爲什麼當我在Makefile中直接添加FOO =「bar」並使用'make'運行時,它爲什麼會起作用?是否因爲它處理本地定義與導出定義有區別? – Mike 2013-03-13 16:58:06
如果你在Makefile中做了'FOO =「bar」',那麼'$(FOO)'將會包含引號,所以你的原始比較將起作用。在'BitBake'中''''*用於引用,因此'export FOO =「bar」'將導致包含字符串'bar'(不含引號)的'$(FOO)'。 – Idelic 2013-03-13 17:10:01