Makefile

Makefileは、makeコマンドが解釈して、依存性を満たしながらビルドするためのファイル。でも、書式がいろいろ面倒だから、Makefile.amを書いてAutotoolsでMakefileにするほうが簡単。

$ cat hello.c 
#include <stdio.h>
int
main (int argc, char* argv[])
{
  printf ("Hello, World!\n");
  return 0;
}

を書いたら、

$ make hello
cc     hello.c   -o hello

のように、勝手にソース名を予想してビルドしてくれる。この機能は、Makefile.amでも利用できる。

$ cat Makefile.am 
bin_PROGRAMS = hello

という一行のMakefile.amを書く。書式は
install先_カテゴリ = ターゲット
という簡単なもの。
後は、

$ autoscan
$ mv configure.scan configure.ac
$ vi configure.ac

ここで、

AM_INIT_AUTOMAKE([foreign 1.11])

の一行を追加。

$ autoreconf -i
$ ./configure
$ make

これでビルドできる。

autotoolsのメリットは、移植性のためにある。しかし、オープンソースの世界では、全部を理解する必要も無い。知恵は、移植したい人が出してくれる。

この程度の知識でパッケージ作りはできるので、そろそろGUIアプリでも書こう。