Build “保持干净”是否应删除子模块和第三方软件包?

Build “保持干净”是否应删除子模块和第三方软件包?,build,makefile,Build,Makefile,我对makefile还不太熟悉。我不确定makeclean的标准语义。以下哪项是正确的 make clean应删除从存储库中的其他文件生成的所有文件。例如: clean: @rm -rf dist clean: @rm -rf dist @rm -rf node_modules # remove npm packages installed by `setup` make clean应删除从存储库中的其他文件生成的所有文件,或由make setup添加的所有文件,

我对makefile还不太熟悉。我不确定
makeclean
的标准语义。以下哪项是正确的

  • make clean
    应删除从存储库中的其他文件生成的所有文件。
    例如:

    clean:
        @rm -rf dist
    
    clean:
        @rm -rf dist
        @rm -rf node_modules # remove npm packages installed by `setup`
    
  • make clean
    应删除从存储库中的其他文件生成的所有文件,或由
    make setup添加的所有文件,例如:

    clean:
        @rm -rf dist
    
    clean:
        @rm -rf dist
        @rm -rf node_modules # remove npm packages installed by `setup`
    
从另一个文件构建一个文件通常不需要Internet连接,但获取第三方依赖项通常需要。这表明
makeclean
不应删除由
makesetup
安装的第三方依赖项。但是,如果您一直在修改第三方依赖项的源代码,那么,也许清除这些更改正是您所期望的
makeclean
所要做的


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

通常,您的
make clean
的功能取决于您自己。你引用的规则只是惯例

但是,调用
makeclean
基本上有以下原因:

  • 完成所有操作后,释放尽可能多的磁盘空间
  • 允许重新开始,以防出现问题(例如,时间戳),并且增量构建不再工作

关于第一种情况,根据“一切都已完成”的语义,您的两种选择都是合理的。但是,我更喜欢
进行卸载
来重做(一切)安装。

我喜欢让
进行卸载
撤消
进行设置
,让
进行清理
撤消
进行