次: , 前: aclocal options, 上: configure


5.5 マクロ検索パス

デフォルトで,aclocal.m4ファイルを以下のディレクト リで,この順番に探します.

acdir-APIVERSION
これは,automake自身が配布している.m4マクロを保持している場所で す.APIVERSIONは,使用しているautomakeのリリースに依存します. automake 1.6.xに対して,APIVERSION = 1.6になります.
acdir
このディレクトリは,サードパーティーの.m4ファイルが目的で, automake自身がビルドされるときにconfigureされます.これは @datadir@/aclocal/で,通常${prefix}/share/aclocal/に 展開されます.組み込みのacdirを知るために,--print-ac-dir オプションを使用してください.

例として,automake-1.6.2が--prefix=/usr/localを用いてconfigure されたと仮定します.そのとき検索パスは以下のようになります.

  1. /usr/local/share/aclocal-1.6/
  2. /usr/local/share/aclocal/

(see aclocal options)で説明したように,この検索パスの変更や拡張で 使用可能なオプションもあります.

5.5.1 マクロ検索パスを変更する: --acdir

検索パスを変更する最も明確なオプションは--acdir=dirで,デ フォルトのディレクトリを変更し,APIVERSIONディレクトリを取り消し ます.例えば,--acdir=/opt/private/を指定した場合,検索パスは以 下のようになります.

  1. /opt/private/

このオプション--acdirの目的は,automakeのテストスイートの内部で 使用することだけです.それはエンドユーザは通常不要です.

5.5.2 マクロ検索パスを変更する: -I dir

-Iオプション(see aclocal options)を使用して,あらゆる追加ディ レクトリを指定することで,これらの検索リストに前置します.この ため,aclocal -I /foo -I /barは結果として以下のような検索パスに なります.

  1. /foo
  2. /bar
  3. acdir-APIVERSION
  4. acdir

5.5.3 マクロ検索パスを変更する: dirlist

検索パスをカスタマイズするため,三番目のメカニズムがあります. dirlistファイルがacdirに存在する場合,そのファイルが,一 行ごとに検索リストに追加するディレクトリリストを含んでいると仮定されま す.これらのディレクトリは,すべての他のディレクトリの後に検索 されます.

例えば,acdir/dirlistが以下の内容を含んでいると仮定します.

     /test1
     /test2

そして,aclocal-I /foo -I /barオプションで呼び出したと 仮定します.そのとき検索パスは以下のようになります.

  1. /foo
  2. /bar
  3. acdir-APIVERSION
  4. acdir
  5. /test1
  6. /test2

--acdir=dirオプションが使用されている場合, aclocaldirlistファイルをdirで検索します.上記 の--acdir=/opt/private/の例では,aclocal/opt/private/dirlistを探します.しかし,繰り返しますが, --acdirオプションの目的は,automakeのテストスイートの内部で使用 されることだけです.通常,--acdirはエンドユーザには不要です.

以下のような状況で,dirlistは役に立ちます.automakeのバー ジョン1.6.2が,`$prefix=/usr'でシステムベンダーによってイ ンストールされていると仮定します.このためデフォルトの検索ディレクトリ は以下のようになります.

  1. /usr/share/aclocal-1.6/
  2. /usr/share/aclocal/

しかし,システムには多くのパッケージが,いつも通りに `$prefix=/usr/local'に手動でインストールされていると仮定します. この状況では,これらの“追加の”.m4ファイルは /usr/local/share/aclocalにあります.これらの“追加の” .m4 ファイルを見つけるため,/usr/bin/aclocalを強制させる 方法は,常にaclocal -I /usr/local/share/aclocalを呼び出すことで す.これは不便です.dirlistを用いると,以下のファイルを作成する ことができます.

/usr/share/aclocal/dirlist

その内容は以下のようになっています.

/usr/local/share/aclocal

さて,システムに影響する“デフォルト”の検索パスは以下のようになります.

  1. /usr/share/aclocal-1.6/
  2. /usr/share/aclocal/
  3. /usr/local/share/aclocal/

-Iオプションは不要です.-Iは,ローカルなシステム依存のツー ルのインストールディレクトリを回避するのではなく,プロジェクト独自のも のが必要な(my-source-dir/m4/)として予約可能です.

同様に,Automakeのローカルコピーをアカウント内にインストールし, aclocalでシステムの他の場所にインストールされているマクロを 探したい場合,dirlistは手頃なはずです.