【发布时间】:2018-03-28 07:23:24
【问题描述】:
我正在制作一个需要能够执行以下操作的 Makefile:
来自用户给定的变量,SRVS,包含文件名,例如,
SRVS=Test1.java,test2.c,test3.c,test4.java,test5.c
生成具有特定扩展名的所有文件的列表,供 foreach 循环使用。 此列表不应再包含扩展名。 目前,我可以解析所有文件并将其放入可用列表中,但无法为扩展名这样做。 我有什么:
$(foreach SRV, $(shell echo $(SRVS) | tr ',' ' '), \
CLASSPATH=$(SELF)/default_runtime javac $(UJ_DIR)/services/java/$(SRV).java && \
find $(UJ_DIR)/services/java/ -iname "$(SRV).class" -type f >> $(SELF)/files && \
) true
它将获取 SRVS 列表并生成可供 foreach 使用的列表及其中的代码。例如,上面的示例将导致 foreach 循环使用“test1 test2 test3 test4 test5”
我现在想指定扩展名,例如 .c,以便上面的示例生成“test2 test3 test5”。 你能帮帮我吗?
【问题讨论】:
-
不要使用逗号分隔名称。
make使用空格,所以使用空格作为分隔符。
标签: makefile