0

GNU Make を使用して複数ディレクトリ プロジェクトをビルドしています。私の質問は、単一のメイクファイルを使用して複数のデバイスを構築するにはどうすればよいですか? たとえば、私のアプリケーションは、画面サイズ、キーボードの種類、プラットフォームのバージョンなど、それぞれ異なるプロパティを持つさまざまな X、Y、Z モバイル デバイスで実行する必要があります。合格する必要がありmake -f <makefilename> <targetname>ます。ここで、targetname は Samsung CorbyPlus のようなデバイス名とモデルにすることができますが、makefile は samsung の特定のディレクトリ名に移動し、上記のすべてのプロパティが定義されている .txt ファイルなどを開く必要があります。ビルド時にそれらすべてを読み取り、いくつかのマクロ/定義/フラグを介してコードにアクセスする必要があります。

誰でもこれを行う方法を提案できますか? 私の要件に対するさらに優れたソリューションをいただければ幸いです。

4

1 に答える 1

1

構成メイクファイルを使用することをお勧めします。たとえば、次の構成を持つ複数のデバイスがあるとします。

config_device1.mk

OPTION1=yes
OPTION2=0

config_device2.mk

OPTION1=no
OPTION2=1

次に、コマンドラインから渡された特別なパラメーター ( make -f makefile DEVICE=dev_type1 ) を使用して、それらを条件付きでベース makefile に含め、構成ファイルのオプションを使用して処理することができます。

メイクファイル

ifeq ($(DEVICE),dev_type1)
include $(CONFIG_PATH)/config_device1.mk
endif

ifeq ($(DEVICE),dev_type2)
include $(CONFIG_PATH)/config_device1.mk
endif

ifeq ($(OPTION1),yes)
CFLAGS += -DBUILD_OPTION1     
endif

CFLAGS += -DBUILD_OPTION2=$(OPTION2)

ところで、長い目で見ると (時間の制約がない場合)、既存のビルド システムの一部を使用し、そのマニュアルを読み、その方法論に固執することをお勧めします。

于 2010-08-17T06:28:33.793 に答える