我的构建过程使用了大量第三方实用程序。其中许多实用程序需要使用ASCII文本文件进行配置。我想从Makefile生成这些短文本文件。我知道如何使用echo
命令一次写一行文本文件然后重定向输出的唯一方法是这样:
foo.script: bar.prj
touch $@
echo run >>$@
echo -input bar.prj >>$@
echo -output baz.out >>$@
这有点难看。更糟糕的是,我正在从Python程序生成Makefile。所以实际的代码看起来更像是这样:
TEMPLATE="""{target}: {input}
touch $@
echo run >>$@
echo -input {input} >>$@
echo -output {output} >>%@"""
TEMPLATE.format(target='foo.script',input='bar.prj',output='baz.out')
这非常难以阅读和维护。有谁知道更好的方法吗?
解答:
不要从Make生成文本。调用用一种语言编写的脚本,以便更容易生成文本。
答案 0 :(得分:1)
如果你在构建过程中已经使用了python,你可以编写一个小的python脚本,它接受一个模板文件,一个目标文件和一些参数,并从模板文件中生成目标文件,并填入适当的参数英寸