我正在尝试挖掘一个基于autotools的项目,实际上有点大.我正在研究它的一小部分,一个子目录.我需要在这个小部分内不断添加/移动/删除文件和目录.
每次在顶级运行./configure不仅耗费时间,而且会导致整个对象树变得无效(抱歉这些条款,但我对此有点新意).所以我想出了如何从Makefile.am重新生成Makefile.in(通过运行automake path /到/ my/part),我想出了如何从构建树中的Makefile.in重新生成Makefile(通过运行./config.status)路径/到/我/部分).但是我仍然无法弄清楚:如何重新生成所有依赖项文件(.deps/*.在构建树中的每个子目录中的Plo).实际上,再次运行configure可以解决问题.所以,我的问题是:如何重新生成依赖文件而不再运行configure?提前致谢.
也许答案有点晚了......
我假设您通过问题中列出的命令清理path/to/my/part并重新生成Makefile.
然后执行
rm .deps/*
Run Code Online (Sandbox Code Playgroud)
删除旧的依赖项和
grep "^include " Makefile | sed -e 's/^include .\///;s/\$(DEPDIR)/.deps/' | xargs touch
Run Code Online (Sandbox Code Playgroud)
查询Makefile的依赖项并生成空的虚假文件.现在
make
Run Code Online (Sandbox Code Playgroud)
应编译您的代码并重新生成依赖项作为副作用.
注意:我假设您DEPDIR要将其设置为默认值(.deps)并且include您的内容中没有其他指令Makefile.am.但是,改变这一点应该很简单.