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

12. インストールされるもの


12.1 基本的なインストール

当然,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にインストールされます.


12.2 インストールの二つの部分

インストーラーが共有ディレクトリ構造を持っている複数のマシンにインストー ルする場合,Automakeはinstall-datainstall-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'でインストールされます.


12.3 インストールの拡張

install-exec-localinstall-data-localルールを定義するこ とで,このメカニズムを拡張することが可能です.これらのルールが存在する 場合,それらは`make install'時に実行されます.これらのルールでほ とんどすべてのことが可能になります.注意が必要です.

Automakeは,install-exec-hookinstall-data-hookの,二つ のインストールのフックもサポートしています.これらのフックは,適切な形 式,execやdataといった,他のすべてのインストールルールが完了した後で実 行されます.そのため,例えば,インストールのフックを使用して,インストー ル後の変更を実施することが可能です.


12.4 インストールの実行

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'に対応するコードを書く必要があります.


12.5 ユーザのためのルール

Automakeは,ターゲットuninstallinstalldirs,そして install-stripに対するルールも生成します.

Automakeは,uninstall-localuninstall-hookをサポートし ています.これらの機能は,機能の追加のために提供されているわけでないの で,"exec"と"data"に対してアンインストールを分ける必要はないでしょ う.

uninstallには,実際のパッケージツールを置換する意味が無いことに 注意してください.


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

This document was generated by Akihiro Sagawa on February, 25 2004 using texi2html