shell - 如何使 $(eval $(shell ...)) 在 GNU make 中工作

标签 shell makefile

make 语法以换行符分隔,但 $(shell ...) 用空格替换换行符。那么最丑陋的方法是什么

$(eval $(shell program-that-emits-makefile-fragment))

这并不像人们喜欢的那样工作。

最佳答案

这可能会满足您的想法:

makefile_fragment:
  program-that-emits-makefile-fragment > $@

include makefile_fragment

够了吗?如果需要,您还可以使用其他技巧,例如让规则围绕程序生成的内容添加上下文,或者通过 sed 将输出管道化以将其归入一行,然后用反斜杠将其解析出来。

关于shell - 如何使 $(eval $(shell ...)) 在 GNU make 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3524726/

相关文章:

c++ - 生成文件/nmake : strip out folder bits from the file list

windows - 如何在 Teamcity Windows 代理上运行 shell 脚本?

macos - 需要在 Mac 终端中使用 Makefile 的帮助

optimization - Makefile分析

linux - 如何使用带引号的字段(可能包含分隔符)对 CSV 进行排序

linux - 在远程 Linux 机器上编译 C++ - "clock skew detected"警告

c - 从应用程序 makefile 运行库 makefile

shell - 在 shell 脚本中使用 Puppet 事实 (Facter)

bash - 如何在 bash 脚本中获取以毫秒为单位的耗时?

shell - 如何在 unix shell 脚本/VI 中键入 ^A