U-boot 編譯學習---make TQ2440_config命令執行過程---在 Makefile 中

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

下面分析命令“make TQ2440_config”執行過程,爲了簡化分析過程這裏主要分析將編譯目標輸出到源代碼目錄的情況。
TQ2440_config :      unconfig
       @$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 samsung s3c24x0
其中的依賴unconfig定義如下:
unconfig:
       @rm -f $(obj)include/config.h $(obj)include/config.mk \
              $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
              $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep

其中“@”的作用是執行該命令時不在shell顯示。“obj”變量就是編譯輸出的目錄,因此“unconfig”的作用就是清除上次執行make *_config命令生成的配置文件(如include/config.hinclude/config.mk等)。


$(MKCONFIG)在上面指定爲“$(SRCTREE)/mkconfig”。$(@:_config=)爲將傳進來的所有參數中的_config替換爲空(其中“@”指規則的目標文件名,在這裏就是“TQ2440_config ”。$(text:patternA=patternB),這樣的語法表示把text變量每一個元素中結尾的patternA的文本替換爲patternB,然後輸出) 。因此$(@:_config=)的作用就是將TQ2440_config中的_config去掉,得到TQ2440。


因此“@$(MKCONFIG) $(@:_config=) arm arm920tTQ2440 samsung s3c24x0”實際上就是執行了如下命令:

./mkconfig TQ2440 arm arm920t TQ2440 samsung s3c24x0

即將“TQ2440 arm arm920t TQ2440 samsung s3c24x0”作爲參數傳遞給當前目錄下的mkconfig腳本執行。


 mkconfig腳本中給出了mkconfig的用法

# Parameters:  Target  Architecture  CPU  Board [VENDOR] [SOC]

 因此傳遞給mkconfig的參數的意義分別是:

TQ2440:Target(目標板型號)
arm:Architecture (目標板的CPU架構)
arm920t:CPU (具體使用的CPU型號)
TQ2440:Board
samsung:VENDOR(生產廠家名)
s3c24x0:SOC






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