GNU make:将$(FILE)函数与外部工具混合使用 [英] GNU make: mixing the $(file) function with external tools
本文介绍了GNU make:将$(FILE)函数与外部工具混合使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下示例直接来自GNU制作手册:
program: $(OBJECTS)
$(file >$@.in,$^)
$(CMD) $(CMDFLAGS) @$@.in
@rm $@.in
这非常有效。但是,如果我颠倒$(FILE)和外部工具的顺序,行为仍然是相同的:首先执行$(FILE),然后才执行外部工具。
是否可以在配方中调用外部工具,并在该工具成功完成后,使用$(FILE)处理日志并创建进一步的文件?
外部工具是一个代码生成器,它生成一组未知的文件。食谱应该解析日志文件并创建make Include文件。适用于ECHO/$(外壳),但受系统命令行长度的限制。使用单独的规则当然可以,但可以在同一食谱中完成吗?推荐答案
GNU make总是在开始调用配方中的任何命令之前,预先展开整个配方中的所有变量和函数。因此,您不能让$(file ...)
函数(例如)对同一配方中运行某个命令的结果进行操作。
因此,对您的问题的简短回答是不,它不可能在一个食谱中以您想要的方式完成。
这篇关于GNU make:将$(FILE)函数与外部工具混合使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文