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

Pattern rule with files in different directories?

我有以下经过一番努力后写的模式规则

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

SRCDIR就是找到相应的源代码文件的地方。目标文件和源代码文件位于不同的目录中,目标文件名包含它们的路径。因此,对于每个目标文件,源代码文件名是通过文本替换获得的,并以 SRCDIR.

为前缀

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

谢谢。

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

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