複数のソースファイルからなるパッケージ
ここまではで作成したパッケージは一つのソースファイルからなるものだった.ソースファイルが一つならAutomake,Autoconfを使用するうまみはあまりない.また,ある多くのソフトウェアは複数のソースファイルから構成されている.この頁では複数のソースファイルから構成されるパッケージを作成する.
多くのプログラムは複数のソースファイルから構成されている.また,ソースファイルが多いほどAutomake,Autoconfを使用するうまみは大きくなる.そこで,この頁では複数のソースファイルからパッケージを構築することを目標とする.基本的な手順は今までの応用である.違いはMakefile.amに現れるので,そこを中心に説明する.
今回作成するパッケージの構成を以下に示す.
$ ls -R .: src ./src: hello.c hello_sub.chello.cのmain関数から,hello_sub.cの関数を呼び出すプログラムである.この場合,configure.inは以下のようになる.
# Process this file with autoconf to produce a configure script. AC_INIT(src/hello.c) AM_INIT_AUTOMAKE(hello, 1.10) # Checks for programs. AC_PROG_CC AC_PROG_INSTALL # Checks for libraries. # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([stdlib.h]) # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_OUTPUT(Makefile src/Makefile)前頁と同じである(※).
※前頁までのconfigure.inには(有用だが例の中ではその機能を生かしていない)不要なマクロがあったので,今回はその行を削除した.削除した行にはAM_CONFIG_HEADER(config.h)が含まれる.この変更により,今回はautoheaderを実行する必要がない.
パッケージのトップディレクトリのMakefile.amには変更がない.
SUBDIRS = srcsrc/Makefile.amには指定するソースファイルを追加する.
bin_PROGRAMS = hello hello_SOURCES = hello.c hello_sub.c
仕上げに以下を実行する.
$ aclocal $ autoconf $ touch NEWS README AUTHORS ChangeLog $ automake -a完成.最後にmake distで生成されたtar玉を置いておく.これ.

