ファイヤープロジェクト
複数のソースファイルからなるパッケージ
2003-09-08T22:00+09:00   matsu
ここまではで作成したパッケージは一つのソースファイルからなるものだった.ソースファイルが一つならAutomake,Autoconfを使用するうまみはあまりない.また,ある多くのソフトウェアは複数のソースファイルから構成されている.この頁では複数のソースファイルから構成されるパッケージを作成する.
多くのプログラムは複数のソースファイルから構成されている.また,ソースファイルが多いほどAutomake,Autoconfを使用するうまみは大きくなる.そこで,この頁では複数のソースファイルからパッケージを構築することを目標とする.基本的な手順は今までの応用である.違いはMakefile.amに現れるので,そこを中心に説明する.
今回作成するパッケージの構成を以下に示す.
$ ls -R
.:
src

./src:
hello.c  hello_sub.c
hello.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 = src
src/Makefile.amには指定するソースファイルを追加する.
bin_PROGRAMS = hello
hello_SOURCES = hello.c hello_sub.c
仕上げに以下を実行する.
$ aclocal 
$ autoconf
$ touch NEWS README AUTHORS ChangeLog
$ automake -a
完成.最後にmake distで生成されたtar玉を置いておく.これ.
matsu(C)
Since 2002
Mail to matsu