[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
当然,Automakeは,一旦ビルドされたプログラムを実際のインストールの細部
までの処理を行ないます.様々なプライマリで指名されているすべてのファイ
ルは,ユーザがmake install
を実行する時に,適切な場所に自動的に
インストールされます.
プライマリで指名されているファイルは,ビルドされたファイルを適切なディ レクトリにコピーすることでインストールされます.ファイルのベース名はイ ンストール時に使用されます.
bin_PROGRAMS = hello subdir/goodbye |
この例では,`hello'と`goodbye'の両方が$(bindir)
にイン
ストールされます.
インストール時にベース名のステップを避けた方が役に立つこともあるでしょ う.例えば,ソースツリーのサブディレクトリに,インストール時にインストー ルしたい方法で正確に配置したいヘッダファイルがいくつかあるかもしれませ ん.この場合,ベース名のステップを停止するために,`nobase_'接頭辞 を使用することが可能です.例えば以下のようにします.
nobase_include_HEADERS = stdio.h sys/types.h |
これで,`stdio.h'は$(includedir)
に,そして`types.h'は
$(includedir)/sys
にインストールされます.
インストーラーが共有ディレクトリ構造を持っている複数のマシンにインストー
ルする場合,Automakeはinstall-data
とinstall-exec
ルールを
分けて生成します -- これらのターゲットで,マシンに依存しない部分を一
度にインストールすることが可能になります.install-exec
はプラッ
トフォームに依存するファイルをインストールし,install-data
はプ
ラットフォームに依存しないファイルをインストールします.install
ターゲットはこれらのターゲットの両方に依存します.Automakeは,オブジェ
クトを正しいカテゴリに自動的に区別するよう試みますが,
`Makefile.am'の作者は,これが正しく行なわれていることを確かめる責
任があります.
`data',`info',`man',`include', `oldinclude',`pkgdata',または`pkginclude'(例えば `data_DATA')といった標準ディレクトリの接頭辞を使用している変数は, `install-data'でインストールされます.
`bin',`sbin',`libexec',`sysconf', `localstate',`lib',または`pkglib'(例えば `bin_PROGRAMS')といった標準ディレクトリの接頭辞を使用している変数 は, `install-exec'でインストールされます.
ユーザが定義した名前で,名前に`exec'を含むディレクトリ接頭辞を使 用している変数は(例えば`myexecbin_PROGRAMS'),`install-exec' でインストールされます.ユーザによって定義されたそれ以外のすべての接頭 辞は,`install-data'でインストールされます.
install-exec-local
やinstall-data-local
ルールを定義するこ
とで,このメカニズムを拡張することが可能です.これらのルールが存在する
場合,それらは`make install'時に実行されます.これらのルールでほ
とんどすべてのことが可能になります.注意が必要です.
Automakeは,install-exec-hook
とinstall-data-hook
の,二つ
のインストールのフックもサポートしています.これらのフックは,適切な形
式,execやdataといった,他のすべてのインストールルールが完了した後で実
行されます.そのため,例えば,インストールのフックを使用して,インストー
ル後の変更を実施することが可能です.
Automakeは,すべてのインストールルールで,`DESTDIR'変数に対するサ ポートを生成します.`DESTDIR'は,インストールオブジェクトを実行領 域に再配置する`make install'の段階で使用されます.それぞれのオブ ジェクトとパスは,インストール領域にコピーされる前に,`DESTDIR'の 値が前置されます.典型的な`DESTDIR'使用法の例は,以下のようになり ます.
mkdir /tmp/staging && make DESTDIR=/tmp/staging install |
mkdir
コマンドは,攻撃者が`/tmp/staging'が文字通りの領域
にシンボリックリンクを作成する場合のセキュリティ問題を回避します.そし
て,make
はインストールオブジェクトを`/tmp/staging'の下
に構築されているディレクトリツリーに配置します.`/gnu/bin/foo'と
`/gnu/share/aclocal/foo.m4'がインストールされる場合,上のコマンド
では,`/tmp/staging/gnu/bin/foo'と
`/tmp/staging/gnu/share/aclocal/foo.m4'にインストールされます.
この機能は,インストールイメージとパッケージをビルドするために,通常使 用されます.詳細は,(standards)Makefile Conventions section `Makefile Conventions' in The GNU Coding Standardsを参照してください.
`DESTDIR'に対するサポートは,インストールルールに直接コーディング
することで実装されています.`Makefile.am'でローカルインストール規
則(例えば,install-exec-local
)やインストールフックを使用してい
る場合,`DESTDIR'に対応するコードを書く必要があります.
Automakeは,ターゲットuninstall
,installdirs
,そして
install-strip
に対するルールも生成します.
Automakeは,uninstall-local
とuninstall-hook
をサポートし
ています.これらの機能は,機能の追加のために提供されているわけでないの
で,"exec"と"data"に対してアンインストールを分ける必要はないでしょ
う.
uninstall
には,実際のパッケージツールを置換する意味が無いことに
注意してください.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Akihiro Sagawa on June, 8 2005 using texi2html 1.70.