我有源代碼樹,其中包含大約300個Makefiles。這些Makefiles將源文件和目標文件編譯爲多個固件映像。Makefile中的源代碼和二進制文件之間的關係
我想要的是得到這樣的列表:
<firmware image name> : <list of object files> : <list of source files>
是否有任何工具?
我有源代碼樹,其中包含大約300個Makefiles。這些Makefiles將源文件和目標文件編譯爲多個固件映像。Makefile中的源代碼和二進制文件之間的關係
我想要的是得到這樣的列表:
<firmware image name> : <list of object files> : <list of source files>
是否有任何工具?
那麼,如果你正在拍攝的是獲取將建立的圖像列表,你可以試着玩-n
和-W
標誌。
-n
告訴make做一個幹運行。它將打印出它將執行的所有命令,但不會真正執行它們。如果您在make clean
之後執行此操作,它可能會提供您想要的信息。也許不完全是你想要的形式,但這就是sed和awk的用途。
-W file
告訴make假裝file
被修改,並做它的事情。如果make clean
過多,這可能會有所幫助。
問題是我無法啓動make,因爲它是在獨立的生成器上運行的特殊補丁版本,我無法訪問 – 2011-04-19 14:11:48
@Alexander,請稍等。你不能運行Make?你應該在你的問題中提到 - 它改變了很多問題。你可以修改makefile嗎? – Beta 2011-04-19 16:11:37
@Alexander - 運行時是否生成日誌?也許你可以使用這些輸出。 – 2011-04-19 16:14:39
不是魔法。 Make不知道什麼是資源,什麼是對象。它只知道它們之間有各種依賴關係的目標。你可以嘗試後處理-p
。
看起來像make -p無法處理Makefile依賴關係。 – 2011-04-19 14:15:50
我敢肯定,有一套shell魔法(使用grep和sed,如果沒有其他),可以做到這一點。但是爲了給出建議,我們可能需要查看一些makefile規則的外觀。上面沒有足夠的信息繼續。但是如果你不能發佈內容,請考慮運行'make -n'並解析它的輸出。 – 2011-04-19 13:31:18