我有以下问题。我有一组 Fortran90 源文件,其中大部分包含模块。我必须用它们构建一个静态库(.a),并且我使用了以下 Makefile。
.SUFFIXES: .o .c .f90 .f .mod
DEPSF = tt_f90m, bt
include Makefile.in #Contains compiler flags (CC, FORT, etc.)
OBJS = $(DEPSF:,=.o).o
mytt.a: $(OBJS)
ar rc mytt.a $(OBJS)
.f90.o:
$(FORT) -c $<
它工作正常,但它有一个烦人的特性:如果我编辑任何源文件,mytt.a 目标不会重建。只有当我删除所有 .o 和 .mod 文件时,它才会发生。make -d 的输出
如下:
....
Considering target file `tt_f90m.o'.
....
Found an implicit rule for `tt_f90m.o'.
Considering target file `tt_f90m.mod'.
Looking for an implicit rule for `tt_f90m.mod'.
....
No implicit rule found for `tt_f90m.mod'.
Finished prerequisites of target file `tt_f90m.mod'.
No need to remake target `tt_f90m.mod'.
Finished prerequisites of target file `tt_f90m.o'.
Prerequisite `tt_f90m.mod' is older than target `tt_f90m.o'.
No need to remake target `tt_f90m.o'.
我怎样才能正确编写这个makefile?