次: , 上: A Program


7.1.1 プログラムソースの定義

(ライブラリやスクリプトと比べて)プログラムにビルドされるソースを含んで いるディレクトリには,`PROGRAMS'プライマリが使用されます.プログ ラムを,bindirsbindirlibexecdirpkglibdirにインストールしたり,または全くインストールしない (noinst)ことが可能です.make checkに対してのみビルドさせ ることも可能で,そのときは接頭辞は`check'になります.

例えば以下のようにします.

     bin_PROGRAMS = hello

この単純な状況では,結果として生成されるMakefile.inに, helloという名前のプログラムを生成するコードが含まれるでしょう.

それぞれのプログラムに関連して,プログラムの後に命名される補助変数もあ ります.これらの変数はすべてオプションで,妥当なデフォルト値を持ちます. それぞれの変数,その使用,そしてデフォルトについては以下で記述します. 我々は,“hello”の例を終始使用します.

変数hello_SOURCESは,実行形式にビルドされるソースファイルを指定 するために使用されます.

     hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h

これにより,上記のそれぞれの`.c'ファイルを,対応する`.o'にコ ンパイルします.そして,すべてはhelloを生成するためにリンクされ ます.

`hello_SOURCES'が指定されていない場合,そのデフォルトは一つのファ イルhello.cになります(see Default _SOURCES). 複数のプログラムを一つのディレクトリでビルドすることが可能です.複数の プログラムで単一のソースファイルを共有することが可能で,それぞれの `_SOURCES'定義でリストアップする必要があります.

`_SOURCES'定義にリストアップされているヘッダファイルは配布物に含 まれますが,それ以外のものは無視されます.明らかではないときは, configureで生成されるヘッダファイルを`_SOURCES'変数に含め るべきではありません.このファイルは配布すべきではありません. Lex(`.l')とYacc(`.y')のファイルもリストアップすることが可能 です.Yacc and Lexを参照して下さい.