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

boo*_*toT 2 makefile gnu-make

经过一番挣扎之后,我写下了以下模式规则

%.o : $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90)))
        $(COMPILE) $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90))) -o $@
Run Code Online (Sandbox Code Playgroud)

SRCDIR是找到相应源代码文件的位置。目标文件和源代码文件位于单独的目录中,并且目标文件名包含其路径。因此,对于每个目标文件,源代码文件名都是通过文本替换获得的,并以开头SRCDIR

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

谢谢。

Bet*_*eta 6

您的问题尚不清楚,但是也许这是您要查找的内容:

$(OBJDIR)/%.o: $(SRCDIR)/%.f90
    $(COMPILE) $< -o $@
Run Code Online (Sandbox Code Playgroud)