読者です 読者をやめる 読者になる 読者になる

autotools + 使い方

autotools + 使い方

autotools の基本的な使い方をざっくばらんにメモ。

テスト用のディレクトリを作成する

  
$ mkdir autotool  
$ cd autotool  

適当にソースコードを記述する

$ vi main.cpp

  
#include  
int main()  
{  
       puts("hello autotool.");  
       return0;  
}  

autoscan を実行する

  
$ autoscan  

出来た configure.scan をconfigure.ac に名称変更

  
$ mv configure.scan configure.ac  

configure.ac を編集する。

  
$ vi configure.ac  

AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) を編集。
automake を使うので AM_INIT_AUTOMAKE を追加。
AC_CONFIG_FILES([Makefile]) を追加。

  
# -*- Autoconf -*-  
# Process this file with autoconf to produce a configure script.  
AC_PREREQ(2.61)  
AC_INIT( hoge-pkg,0.1, hoge@mail.com)  
AC_CONFIG_SRCDIR([main.cpp])  
AC_CONFIG_HEADER([config.h])  
AM_INIT_AUTOMAKE # automakeを使うので追加  
# Checks for programs.  
AC_PROG_CXX  
# Checks for libraries.  
# Checks for header files.  
# Checks for typedefs, structures, and compiler characteristics.  
# Checks for library functions.  
AC_CONFIG_FILES([Makefile])  
AC_OUTPUT  

Makefile.am を作成する

  
$ vi Makefile.am  

  
bin_PROGRAMS = hello  
hello_SOURCES = main.cpp  

aclocal を実行する

  
$ aclocal  

autoheader を実行する

  
$ autoheader  

automake を実行する

  
$ automake -a -c  

-a は、足りないファイルを追加してくれるオプション
-c は、上のファイルをコピーしてくれるオプション。

もし足りないファイルがあると言われたら
昔の automake を使うと./ChangeLog' not found などと言われる事がある。
そんなときは、空で良いので同名のファイルを作ってあげる。

  
$ touch README AUTHORS ChangeLog NEWS  

autoconf を実行する

  
$ autoconf  

configure する

  
$ ./configure  

make する

  
$ make  

出来たバイナリを実行してみる

  
$ ./hello  
hello autotool.  

配布したい場合

  
$ make dist  

おしまい

以上、簡単な導入でした。

明日以降、--with オプションの付け方をメモする。