我正在使用clearmake,我正在尝试执行以下操作:
我有一个Makefile.fast.options文件,我在clearmake命令中使用它。在那里我有一个USERFLAGS = -DFAST
在另一个选项文件中我没有-DFAST(Makefile.slow.options)。
在实际的Makefile中,如果定义了FAST,我想将输出二进制名称设置为一个名称,否则我想将其设置为另一个名称..(如果定义了FAST,我希望输出具有。在名字中快,否则我想要.slow
有可能这样做吗?也许我错过了一个更简单的方法来使用选项文件来确定输出文件名?
我还在考虑在makefile选项文件中定义文件名,看起来更容易:
FILENAME = File.Fast
但我想使用选项文件覆盖makefile本身的FILENAME定义..所以,如果在选项文件中设置了FILENAME,请使用它,否则使用makefile中的那个..这是可能的?
谢谢!
答案 0 :(得分:0)
您不能只更改您构建的文件的名称。您必须在makefile中的规则中实际更改目标的名称。这意味着目标名称必须是可变的。你选择让它变化的方式取决于你。
如果您已经基于快速和慢速包含了不同的选项文件,那么最简单和最明显的方法是在这些选项文件中设置变量。这就是我推荐的方式。
如果你想根据USERFLAGS的值来做,你可以这样做:
ifeq ($(filter -DFAST,$(USERFLAGS)),-DFAST)
FILENAME = File.fast
else
FILENAME = File.slow
endif
但是,这似乎更复杂,更难理解(对我而言)。