我的Makefile.am包含一个文件(带有各种定义的变量),例如:
include make.config
...
问题是这个文件又是由一个工具(即config.generator.sh)基于一些输入文件(即input.dat)生成的。直接和错误的想法是添加一个规则来生成make.config:
make.config : input.dat
config.generator.sh input.dat > make.config
include make.config
...
尽管此内容在automake没有automake. 该make.config文件automake在我什至有机会执行之前就被包含make(并且由于文件尚未生成而失败):
automake: cannot open < make.config: No such file or directory
有没有办法将include指令make的效果推迟到运行(可能通过使用另一个指令)?
可能有一种方法可以在生成任何生成文件之前简单地运行任意命令(即AC_CONFIG_COMMANDS*)。但问题更复杂,因为config.generator.sh它应该使用在同一构建过程中又生成的可执行文件(因此存在逻辑上必须由来自同一项目的 makefile 管理的依赖链)。文档只是确认了逻辑而没有提供替代方案。