我是makefiles的新手。我当前的makefile如下所示:
FC=ifort
FFLAGS=-c -module mod/
LDFLAGS=
SOURCES=$(wildcard src/*.f90)
OBJECTS=$(addprefix obj/, $(notdir $(SOURCES:.f90=.o)))
EXECUTABLE=RUN
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(FC) $(LDFLAGS) $^ -o $@
obj/%.o: src/%.f90
$(FC) $(FFLAGS) $< -o $@
问题是我的模块文件的名称以s和p开头,它们通常在列表的末尾编译,这会导致我在这些模块文件中有一些更改时出现问题。我想知道首先编译这些模块文件的最简单方法是什么?是的我可以将我的模块文件目录更改为mod /并设置变量:
MODULES=$(wildcard mod/*.f90)
MODULE_OBJECTS=$(addprefix obj/, $(notdir $(MODULES: .f90=o)))
然后添加
$(MODULE_OBJECTS):$(MODULES)
$(FC) $(FFLAGS) $< -O $@
但是,还有其他方法吗?