Yi-Fan Lee

工作管理

Bitbake 會使用 varflags 進行對工作與相依性的管理。Bitbake 針對某個工作所建立的 varflags,其 varflags 的名稱為 “do_${TASK}”,與工作使用的函式同名。存取某個工作的 varflags,就是使用以下命令,以工作 do_configure 為例:

do_configure[ ${X} ] # 取得 do_configure 工作中的 varflags 中,Key 為 “${X}” 的值

以下為內建於 Bitbake 中,用來管理 Task 的 varflags:

Key 名稱 說明
cleandirs 在執行工作前,必須建立的空白目錄列表
假設該目錄已存在,將會先移除再重新建立
depends  
deptask  
dirs 在執行工作前,必須建立的目錄列表
假設該目錄已存在,保持該目錄的現狀
最後一個目錄將會作為該工作的 current working directory
file-checksums  
lockfiles 用來作為鎖的檔案列表
network 當其值為 “1” 的時候,該工作可以使用網路
預設只有 do_fetch() 工作可以使用網路
noexec 當其值為 “1” 的時候,該工作不須執行
nostamp 當其值為 “1” 的時候,Bitbake 執行該工作時不產生 stamp 檔案,故該工作必須每次都執行
number_threads 該工作可以同時執行多少個 CPU Thread
該值等同於變數 BB_NUMBER_THREAD
postfuncs 該工作執行之後,應該呼叫的函式列表
類似 do_${TASK}:append
prefuncs 該工作執行之前,應該呼叫的函式列表
類似 do_${TASK}:prepend
rdepends  
rdeptask  
recideptask  
recrdeptask  
stamp-extra-info 該工作的 stamp 檔案中,額外加入的資訊
umask 執行該工作時,所設定的 umask 值

除了上述的 Key 之外,尚有以下用來進行 Checksum 或是 Signatures 使用的 Key

Key 名稱 說明
vardeps 變數列表,使用空白作為分隔符號
Bitbake 將會計算這些變數的 Signature
vardepsexclude 變數列表,使用空白作為分隔符號
列出在 vardeps 中不須計算 Signature 的變數
vardepvalue 如果有設定,將使用該值用來用來計算變數的 Signature
vardepvalueexclude 數值列表,使用 “|” 作為分隔符號
計算變數的 Signature 時不使用這些數值