Makefile:类似文件的不同标志

时间:2014-12-04 18:40:34

标签: makefile compiler-flags

我有几个要编译的文件:one.f two.f ... ten.f

有些需要使用不同的标志进行编译。例如,从one.ffive.f需要使用ifort -O进行编译,six.ften.f需要使用ifort -O2进行编译。

如何制作两个隐式规则,知道哪些文件使用哪些标志进行编译?或者任何组合在一起的方式,所以我不必逐个文件指定。

类似地:

有些取决于模块mod.f而有些则不依赖。我是否可以在逐个文件的基础上指定此依赖项?

1 个答案:

答案 0 :(得分: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)的任何其他内容添加正确的优化标记。