如何使用Makefile创建文件

时间:2010-04-19 13:38:58

标签: makefile

我想从Makefile创建一个.c文件。该C文件的内容如下:

char *variable1 = $(VAR1_FROM_MAKEFILE);
char *variable2 = $(VAR2_FROM_MAKEFILE);

有可能吗?

提前致谢

2 个答案:

答案 0 :(得分:8)

是的,您可以使用shell重定向将变量写入源文件:

VAR1=foobar
all:
    @echo "char *variable1 = \"$(VAR1)\"" > generated.c

(@符号在这里没有显示make的echo命令。)


编辑:我不知道你的意图是什么,但将Makefile变量作为宏传递给编译器可能更简单:

VAR="toco.conf"
CFLAGS = -DVAR='$(VAR)'
all:
    gcc  $(CFLAGS) prog.c

使用prog.c:

#include <stdio.h>

int main(int ac, char **av)
{
    printf("%s\n", VAR);
    exit(0);
}

答案 1 :(得分:6)

make的文件选项怎么样?

对于Gnu Make: https://www.gnu.org/software/make/manual/html_node/File-Function.html