我有以下GNU makefile:
.PHONY a b c d
a: b c
b: d
c: d
d:
echo HI
我希望目标'd'能够运行两次 - 因为它被b和amp指定为依赖关系。 C。不幸的是,目标'd'只会被执行一次。运行make的输出将只是'HI',而不是'HI HI'。
我该如何解决这个问题?
谢谢!
要澄清,目标是这样的:
subdirs = a b c
build: x y
x: target=build
x: $(subdirs)
y: target=prepare
y: $(subdirs)
$(subdirs):
$(make) -f $@/makefile $(target)
答案 0 :(得分:3)
build: x y
x: target=build
y: target=prepare
x y:
echo hi $(target) $@
touch $@
另见GNU Makefile rule generating a few targets from a single source file,因为它是对这个问题的答案的答案。
答案 1 :(得分:1)
你是否想要做这样的事情:
.PHONY: a b c
define print-hi
@echo HI
endef
a: b c
b:
$(print-hi)
c:
$(print-hi)