了解套件之間的相依性是非常重要的,這樣你會知道為什麼有些套件你沒用到,但是它又需要被建置,還是有些套件其實根本不需要,所以可以拿掉以節省空間等等。buildroot的相依性分析主要是以目前的組態檔去分析,然後呼叫一支python的程式去繪製-『buildroot/support/scripts/graph-depends』,結果會放在『$(0)/graphs』底下,這部分主要的指令有兩個:
- make graph-depends 描述整個系統所有套件的相依性。
- make <pkg>-graph-depends 這個target主要針對某個套件去描述相依性。
假設我們用『raspberrypi3_defconfig』去繪製相依性的話,結果如下:
(來源 : free-electrons )
輸出格式
預設是『pdf』,可以選擇其他格式,像是PNG, PostScript 或是 SVG,這邊可由變數『BR2_GRAPH_OUT』來設定:
BR2_GRAPH_OUT=svg
輸入參數
如果在繪製過程有其他的行為或客製分析的話,可以由變數『BR2_GRAPH_DEPS_OPTS』傳入,當你執行『make graph-depends』的時候就會去執行這些參數,可接受的有底下幾種參數:
--depth N, -d N,
這個參數可以限制繪製的相依層級(深度),預設為0,代表沒有限制。--stop-on PKG, -s PKG,
這個參數定義了繪製到哪個套件就該停止了,這個套件的名字仍然會出現在關係圖上,但是child就不會出現了(eg. -s virtual,繪製到套件virtual時停止)。--exclude PKG, -x PKG,
跟上一個指令很像,但是不會包含這個套件。--transitive, --no-transitive,
想要了解其傳遞性的話,可以設置。--colours R,T,H,
如果你想要特別的區分Root 套件(R), target套件(T)和Host套件(H)的話,可以用這個參數來區分,預設的話是『--colours lightblue, grey, gainsboro 』。