在makefile中,如何使用自动变量首先编译模块文件?

时间:2016-02-20 00:23:45

标签: makefile fortran

我是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 $@

但是,还有其他方法吗?

0 个答案:

没有答案