[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

19.1 ターゲットの Makefile 断片

ターゲットの makefile 断片、‘t-target’ は、 ‘Makefile’ で使われる、 特別なターゲット依存の変数と特別な make のターゲットを定義する。

LIBGCC1

libgcc1.a’ を構築するルール。 ターゲットが ‘libgcc1.a’ の中の関数を必要としないのであれば、 空に設定すること。 See section GCC の出力に対するインターフェース.

CROSS_LIBGCC1

クロスコンパイラを作成するときに、‘libgcc1.a’ を構築するのに 使う規則である。ターゲットが ‘libgcc1.a’ にある関数を 使う必要がない場合は、このマクロは空にする。 See section libgcc.a’ とクロスコンパイラ.

LIBGCC2_CFLAGS

libgcc2.c’ をコンパイルするときに使うコンパイラのフラグである。

LIB2FUNCS_EXTRA

libgcc.a’ に、コンパイルまたはアセンブルして入れるべきファイルの ソースファイル名のリストである。

CRTSTUFF_T_CFLAGS

crtsfuff.c’ をコンパイルするときに使われる特別なフラグである。 See section 初期化関数の扱われ方.

CRTSTUFF_T_CFLAGS_S

共有リンク用に ‘crtstuff.c’ をコンパイルするときに使われる 特別なフラグである。 EXTRA-PARTS で ‘crtbeginS.o’ と ‘crtendS.o’ を 使っている場合にはこのフラグが使われる。 See section 初期化関数の扱われ方.

MULTILIB_OPTIONS

ターゲットによっては、GCC を異なる起動の仕方をすると、 一緒にリンクできないオブジェクトが生成されることがある。 例えば、幾つかのターゲットでは、GCC がビッグエンディアンとリトル エンディアン両方のコードを生成する。 こういうターゲットには、非互換なオプションの組合せに一つずつの、 複数のバージョンの ‘libgcc.a’ をコンパイルするように設定しなければ ならない。GCC がリンカを起動するとき、使われたコマンド行オプションに 応じて、正しいバージョンの ‘libgcc.a’ をリンクするように調整する。

マクロ MULTILIB_OPTIONS には、‘libgcc.a’ の特別な バージョンを構築しなければならない場合向けのオプションの組を列挙する。 互いに互換性のないオプションは、スラッシュで区切って並べて書く。 一緒に組み合わせて使うことも出来るオプションはスペースで区切って書く。 構築手順により、互換性のあるオプションの全ての組合せが構築される。

例えば、MULTILIB_OPTIONS を ‘m68000/m68020 msoft-float’ と 設定したとすると、‘Makefile’ は、‘libgcc.a’ の 特別なバージョンを、‘-m68000’、‘-m68020’、 ‘-msoft-float’、‘-m68000 -msoft-float’、‘-m68020 -msoft-float’ というオプションの組合せの分だけ作る。

MULTILIB_DIRNAMES

MULTILIB_OPTIONS を使う場合、この変数で様々なライブラリを 置くのに使うべきディレクトリ名を指定する。MULTILIB_OPTIONS の 要素毎に MULTILIB_DIRNAMES に一つ要素を書くこと。 MULTILIB_DIRNAMES を使わない場合、デフォルト値は MULTILIB_OPTIONS のスラッシュを全て空白として扱ったものになる。

例えば、MULTILIB_OPTIONS が ‘m68000/m68020 msoft-float’ 設定されている場合は、MULTILIB_DIRNAMES のデフォルト値は ‘m68000 m68020 msoft-float’ となる。 ディレクトリ名として別の組合わせにしたい場合は 別の値を指定すれば良い。

MULTILIB_MATCHES

同じオプションを二つの別の書き方をすることもある。 あるオプションが MULTILIB_OPTIONS に列挙されている場合、 GCC はその別名について知る必要がある。その場合、 MULTILIB_MATCHES に、‘option=option’ という形式の 項目のリストを設定し、全ての関係する別名を記述するようにする。 例えば、‘m68000=mc68000 m68020=mc68020’ とする。

MULTILIB_EXCEPTIONS

複数の組の MULTILIB_OPTIONS が指定されている場合、 その中に構築すべきでない組合せが出てくる場合もある。 そういう場合は、MULTILIB_EXCEPTIONS を設定して、 構築すべきでないオプションの例外を全て、シェルの case 文の構文で 指定する。

例えば、PowerPC の組み込み ABI サポートでは、‘-mcall-aixdesc’ オプションと、 ‘-mrelocatable’ と ‘-mlittle’ オプションの どちらかを同時に指定してコンパイルしたライブラリは構築しないのが 望ましい。このため、MULTILIB_EXCEPTIONS*mrelocatable/*mcall-aixdesc* *mlittle/*mcall-aixdesc* と設定する。

MULTILIB_EXTRA_OPTS

複数のバージョンの ‘libgcc.a’ を構築する時、ある決まったオプション 群を常に GCC にわたすべきであるという場合が時々ある。 その場合は、MULTILIB_EXTRA_OPTS に、構築するときに必ず使われる オプションのリストを設定する。


This document was generated using texi2html 1.78.