U-boot 編譯學習---直接 make all 命令失敗

參考博客:http://www.cnblogs.com/heaad/archive/2010/07/17/1779806.html


 若沒有執行過make <board_name>_config命令就直接執行make all命令則會出現如下的才錯誤信息,然後停止編譯:

 System not configured - see README


U-Boot是如何知道用戶沒有執行過“make <board_name>_config”命令的呢?閱讀U-Boot源代碼就可以發現了,Makefile中有如下代碼:

ifeq ($(obj)include/config.mk,$(wildcard $(obj)include/config.mk)) # config.mk存在
all: 
sinclude $(obj)include/autoconf.mk.dep
sinclude $(obj)include/autoconf.mk
… …
else        # config.mk不存在
… …
       @echo "System not configured - see README" >&2
       @ exit 1
… …
endif      # config.mk


include/config.mk 文件存在,則$(wildcard $(obj)include/config.mk) 命令執行的結果是“$(obj)include/config.mk”展開的字符串,否則結果爲空。

由於include/config.mk“make <board_name>_config”命令執行過程生成的

若從沒有執行過“make <board_name>_config”命令則include/config.mk必然不存在。

因此Make就執行else分支的代碼,在輸出“System not configured - see README”的信息後就返回了。







發佈了115 篇原創文章 · 獲贊 21 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章