作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试修改我的 Makefile 以便我可以输入任何一个
“制作 gnu”或“制作英特尔”
它会编译一切,唯一的区别是
FC = gfortran-4.8 或 ifort,和FFLAGS = gfortran 或 ifort 的适当标志。
有人可以帮我解决目前的问题吗?
SOURCES = a1.f a2.f a3.f
OBJECTS = $(SOURCES:.f=.o)
TARGET = myexececutable.x
gnu: GNU_FC $(TARGET)
intel: INTEL_FC $(TARGET)
GNU_FC:
FC = gfortran-4.8
FFLAGS = -O3 -mcmodel=medium -shared
INTEL_FC:
FC = ifort
FFLAGS = -O3 -mcmodel medium -shared-intel
$(TARGET): $(OBJECTS)
$(OBJECTS): $(SOURCES)
.f.o:
$(FC) -c $(FFLAGS) $*.f
最佳答案
可能您正在寻找MAKECMDGOALS。
下面我粗略地修改了你的Makefile,请检查下面:-
SOURCES = a1.f a2.f a3.f
OBJECTS = $(SOURCES:.f=.o)
TARGET = myexececutable.x
gnu: GNU_FC $(TARGET)
intel: INTEL_FC $(TARGET)
ifeq ($(MAKECMDGOALS),gnu)
GNU_FC:
FC = gfortran-4.8
FFLAGS = -O3 -mcmodel=medium -shared
endif
ifeq ($(MAKECMDGOALS),intel)
INTEL_FC:
FC = ifort
FFLAGS = -O3 -mcmodel medium -shared-intel
endif
$(TARGET): $(OBJECTS)
$(OBJECTS): $(SOURCES)
.f.o:
$(FC) -c $(FFLAGS) $*.f
更多信息可以在这里获取
https://www.gnu.org/software/make/manual/html_node/Goals.html][1]
关于linux makefile 帮助声明基于 make gnu 或 make linux 规则的 FC FFLAGS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447373/
在我的 Makefile 中,我有一个由 给出的标志 FFLAG= -Dunix -c -fopenmp -03 有人可以解释一下 Dunix 和 -03 标志的含义吗? 最佳答案 通常,-Dun
我有 5 个为 pgi 编译器设计的 makefile。但是,我的系统正在使用 gfortran,我不知道如何让它们与我的系统一起使用,以及我应该如何更改 FC 和 FFLAGS。我是 Linux 操
我正在尝试修改我的 Makefile 以便我可以输入任何一个 “制作 gnu”或“制作英特尔” 它会编译一切,唯一的区别是 FC = gfortran-4.8 或 ifort,和FFLAGS = gf
我是一名优秀的程序员,十分优秀!