gpt4 book ai didi

linux makefile 帮助声明基于 make gnu 或 make linux 规则的 FC FFLAGS 变量

转载 作者:太空狗 更新时间:2023-10-29 12:13:11 26 4
gpt4 key购买 nike

我正在尝试修改我的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com