Autotoolsの迅速な開発


プログラム開発には注意すべき細部が多く,ユーザが良好な技術を持っているだけでなく,ユーザ化を容易にするために利器を開発する必要がある.ここでは、AutoToolsツールのプログラム開発におけるいくつかのアプリケーションを紹介し、ユーザーがプログラム開発でどのように機能し、どのような便利さがあるかを理解するのに役立ちます.
    
ソースパス
ここでは,プロジェクトでソースプログラムコードのパスをどのように指定するかを検討する.hello 1ディレクトリでは、ユーザがhelloを使用しないと仮定する.cテストディレクトリの下に直接置くのではなく、次のサブディレクトリsrcの下に置く.一般的にオープンソースソフトウェアのソースコードはこのように設定されています.では、どうすればいいのでしょうか.まずhello 1ディレクトリの下でconfigureを編集します.acファイル、内容は以下の通りです.

      AC_INIT(src/hello.c)
AM_INIT_AUTOMAKE(hello, 0.1)
AC_PROG_CC
AC_OUTPUT(Makefile src/Makefile)

ここで、4行目はconfigureスクリプトを実行した後の2つの出力ファイル、すなわち現在のディレクトリの下のMakefileとsrcディレクトリの下のMakefileを指定します.
Makefileを再編集します.amファイル、内容は以下の通りです.
    SUBDIRS = src
ユーザーのプロジェクトディレクトリに含まれるサブディレクトリを指定します.現在、ユーザーにはソースディレクトリsrcが1つしかなく、今後のプロジェクトではドキュメントディレクトリdoc、テストディレクトリtestなどにユーザーが参加できます.
次にsrcディレクトリでMakefileを編集する.amファイル、内容は以下の通りです.

      bin_PROGRAMS = hello
hello_SOURCES = hello.c

編集が完了し、エラーがないことを確認したら、プロジェクトディレクトリで「aclocal」、「autoconf」、「automake--add-missing--foreign-copy」コマンドを順次実行し、ユーザーはこのプロジェクトの作成を完了しました.「./configure」を実行してMakefileファイルを生成します.最後にmakeコマンドを実行してsrcディレクトリで実行可能ファイルhelloを生成します.
    
複数の出力結果
ソースプログラムコードに2つのCソースファイルが同じディレクトリでhello 2と仮定し、2つの実行可能ファイルを出力している場合、この場合どうすればいいのでしょうか.
まずhello 2サブディレクトリに入り、上記の例のようにソースコードディレクトリsrcを作成します.srcディレクトリの下で2つのCソースプログラムhelloを編集します.cとoh.c.次にディレクトリhello 2でconfigureを編集します.acファイル、内容は以下の通りです.

      AC_INIT(src/hello.c)
AM_INIT_AUTOMAKE(hello, 0.2)
AC_PROG_CC
AC_OUTPUT(Makefile src/Makefile)

ハロー1プロジェクトのconfigureと.acの内容は似ていて、違うのは今回のバージョンが変わったことです.
Makefileを再編集します.amファイル、ここはhello 1プロジェクトとそっくりです.指摘すべきはsrcディレクトリの下のMakefileです.amファイルは以下のように変更されます.

      bin_PROGRAMS = hello oh
hello_SOURCES = hello.c
oh_SOURCES = oh.c

複数の出力結果がbin_にあることに注意してください.PROGRAMS後に指摘すればいいです.ただし、実行可能ファイルごとにソースファイルを指定し、helloに対応するソースコードはhelloである.c,ohに対応するソースコードはohである.c.
関連するプロファイルを編集したら、「aclocal」、「autoconf」、「automake」の順に実行できます.
    
パッケージ方式
ユーザが正常に使用するソースプログラムコードをパッケージングした後、ファイル名の接尾辞は.tar.gz.これは最もよく使われる梱包方法です.しかし、その圧縮率は最高ではありません.圧縮率のより良い圧縮方式はbz 2フォーマットを採用することである.前提は、ユーザーのシステムにbzip 2圧縮ツールがインストールされていることを保証することです.
hello 2プロジェクトのソースコードを本プロジェクトディレクトリのsrcディレクトリにコピーし、プロジェクトディレクトリでConfigureを編集します.acファイル、内容、hello 2のConfigure.acと同じです.
プロジェクトディレクトリのMakefile.amファイルの内容は以下の通りです.

      AUTOMAKE_OPTIONS = dist-bzip2
SUBDIRS = src

サブディレクトリのMakefile.amファイルの内容は前の工事と全く同じです.さらに「aclocal」などの関連コマンドを実行してプロジェクトを作成し、「make」でコンパイルが完了すると「make dist」でパッケージ化でき、最後にプロジェクトディレクトリの下に2つの圧縮パッケージhello-0.2が表示されます.tar.gzとhello-0.2.tar.bz2.