9

我正在尝试挖掘一个基于自动工具的项目,实际上有点大。我正在处理它的一小部分,一个子目录。我需要在这个小部分中不断添加/移动/删除文件和目录。

每次在顶层运行 ./configure 不仅耗时,而且会导致整个对象树变得无效(对这些术语感到抱歉,但我对此有点陌生)。所以我想出了如何从 Makefile.am 重新生成 Makefile.in(通过运行 automake path/to/my/part),我想出了如何在构建树中从 Makefile.in 重新生成 Makefile(通过运行 ./config.status路径/到/我/部分)。但是我仍然无法弄清楚:如何重新生成所有依赖文件(构建树中每个子目录中的.deps/*.Plo)。确实,再次运行configure 解决了这个问题。所以,我的问题是:如何在再次运行 configure 的情况下重新生成依赖文件?提前致谢。

4

1 回答 1

10

也许答案有点晚了……

我假设您已通过问题中列出的命令清理path/to/my/part并重新生成。Makefile

然后执行

rm .deps/*

删除旧的依赖项和

grep "^include " Makefile | sed -e 's/^include .\///;s/\$(DEPDIR)/.deps/' | xargs touch

查询 Makefile 的依赖关系并生成空的伪造文件。现在

make

应该编译您的代码并重新生成依赖项作为副作用。

注意:我假设您的DEPDIR被设置为默认值 ( .deps) 并且include您的Makefile.am. 但是,改变它应该很简单。

于 2010-02-10T07:49:04.450 回答