我需要通过 make 将多个参数行写入一个文件。我尝试过使用这个:
param1 = param1.h
param2 = param2.h
define multiline_param
#include <$(1)>
#include <$(2)>
endef
echo "$$(call multiline_param,$(param1),$(param2))" > file.c
但它写了一个空行。我怎样才能让它发挥作用?我无法使用 file 函数,因为它不包含在 make 3.82 中
你想做的事情在make中很难做到; make 并不是真正的设计方式。您应该考虑创建一个单独的 shell 脚本来为您处理这个问题并使用它。
但是,这是可以做到的。但是,您无法在 make 变量中创建内容,因为 make 不会按照您希望的方式处理换行符。你必须做这样的事情:
param1 = param1.h
param2 = param2.h
file.c: Makefile
( ${foreach P,param1 param2,echo '#include <$($P)>' && } : ) > $@