【发布时间】:2017-07-19 14:16:30
【问题描述】:
我想要一个替代 Make 的方法,我可以轻松地使用一些 Python 代码来生成一些中间文件。
我遇到了声称与 Make 相似的 Scons。我想将这种 Makefile 翻译成 Scons,其中对 Python 的调用将在 Scons 本身中完成。
.PHONY all clean mrproper
all: out
A=$(wildcard *.a)
B=$(A:.b=.a)
C=$(B:.c=.b)
D=$(wildcard *.d)
C=$(D:.c=.d)
-include $(wildcard *.dep)
*.b : *.a
python -mfoo a2b $< -o $@ -M $@.dep
*.c : *.b
python -mfoo b2c $< -o $@
*.e : *.d
python -mfoo d2e $< -o $@
out: $(E) $(C)
python -mfoo out $^ -o $@
clean:
$(RM) $(B) $(C) $(E)
mrproper: clean
$(RM) out *.dep
可以这样做吗?我对可行的解决方案不感兴趣,只对我需要开始的构建块感兴趣。
我缺少的是 Scons 提供了诸如
之类的助手env.Program(target = 'helloworld', source = ["helloworld.c"])
适用于标准扩展(*.c、*.s、...)。不幸的是我不想做一个程序,我想指定配方。换句话说,我正在寻找更像这样的东西:
env.append(env.Recipe(target='%.b', deps=['out/%.a', 'out'], builder=foo_a2b))
【问题讨论】: