GNU make:将$(FILE)函数与外部工具混合使用 [英] GNU make: mixing the $(file) function with external tools

查看:20
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆