在makfile的一个地方我需要
a.ml a.mli b.ml b.mli c.ml c.mli等。
我是另一个地方,我需要
a.mli b.mli c.mli等。
没有重复,我可以定义两个单独的,相等长度的列表(一个.ml文件和一个.mli文件),然后定义另一个列表作为两个列表的交错?
事实上,由于总有一个.ml和一个相应的.mli,我可以从一个没有扩展名的文件名列表中生成所有这些吗(即b等)?
答案 0 :(得分:2)
有几种方法可以做到这一点。这可能是最常见的:
LIST := a b c
MLLIST := $(addsuffix .ml,$(LIST))
MLILIST := $(addsuffix .mli,$(LIST))
both = $(1).ml $(1).mli
BOTHLIST := $(foreach x,$(LIST),$(call both,$(x)))
答案 1 :(得分:1)
如果您获得了制作标准库的副本:http://gmsl.sourceforge.net/,您可以使用pairmap
功能,我相信您正在寻找的功能。