私の質問を理解するために Makefile を見ています。私の質問は、コンパイル自体が使用するソースファイルを決定する方法とまったく同じ名前の fortran ソースファイルを持つコンパイルに含まれる 2 つのディレクトリがあることです。私の場合、2 つのディレクトリは /dir1/ と /dir2/ です。どちらにも test.F90 ファイルという名前の Fortran ファイルがあり、両方のディレクトリがインクルード ディレクトリとして含まれています。次に、なぜ /dir2/test.F90 ではなく /dir1/test.F90 がコンパイルされるのか。Makefile コードの抜粋は次のとおりです。
SOURCES := $(shell cat Srcfiles)
OBJS := $(addsuffix .o, $(basename $(SOURCES)))
.F90.o:
$(FC) -c $(INCLDIR) $(INCS) $(FFLAGS) $(FREEFLAGS) $<
実際のコンパイルの一部は次のようになります。
mpif90 -c -I/dir1/ -I/dir2 ... /dir1/test.F90
Srcfiles には、すべての Fortran ファイルのリストがあります。
test.F90
test1.F90
...
ファイルディレクトリを次のようにリストする Filepath と呼ばれるファイルもあります。
/dir1/
/dir2/
/dir3/
私の質問に関連すると思われる限りの情報を提供します。質問を解決するにはどうすればよいか教えていただけますか?