我需要从同一组源文件中构建4个目标。 唯一改变的是编译时的几个符号定义(-D DEBUG_OUTPUT,-D TIME_OUTPUT)
如何在GNU makefile中实现它?
我想过运行一个gnu make'for loop'并且每次都重新声明$(SYMBOLS)和$(TARGETNAME),然后在for循环中运行make $(TARGETNAME)。
这可能吗? 有没有更好的方法(最好使用gnu make而不是automake,或其他一些变体)
谢谢你, NASS
答案 0 :(得分:0)
这个怎么样:
foo: DEBUG_OUTPUT=yes
foo: TIME_OUTPUT=2
bar: DEBUG_OUTPUT=no
bar: TIME_OUTPUT=3
baz: DEBUG_OUTPUT=maybe
baz: TIME_OUTPUT=5
qux: DEBUG_OUTPUT=dunno
qux: TIME_OUTPUT=7
TARGETS = foo bar baz qux
all: $(TARGETS)
$(TARGETS): $(SOURCE_FILES)
@echo compile $^ into $@ using $(DEBUG_OUTPUT) and $(TIME_OUTPUT)