我有一个configure
脚本,用于编写Makefile(来自Makefile.in
)。 clean
目标当前删除了从makefile中创建的所有内容,但它不会删除makefile本身。 (我可能不会使用Autotools)
我的问题是:makefile是否也会自行删除,要求开发人员再次运行./configure
?
一方面,我希望清洁目标正确清理源树。但是,另一方面,我希望能够在提交之前输入make clean test
来检查一切是否正常工作;再次运行配置脚本似乎在某种程度上很奇怪。
答案 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
不应该删除Makefile
。 make distclean
应删除Makefile
,因为它是configure
而不是make all
创建的。
autotools最棒的一点是它们一致和标准。最好不要通过藐视这些标准来刺激用户。
答案 1 :(得分:2)
我可能有一个单独的目标。因此,clean
会让他们能够重新构建,但distclean
或realclean
或allclean
或某些内容会强制进行重新配置。您可以看到哪个autotools清理目标(如果有)具有类似的行为。
答案 2 :(得分:1)
清理目标的目的通常是删除临时文件,因此您可以从头开始编译。查看更多here
例如,一个常见的makefile目标是“clean”,它通常执行在编译器之后清理的操作 - 删除目标文件和生成的可执行文件。