configureの作り方(autotoolsの使い方)
はじめに
オープンソースでよくある、configure → make → make installというセットアップの流れ。これはGNUのautotoolsというツール&フレームワーク群により実現されている。
本記事ではそのautotoolsによりconfigureを作成する手順を説明する。
- autotoolsの概要についてはこちら→Autotools - Wikipedia
作成の流れ
- 必要ファイルの作成(automake時に必要)
- Makefile.am作成(後の作成/修正も可)
- autoscanコマンドの実行
- configure.acファイルの作成&編集
- aclocal実行
- autoheader実行
- automake実行
- autoconf実行
ユーザが編集するファイルは、configure.acとMakefile.am。これらファイルを修正した時は、aclocalコマンド以降を都度実行してファイルを再生性する。なので、aclocalコマンド以降をシェル化して一気に実行するようにしておくと便利である。
手順詳細
必要ファイルの作成
automakeコマンド実行時に求められるファイルを作成する。とりあえずファイルがあればよいので、空ファイルを作成する。(内容は必要に応じ別途修正する)
$ touch INSTALL NEWS README LICENSE AUTHORS ChangeLog
Makefile.am作成(後の作成/修正も可)
次のautoscanコマンドで、AC_CONFIG_FILESを自動生成するため、とりあえずMakefile.amを作成する。とりあえずこの段階では空ファイルでもかまわない。(automake実行時に中身があればOK)
-> Makefile.amのつくり方(別途作成予定)
autoscanコマンドの実行
configure.scanを作成し、それをRenameしてconfigure.acを作成する。
$ autoscan $ mv configure.scan configure.ac
configure.acファイルの作成&編集
configure.acを修正する。詳細は別途作成
# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. sAC_PREREQ([2.63]) AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) <== パッケージ&バージョン&連絡先を記入 AC_CONFIG_SRCDIR([src/uplog_util.c]) AC_CONFIG_HEADERS([config.h]) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. AC_CHECK_HEADERS([fcntl.h limits.h locale.h stdlib.h string.h sys/socket.h syslog.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_TYPE_PID_T # Checks for library functions. AC_FUNC_FORK AC_FUNC_MALLOC AC_FUNC_STRNLEN AC_CHECK_FUNCS([dup2 getcwd gethostname gettimeofday memset realpath select setlocale socket strerror]) AC_CONFIG_FILES([Makefile conf/Makefile src/Makefile]) <==Makefile.amを増やしたらここに追加 AC_OUTPUT
aclocal実行以降
以後はシェル化し、Makefile.amやconfigure.ac修正時に都度実行すると楽。
echo aclocal aclocal echo autoheader autoheader echo automake automake --add-missing --copy echo autoconf autoconf