模式规则与不同目录中的文件?

时间:2016-06-29 21:04:53

标签: makefile gnu-make

我有一些我在经过一番努力后写的模式规则

%.o : $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90)))
        $(COMPILE) $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90))) -o $@

SRCDIR是找到相应源代码文件的位置。目标文件和源代码文件位于不同的目录中,目标文件名包含其路径。因此,对于每个目标文件,源代码文件名是通过文本替换获得的,并以SRCDIR为前缀。

我怎样才能更简洁地做到这一点?

谢谢。

1 个答案:

答案 0 :(得分:5)

你的问题有点不清楚,但也许这就是你正在寻找的:

$(OBJDIR)/%.o: $(SRCDIR)/%.f90
    $(COMPILE) $< -o $@