qqqq
# 获取文件夹中所有.f90文件列表 notdir把展开的文件去除掉路径信息 SRCS_F90 = $(wildcard *.f90) SRCS_F = $(wildcard ./*.f) SRCS_DIR = $(notdir $(SRCS_F)) # 替换.f90后缀为.o后缀 得到.o文件列表 OBJS_F90 = $(patsubst %.f90,%.o,$(SRCS_F90)) OBJS_F = $(patsubst %.f,%.o,$(SRCS_DIR)) # all: # @echo $(SRCS_F) # @echo $(SRCS_DIR) # module依赖文件 MOD_OBJS = variable.o mpi_variable.o mod_split_funs.o MOD_SRCS = variable.f90 mpi_variable.f90 mod_split_funs.f90 # 定义编译器变量 F90= mpif90 #-O0 FC = mpif90 FFLAG = -c CFLAG = -c # 定义目标变量 EXE = main # $^表示所有依赖文件 $@--目标文件,$<第一个依赖文件 $(EXE): $(OBJS_F90) $(OBJS_F) $(F90) -o $@ $^ # $(FC) -o $(EXE) $(OBJS) # %.o %.f90 %.mod 表示任意文件 $(MOD_OBJS): $(MOD_SRCS) $(F90) -c $(MOD_SRCS) %.o: %.f $(MOD_OBJS) $(FC) -c $< %.o: %.f90 $(MOD_OBJS) $(F90) -c $< # *.o 表示所有.o文件 clean: rm -f *.o *.mod
aaaa