次の質問があります。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'.
このメイクファイルを正しく記述するにはどうすればよいですか?