2011-04-19 30 views
0

我有源代碼樹,其中包含大約300個Makefiles。這些Makefiles將源文件和目標文件編譯爲多個固件映像。Makefile中的源代碼和二進制文件之間的關係

我想要的是得到這樣的列表:

<firmware image name> : <list of object files> : <list of source files> 

是否有任何工具?

+0

我敢肯定,有一套shell魔法(使用grep和sed,如果沒有其他),可以做到這一點。但是爲了給出建議,我們可能需要查看一些makefile規則的外觀。上面沒有足夠的信息繼續。但是如果你不能發佈內容,請考慮運行'make -n'並解析它的輸出。 – 2011-04-19 13:31:18

回答

1

那麼,如果你正在拍攝的是獲取將建立的圖像列表,你可以試着玩-n-W標誌。

-n告訴make做一個幹運行。它將打印出它將執行的所有命令,但不會真正執行它們。如果您在make clean之後執行此操作,它可能會提供您想要的信息。也許不完全是你想要的形式,但這就是sed和awk的用途。

-W file告訴make假裝file被修改,並做它的事情。如果make clean過多,這可能會有所幫助。

+0

問題是我無法啓動make,因爲它是在獨立的生成器上運行的特殊補丁版本,我無法訪問 – 2011-04-19 14:11:48

+1

@Alexander,請稍等。你不能運行Make?你應該在你的問題中提到 - 它改變了很多問題。你可以修改makefile嗎? – Beta 2011-04-19 16:11:37

+0

@Alexander - 運行時是否生成日誌?也許你可以使用這些輸出。 – 2011-04-19 16:14:39

1

不是魔法。 Make不知道什麼是資源,什麼是對象。它只知道它們之間有各種依賴關係的目標。你可以嘗試後處理-p

+0

看起來像make -p無法處理Makefile依賴關係。 – 2011-04-19 14:15:50

相關問題