当然,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'使用法の例は,以下のようになります.
make DESTDIR=/tmp/staging install
これで,インストールオブジェクトを`/tmp/staging'の下に構築されてい るディレクトリツリーに配置します.`/gnu/bin/foo'と `/gnu/share/aclocal/foo.m4'がインストールされる場合,上のコマンドで は,`/tmp/staging/gnu/bin/foo'と `/tmp/staging/gnu/share/aclocal/foo.m4'にインストールされます.
この機能は,インストールイメージとパッケージをビルドするために,通常使用 されます.詳細は,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
には,実際のパッケージツールを置換する意味が無いことに注
意してください.
Go to the first, previous, next, last section, table of contents.