Make 3.82 - 将多个参数行写入文件

问题描述 投票:0回答:1

我需要通过 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 中

makefile sh
1个回答
0
投票

你想做的事情在make中很难做到; make 并不是真正的设计方式。您应该考虑创建一个单独的 shell 脚本来为您处理这个问题并使用它。

但是,这是可以做到的。但是,您无法在 make 变量中创建内容,因为 make 不会按照您希望的方式处理换行符。你必须做这样的事情:

param1 = param1.h 
param2 = param2.h

file.c: Makefile
        ( ${foreach P,param1 param2,echo '#include <$($P)>' && } : ) > $@
© www.soinside.com 2019 - 2024. All rights reserved.