这有可能吗?

更新:我需要这个,因为我从动态和静态数据创建了一个文件。

用例:我有一个测试目录。每个C文件都生成一个测试可执行文件。用

SRCS = $(wildcard [a-z]*.c)

我可以根据需要添加新测试,并使它们能够找到新测试,进行编译,运行和验证。我也使用git。我希望.gitignore包含可执行文件。

所以那里。如何创建.gitignore并包含静态数据,即我要忽略的文件(*.odepend)以及可执行文件?

最佳答案

另一个GNU Make解决方案。

您可以使用defineexport命令执行以下操作:

define GITIGNOREDS
*.o
depend
endef

SRCS = $(wildcard [a-z]*.c)
EXES = $(SRCS:.c=)


export GITIGNOREDS
.gitignore: $(SRCS)
    echo $(EXES) | sed 's/ /\n/g' > $@
    echo "$$GITIGNOREDS" >> $@

不过,您必须注意在define块内进行扩展(即$(x))。

关于makefile - Makefile中的Heredoc?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5873025/

10-09 08:32