0

我正在使用 clearmake,我正在尝试执行以下操作:

我有一个在 clearmake 命令中使用的 Makefile.fast.options 文件。在那里我有一个 USERFLAGS = -DFAST

在另一个选项文件中我没有-DFAST(Makefile.slow.options)。

在实际的 Makefile 中,如果定义了 FAST,我想将输出二进制名称设置为一个名称,否则我想将其设置为另一个名称..(如果定义了 FAST,我希望输出在名字,否则我想要 .slow

是否有可能做到这一点?也许我错过了一种更简单的方法来使用选项文件来确定输出文件名?

我也在考虑在makefile选项文件中定义文件名,似乎更容易:

文件名 = File.Fast

但是我想使用选项文件来覆盖makefile本身中对FILENAME的定义。所以,如果在选项文件中设置了FILENAME,请使用它,或者使用makefile中的那个。这可能吗?

谢谢!

4

1 回答 1

0

您不能只更改您构建的文件的名称。您必须实际更改生成文件中规则中目标的名称。这意味着目标名称需要是可变的。您选择使其可变的方式取决于您。

如果您已经包含了基于快与慢的不同选项文件,那么最简单和最明显的方法是在这些选项文件中设置变量。这就是我推荐的方式。

如果你想根据 USERFLAGS 的值来做,你可以这样做:

ifeq ($(filter -DFAST,$(USERFLAGS)),-DFAST)
    FILENAME = File.fast
else
    FILENAME = File.slow
endif

但是,这似乎更复杂,更难阅读和理解(对我来说)。

于 2013-02-28T00:52:04.283 回答