2013-02-23 95 views
0

我是Makefiles的新手。我不確定make clean的標準語義。以下哪項是正確的?應該`make clean`移除子模塊和第三方軟件包?

  • make clean應該刪除從庫中的其他文件分別建的所有文件。例如:

    clean: 
        @rm -rf dist 
    
  • make clean應刪除其他文件分別建在倉庫中的所有文件,或通過make setup加入。例如:

    clean: 
        @rm -rf dist 
        @rm -rf node_modules # remove npm packages installed by `setup` 
    

建設一個文件從另一個一般不需要互聯網連接,但獲取第三方依賴經常做。這表明make clean不應刪除由make setup安裝的第三方依賴項。但是,如果有人正在修改第三方依賴關係的來源,那麼可能吹掉這些更改正是make clean所要做的。

換言之,應該make clean「撤消」make,還是應該撤消make setup && make

回答

1

總的來說,這取決於您的make clean。你引用的規則只是慣例。

不過,也有基本上的原因調用make clean

  • 免費盡可能的磁盤空間,一切都做了。
  • 如果發生某些事情(例如時間戳)並且增量構建不再有效,請允許重新開始。

關於第一種情況,根據「一切都已完成」的語義,您的替代方案可能是合理的。不過,我寧願make uninstall重做(安裝的所有內容)。

+0

我喜歡'make uninstall'撤銷'make setup',留下'make clean'來撤消'make'的想法。 – davidchambers 2013-02-23 22:01:30