GNU Make没有shell的文件写入,没有换行符

时间:2015-08-21 04:51:09

标签: makefile gnu-make gnu

我试图找到一种方法来编写一个几乎完全是纯make的Makefile,以便能够轻松地将其移植到Windows而不依赖于特定的扩展。希望能够在cmd.exe中执行。

我需要写一个由空格分隔的5个值的文件,所以我做了这样的事情:

recipe: $(TARGETS)
    $(foreach target,$^,$(file >> file.txt,$(shell $(target))))

问题是$(file ...)的每次执行都会为文件添加一个新行,无论我是否过滤掉行,似乎都是在执行函数后完成的。

有没有办法在配方中的变量中累积$(target)的执行结果,之后只需使用$(file ...)输出连接在一起的所有内容?

1 个答案:

答案 0 :(得分:1)

我不知道“没有shell”是什么意思,因为你在食谱中明确使用了$(shell ...)。无论如何没有现实生活中的例子我们可以尝试我无法确定,但你不能只是颠倒fileforeach函数的顺序吗?

recipe: $(TARGETS)
        $(file >>file.txt,$(foreach target,$^,$(shell $(target))))
相关问题