应该`make clean`删除子模块和第三方包吗?

时间:2013-02-23 21:12:56

标签: build makefile

我是Makefiles的新手。我不确定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`
    

从另一个文件构建一个文件通常不需要Internet连接,但通常会获取第三方依赖项。这表明make clean不应删除make setup安装的第三方依赖项。但是,如果一个人一直在修改第三方依赖关系的来源,那么可能正在消除这些变化正是人们期望make clean做的事情。

换句话说,应make clean“撤消”make,还是撤消make setup && make

1 个答案:

答案 0 :(得分:1)

一般情况下,由您make clean完成的取决于您。您引用的规则只是约定。

但是,基本上有理由调用make clean

  • 完成所有操作后,尽可能多地释放磁盘空间。
  • 如果某些内容被搞砸了(例如,时间戳),则允许重新开始,并且增量构建不再起作用。

关于第一种情况,根据“一切都已完成”的语义,你的两种选择都是合理的。但是,我更希望make uninstall重做(一切)安装。