2017-02-24 11 views
0

私は静的ライブラリまたは動的ライブラリを構築するためのターゲットを持つ非常に基本的なmakefileを持っています。デフォルトでは静的ライブラリが作成されます。複数のアーキテクチャにわたってライブラリをビルドするためのMakefile

私はこのライブラリを複数のアーキテクチャ用に構築したいと考えています。コマンドラインからビルドしたいアーキテクチャーを指定できるようにしたいので、内部的に他のものをすべてピックアップするようにします(CC、ARなどの値)。

これを行う最善の方法は何でしょうか?

+0

あなたがクロスコンパイルの平均以下のような結果を得られますが実行されているがありますか? – kaylum

+0

@kaylumはい、クロスコンパイルを意味します。 –

答えて

1

私が示唆したいのは、makefile内の異なるアーキテクチャー用の環境変数を設定してから、アーキテクチャーのその部分の変数を参照するルールを定義することです。いくつかの共通の値を設定して、別の場所で使用することもできます。

SPARCCC=/opt/SUNWspro/bin/cross-cc 
GCC=/usr/bin/gcc 
GCCDEBUG=/usr/bin/gcc 
TAR=/usr/bin/tar 

sparc: 
    @echo $(SPARCCC) -o a a.c 
    @echo ${TAR} cvf a.tar a.* 

i386 : 
    @echo $(GCC) -o a a.c 
    @echo ${TAR} cvf a.tar a.* 
    @echo $(GCCDBX) 

2つの異なる標的は、ここでは、SPARCおよびi386とスクリプト用のもの上記

$ make sparc 
/opt/SUNWspro/bin/cc -o a a.c 
/usr/bin/tar cvf a.tar a.c a.tar 

$ make i386 
/usr/bin/gcc -o a a.c 
/usr/bin/tar cvf a.tar a.c a.tar 
関連する問題