Fortran程序的Makefile文件

发布时间 2023-05-20 18:24:18作者: 惊小呆520

 

 

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