いくつかの機能を管理し、コンパイル時に特定の癖を設定したいと考えています。したがって、最終的なターゲットであるコンパイル コマンドとリンク コマンドを作成するためにコンパイルする必要があるオブジェクトのリストを変更できなければなりません。これまでのところ、プログラムの 2 つのフレーバーのみを使用する必要がありました。他の 1 つ (たとえば) は、いくつかと 1 つのオブジェクト ファイルをspecial
追加しただけです。CXXFLAGS
specialclient: CXXFLAGS+=-DSPECIALBUILD
specialclient: LDFLAGS+=-lanotherlib
specialclient: libanotherlib client
client
通常のターゲットはどこですか。しかし、別の選択可能な機能 (たとえばpeculiar
) が必要になったので、機能の任意の組み合わせを選択できるようにしたいので、事態は複雑になり始めます。peculiarclient
まだとのターゲットを指定したくありませんspecialpeculiarclient
。のように、コマンドラインで各機能を指定できるようにしたいと思いますmake [special] [peculiar] client
。
どうすればこの問題を解決できますか?