Makefile:相似文件的不同标志
Posted
技术标签:
【中文标题】Makefile:相似文件的不同标志【英文标题】:Makefile: different flags for similar files 【发布时间】:2014-12-04 18:40:33 【问题描述】:我有几个文件要编译:one.f
two.f
... ten.f
有些需要用不同的标志编译。比如one.f
到five.f
需要用ifort -O
编译,six.f
到ten.f
需要用ifort -O2
编译。
如何创建两个隐式规则来知道哪些文件使用哪些标志进行编译?或者以任何方式将它们组合在一起,这样我就不必逐个文件指定。
同样:
有些依赖于模块mod.f
,有些则不依赖。我可以在不逐个文件的情况下指定此依赖项吗?
【问题讨论】:
【参考方案1】:您绝对可以在每个目标的基础上指定依赖关系,但您确实需要一种指定正确目标的方法(可能是明确的),但如果您可以通过其他方式构建列表(或者已经将它放在变量中,则不一定需要手动指定) )。
one.o two.o three.o four.o five.o: mod.f
行会将其添加为这些目标的先决条件(对于实际构建这些目标的任何规则。
同样,您可以分配 6.11 Target-specific variables 并使用它们。
one.o two.o three.o four.o five.o: FFLAGS+=-O
six.o seven.o eight.o nine.o ten.o: FFLAGS+=-O2
将正确的优化标志添加到内置的%.o: %.f
(或任何其他使用$(FFLAGS)
的东西。
【讨论】:
以上是关于Makefile:相似文件的不同标志的主要内容,如果未能解决你的问题,请参考以下文章
Makefile:来自相同源的两个目标使用不同的标志编译两次