2013-10-30 59 views
2

GNU Make是否有任何方法在Makefile本身中包含參數make?具體來說,如果--check-symlink-times參數總是適用於給定的Makefile,那麼有什麼方法可以在Makefile中進行註釋?而不是打電話在Makefile中包含參數

$ make --check-symlink-times 

只要調用make本身並讓Makefile指定一些參數就好了。

$ make 

回答

1

應該很容易。只要把它的規則,在最高層是這樣的:

all: 
    make --check-symlink-times rest 

及以下的地方做真正的任務規則rest

+0

如果不希望強制使用有限數量的「輸入」目標,該怎麼辦?如果你只做「全部」,你的解決方案就能正常工作,但如果休息取決於多個目標,我希望能夠獨立調用那些添加了標誌的目標? – kgraney

+2

@ kgraney:將'all'改爲'.DEFAULT all'和'rest'爲'$(MAKECMDGOALS)'。而且你最好加上'-f'來指定一個單獨的makefile,否則你會以無限循環結束。 – Idelic

0

我能想到的唯一的辦法就是有第二個makefile文件makefile.inner或相似,並使用-f調用從另一個或把你的源在一個子目錄,並使用-C,這往往是一個好主意,反正

2

我不知道這個選項是否特別適用於這個機制(我相信有些不會在3.81中)但是GNU make確實支持這個概念,使用MAKEFLAGS,如手冊的this section所示。

1

您可以在makefile中設置MAKEFLAGS

MAKEFLAGS := --check-symlink-times 

這將啓用檢查此生成文件的符號鏈接的ctime。這似乎只適用於GNU make的更新版本,根據我的測試,它適用於版本4.1,但不適用於版本3.81