2011-08-17 34 views
4

我有一個makefile,它使用$(info)函數調用向用戶顯示一些信息。但是,makefile還包含通過gcc -M更新的自動生成的依賴項文件。只要這種依賴關係需要重新編譯,GNU Make會再次重新編譯所有內容,從而複製$(info)和類似調用生成的輸出。

有沒有辦法確定GNU Make是否正在makefile中執行第一次或第二次這樣的過程,以避免重複$(info)行?

+1

聽起來就像你在編譯之前產生依賴關係,這實際上是不必要的。 http://stackoverflow.com/questions/7353426/automatic-header-dependencies-with-gmake/7358961#7358961 –

回答

5

我剛發現它自己:MAKE_RESTARTS變量是定義如果GMake已在上述情況下重新啓動。例如,構造:

ifndef MAKE_RESTARTS 
    $(info Hello!) 
endif 

將僅在Make的第一個這樣的過程中顯示前面提到的消息。