Makefile:foreach中的条件

时间:2017-04-30 08:23:51

标签: makefile

是否可以在foreach循环中添加多个命令?我试图添加一个简单的if-else条件,但遗憾的是我无法找到一个很好的解释。

TARGET_LIBS中的Foreach库,我想检查lib是否包含单词“test”。如果是,请调用TEST_COPY_RULE。否则,请致电LIB_COPY_RULE。

谢谢

1 个答案:

答案 0 :(得分:1)

这个Makefile积极回答你的问题:

TARGET_LIBS := a testb ctest d e
TEST_COPY_RULE = $(info TEST_COPY $1)
LIB_COPY_RULE = $(info LIB_COPY $1)
IS_TEST = $(findstring test, $L)

$(foreach L, $(TARGET_LIBS), $(if $(call IS_TEST,$L),$(call TEST_COPY_RULE, $L),$(call LIB_COPY_RULE, $L)) )