Makefile for Fortran gives this error: make: don't know how to make datastructures.o

Makefile for Fortran gives this error: make: don't know how to make datastructures.o

我正在尝试为 Fortran 准备我的第一个 makefile:

到目前为止,我的代码分为三个对象模块。

这是我的 makefile:

# Variables

OBJS=datastructures.o global.o main.o
FC=/usr/local/bin/gfortran8
FFLAGS=-Wl,-rpath=/usr/local/lib/gcc8

# Makefile

test1: $(OBJS) 
        $(FC) -o mktpro_a $(FFLAGS) $(OBJS)

%.o: %.f90
        $(FC) -c $(FFLAGS) $<

clean:
        rm $(OBJS)
        rm test1

但是我收到以下错误:

$ make test1
make: don't know how to make datastructures.o. Stop
make: stopped in /usr/home/user/marketprofile

我正在使用 FreeBSD12 和 gcc8 (gfortran8)

而不是

%.o: %.f90
    $(FC) -c $(FFLAGS) $<

改为

.f90.o:
    $(FC) -c $(FFLAGS) $<

您可能也需要显式输出(我对这个编译器不熟悉):

.f90.o:
    $(FC) -c $(FFLAGS) -o $@ $<

如果它能帮助其他人,这似乎是在 FreeBSD 12 make(似乎是 PMake)中实现它的方法。

.SUFFIXES       : .o .f90
.f90.o          :
        $(FC) $(FFLAGS) -c $(.IMPSRC)

更多信息在这里:ftp.netbsd.org/pub/NetBSD/misc/lite2-docs/psd/12.make.ps.gz