0

私はclearmakeを使用しており、次のことをしようとしています:

clearmake コマンドで使用する Makefile.fast.options ファイルがあります。そこに USERFLAGS = -DFAST があります

別のオプション ファイルには -DFAST がありません (Makefile.slow.options)。

実際の Makefile では、FAST が定義されている場合、出力バイナリ名を 1 つの名前に設定したい、または別の名前に設定したい.. (FAST が定義されている場合、出力に .fast を名前、またはそれ以外の場合は.slowが必要です

これを行うことは可能ですか?おそらく、オプション ファイルを使用して出力ファイル名を決定するためのはるかに簡単な方法がありませんか?

私はmakefileオプションファイルでファイル名を定義することも考えていましたが、はるかに簡単に思えます:

ファイル名 = File.Fast

しかし、オプション ファイルを使用して、メイクファイル自体にある FILENAME の定義をオーバーライドしたい..したがって、オプション ファイルで FILENAME が設定されている場合はそれを使用するか、そうでない場合はメイクファイルで使用します..これは可能ですか?

ありがとう!

4

1 に答える 1

0

ビルドするファイルの名前を変更することはできません。makefile のルールでターゲットの名前を実際に変更する必要があります。これは、ターゲット名が可変である必要があることを意味します。可変にする方法はあなた次第です。

高速と低速に基づいてさまざまなオプション ファイルを既に含めている場合、最も簡単でわかりやすい方法は、それらのオプション ファイルに変数を設定することです。それが私がお勧めする方法です。

USERFLAGS の値に基づいて実行したい場合は、次のようにすることができます。

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

しかし、これはより複雑で、読みにくく、理解するのが難しいようです (私には)。

于 2013-02-28T00:52:04.283 に答える