Makefile是否应该在'make clean'上删除自己?

时间:2013-08-01 19:32:51

标签: makefile posix configure

我有一个configure脚本,用于编写Makefile(来自Makefile.in)。 clean目标当前删除了从makefile中创建的所有内容,但它不会删除makefile本身。 (我可能不会使用Autotools)

我的问题是:makefile是否也会自行删除,要求开发人员再次运行./configure

一方面,我希望清洁目标正确清理源树。但是,另一方面,我希望能够在提交之前输入make clean test来检查一切是否正常工作;再次运行配置脚本似乎在某种程度上很奇怪。

3 个答案:

答案 0 :(得分:6)

这是一个风格问题,而不是技术问题。获得答案的最佳位置是automake manual,它会告诉您:

`make clean'
     Erase from the build tree the files built by `make all'.

`make distclean'
     Additionally erase anything `./configure' created.

所以,不,make clean不应该删除Makefilemake distclean应删除Makefile,因为它是configure而不是make all创建的。

autotools最棒的一点是它们一致标准。最好不要通过藐视这些标准来刺激用户。

答案 1 :(得分:2)

我可能有一个单独的目标。因此,clean会让他们能够重新构建,但distcleanrealcleanallclean或某些内容会强制进行重新配置。您可以看到哪个autotools清理目标(如果有)具有类似的行为。

答案 2 :(得分:1)

清理目标的目的通常是删除临时文件,因此您可以从头开始编译。查看更多here

例如,一个常见的makefile目标是“clean”,它通常执行在编译器之后清理的操作 - 删除目标文件和生成的可执行文件。