Autotools

こんなの とか こんなのを参照しつつ、unbound-1.0.2 の debian/rules とかログを確認。

build

ログが以下。

 debian/rules build
dh build --before configure
   dh_testdir
libtoolize --force
You should update your `aclocal.m4' by running aclocal.
aclocal
autoheader
autoconf
dh_auto_configure -- \
                --disable-rpath \
                --with-chroot-dir=/var/lib/unbound \
                --with-pidfile=/var/lib/unbound/unbound.pid
checking for gcc... gcc
(以下略

debian/rules によれば確かに上記の順でナニ。aclocal は man によると

automatically generate aclocal.m4 from configure.in

とある。その直前に実行されていると思われる libtoolize が出力していると思われるメセジが微妙に気になりますな。man で確認するに --force は

Replace existing libtool files. By default, `libtoolize' won't overwrite existing files.

との事。具体的に何をどうなのかが微妙なんですが、ヤッてみれば良いのかな。

debian/rules 確認

からナニ。

$ fakeroot debian/rules clean
dh clean
   dh_testdir
   dh_auto_clean
   dh_clean
$

で、順に中身をナニしてみるか。こんどは一つづつ。

$ dh build --before configure
    dh_testdir
$ ls -l
total 1988
-rw-r--r-- 1 root root   1489 Jan  3  2007 LICENSE
-rw-r--r-- 1 root root  12191 Nov  1 11:01 Makefile.in
-rw-r--r-- 1 root root    484 Feb 22  2008 README
-rw-r--r-- 1 root root 235502 Aug  7 07:10 aclocal.m4
-rw-r--r-- 1 root root  10998 Feb 19  2007 acx_pthread.m4
drwxr-xr-x 2 root root   4096 Aug  7 07:10 compat
-rw-r--r-- 1 root root  15183 Jul 17 09:00 config.h.in
-rwxr-xr-x 1 root root 839796 Aug  7 07:10 configure
-rw-r--r-- 1 root root  30312 Jul 17 09:00 configure.ac
drwxr-xr-x 2 root root   4096 Aug  7 07:10 contrib
drwxr-xr-x 2 root root   4096 Aug  7 07:10 daemon
drwxr-xr-x 2 root root   4096 Nov  4 09:50 debian
drwxr-xr-x 2 root root   4096 Nov  1 11:01 doc
-rwxr-xr-x 1 root root   5598 Jan  3  2007 install-sh
drwxr-xr-x 2 root root   4096 Aug  7 07:10 iterator
-rw-r--r-- 1 root root 790211 Jul 15 15:05 ldns-src.tar.gz
drwxr-xr-x 2 root root   4096 Aug  7 07:10 libunbound
drwxr-xr-x 3 root root   4096 Aug  7 07:10 services
drwxr-xr-x 2 root root   4096 Nov  1 11:01 smallapp
drwxr-xr-x 2 root root   4096 Aug  7 07:10 testcode
drwxr-xr-x 2 root root  12288 Aug  7 07:10 testdata
drwxr-xr-x 4 root root   4096 Aug  7 07:10 util
drwxr-xr-x 2 root root   4096 Aug  7 07:10 validator
$ libtoolize --force
You should update your `aclocal.m4' by running aclocal.
$ ls -l
total 1988
-rw-r--r-- 1 root root   1489 Jan  3  2007 LICENSE
-rw-r--r-- 1 root root  12191 Nov  1 11:01 Makefile.in
-rw-r--r-- 1 root root    484 Feb 22  2008 README
-rw-r--r-- 1 root root 235502 Aug  7 07:10 aclocal.m4
-rw-r--r-- 1 root root  10998 Feb 19  2007 acx_pthread.m4
drwxr-xr-x 2 root root   4096 Aug  7 07:10 compat
lrwxrwxrwx 1 root root     31 Nov  4 09:50 config.guess -> /usr/share/libtool/config.guess
-rw-r--r-- 1 root root  15183 Jul 17 09:00 config.h.in
lrwxrwxrwx 1 root root     29 Nov  4 09:50 config.sub -> /usr/share/libtool/config.sub
-rwxr-xr-x 1 root root 839796 Aug  7 07:10 configure
-rw-r--r-- 1 root root  30312 Jul 17 09:00 configure.ac
drwxr-xr-x 2 root root   4096 Aug  7 07:10 contrib
drwxr-xr-x 2 root root   4096 Aug  7 07:10 daemon
drwxr-xr-x 2 root root   4096 Nov  4 09:50 debian
drwxr-xr-x 2 root root   4096 Nov  1 11:01 doc
-rwxr-xr-x 1 root root   5598 Jan  3  2007 install-sh
drwxr-xr-x 2 root root   4096 Aug  7 07:10 iterator
-rw-r--r-- 1 root root 790211 Jul 15 15:05 ldns-src.tar.gz
drwxr-xr-x 2 root root   4096 Aug  7 07:10 libunbound
lrwxrwxrwx 1 root root     28 Nov  4 09:50 ltmain.sh -> /usr/share/libtool/ltmain.sh
drwxr-xr-x 3 root root   4096 Aug  7 07:10 services
drwxr-xr-x 2 root root   4096 Nov  1 11:01 smallapp
drwxr-xr-x 2 root root   4096 Aug  7 07:10 testcode
drwxr-xr-x 2 root root  12288 Aug  7 07:10 testdata
drwxr-xr-x 4 root root   4096 Aug  7 07:10 util
drwxr-xr-x 2 root root   4096 Aug  7 07:10 validator
$

ざっくり上記のみであれば

  • config.guess
  • config.sub
  • ltmain.sh

が libtoolize --force で作成された模様。上記を元に aclocal 以降で云々、なのでしょうか。

aclocal

という事で次は aclocal

$ aclocal
$ ls -l
total 1996
-rw-r--r-- 1 root root   1489 Jan  3  2007 LICENSE
-rw-r--r-- 1 root root  12191 Nov  1 11:01 Makefile.in
-rw-r--r-- 1 root root    484 Feb 22  2008 README
-rw-r--r-- 1 root root 238659 Nov  4 09:55 aclocal.m4
-rw-r--r-- 1 root root  10998 Feb 19  2007 acx_pthread.m4
drwxr-xr-x 2 root root   4096 Nov  4 09:55 autom4te.cache
drwxr-xr-x 2 root root   4096 Aug  7 07:10 compat
lrwxrwxrwx 1 root root     31 Nov  4 09:50 config.guess -> /usr/share/libtool/config.guess
-rw-r--r-- 1 root root  15183 Jul 17 09:00 config.h.in
lrwxrwxrwx 1 root root     29 Nov  4 09:50 config.sub -> /usr/share/libtool/config.sub
-rwxr-xr-x 1 root root 839796 Aug  7 07:10 configure
-rw-r--r-- 1 root root  30312 Jul 17 09:00 configure.ac
drwxr-xr-x 2 root root   4096 Aug  7 07:10 contrib
drwxr-xr-x 2 root root   4096 Aug  7 07:10 daemon
drwxr-xr-x 2 root root   4096 Nov  4 09:50 debian
drwxr-xr-x 2 root root   4096 Nov  1 11:01 doc
-rwxr-xr-x 1 root root   5598 Jan  3  2007 install-sh
drwxr-xr-x 2 root root   4096 Aug  7 07:10 iterator
-rw-r--r-- 1 root root 790211 Jul 15 15:05 ldns-src.tar.gz
drwxr-xr-x 2 root root   4096 Aug  7 07:10 libunbound
lrwxrwxrwx 1 root root     28 Nov  4 09:50 ltmain.sh -> /usr/share/libtool/ltmain.sh
drwxr-xr-x 3 root root   4096 Aug  7 07:10 services
drwxr-xr-x 2 root root   4096 Nov  1 11:01 smallapp
drwxr-xr-x 2 root root   4096 Aug  7 07:10 testcode
drwxr-xr-x 2 root root  12288 Aug  7 07:10 testdata
drwxr-xr-x 4 root root   4096 Aug  7 07:10 util
drwxr-xr-x 2 root root   4096 Aug  7 07:10 validator
$

ええと、このタイミングで aclocal.m4 と autom4te.cache が更新されている模様。ちなみに libtoolize の瞬間に debian ディレクトリが touch されているらしい。
# debian の中身に変更は無い、というのが根拠なんですが ...

autoheader

次は autoheader との事。

$ autoheader
$ ls -l
total 1996
-rw-r--r-- 1 root root   1489 Jan  3  2007 LICENSE
-rw-r--r-- 1 root root  12191 Nov  1 11:01 Makefile.in
-rw-r--r-- 1 root root    484 Feb 22  2008 README
-rw-r--r-- 1 root root 238659 Nov  4 09:55 aclocal.m4
-rw-r--r-- 1 root root  10998 Feb 19  2007 acx_pthread.m4
drwxr-xr-x 2 root root   4096 Nov  4 10:05 autom4te.cache
drwxr-xr-x 2 root root   4096 Aug  7 07:10 compat
lrwxrwxrwx 1 root root     31 Nov  4 09:50 config.guess -> /usr/share/libtool/config.guess
-rw-r--r-- 1 root root  15183 Jul 17 09:00 config.h.in
lrwxrwxrwx 1 root root     29 Nov  4 09:50 config.sub -> /usr/share/libtool/config.sub
-rwxr-xr-x 1 root root 839796 Aug  7 07:10 configure
-rw-r--r-- 1 root root  30312 Jul 17 09:00 configure.ac
drwxr-xr-x 2 root root   4096 Aug  7 07:10 contrib
drwxr-xr-x 2 root root   4096 Aug  7 07:10 daemon
drwxr-xr-x 2 root root   4096 Nov  4 09:50 debian
drwxr-xr-x 2 root root   4096 Nov  1 11:01 doc
-rwxr-xr-x 1 root root   5598 Jan  3  2007 install-sh
drwxr-xr-x 2 root root   4096 Aug  7 07:10 iterator
-rw-r--r-- 1 root root 790211 Jul 15 15:05 ldns-src.tar.gz
drwxr-xr-x 2 root root   4096 Aug  7 07:10 libunbound
lrwxrwxrwx 1 root root     28 Nov  4 09:50 ltmain.sh -> /usr/share/libtool/ltmain.sh
drwxr-xr-x 3 root root   4096 Aug  7 07:10 services
drwxr-xr-x 2 root root   4096 Nov  1 11:01 smallapp
drwxr-xr-x 2 root root   4096 Aug  7 07:10 testcode
drwxr-xr-x 2 root root  12288 Aug  7 07:10 testdata
drwxr-xr-x 4 root root   4096 Aug  7 07:10 util
drwxr-xr-x 2 root root   4096 Aug  7 07:10 validator
$

うーん。この時点で更新されたのは autom4te.cache のみ。このあたりは参照している図面と異なる状態遷移なのかなぁ。ってか、中間ファイルを云々、に見えます。

autoconf

$ autoconf
$ ls -l
total 2008
-rw-r--r-- 1 root root   1489 Jan  3  2007 LICENSE
-rw-r--r-- 1 root root  12191 Nov  1 11:01 Makefile.in
-rw-r--r-- 1 root root    484 Feb 22  2008 README
-rw-r--r-- 1 root root 238659 Nov  4 09:55 aclocal.m4
-rw-r--r-- 1 root root  10998 Feb 19  2007 acx_pthread.m4
drwxr-xr-x 2 root root   4096 Nov  4 10:05 autom4te.cache
drwxr-xr-x 2 root root   4096 Aug  7 07:10 compat
lrwxrwxrwx 1 root root     31 Nov  4 09:50 config.guess -> /usr/share/libtool/config.guess
-rw-r--r-- 1 root root  15183 Jul 17 09:00 config.h.in
lrwxrwxrwx 1 root root     29 Nov  4 09:50 config.sub -> /usr/share/libtool/config.sub
-rwxr-xr-x 1 root root 852941 Nov  4 10:11 configure
-rw-r--r-- 1 root root  30312 Jul 17 09:00 configure.ac
drwxr-xr-x 2 root root   4096 Aug  7 07:10 contrib
drwxr-xr-x 2 root root   4096 Aug  7 07:10 daemon
drwxr-xr-x 2 root root   4096 Nov  4 09:50 debian
drwxr-xr-x 2 root root   4096 Nov  1 11:01 doc
-rwxr-xr-x 1 root root   5598 Jan  3  2007 install-sh
drwxr-xr-x 2 root root   4096 Aug  7 07:10 iterator
-rw-r--r-- 1 root root 790211 Jul 15 15:05 ldns-src.tar.gz
drwxr-xr-x 2 root root   4096 Aug  7 07:10 libunbound
lrwxrwxrwx 1 root root     28 Nov  4 09:50 ltmain.sh -> /usr/share/libtool/ltmain.sh
drwxr-xr-x 3 root root   4096 Aug  7 07:10 services
drwxr-xr-x 2 root root   4096 Nov  1 11:01 smallapp
drwxr-xr-x 2 root root   4096 Aug  7 07:10 testcode
drwxr-xr-x 2 root root  12288 Aug  7 07:10 testdata
drwxr-xr-x 4 root root   4096 Aug  7 07:10 util
drwxr-xr-x 2 root root   4096 Aug  7 07:10 validator
$

ここで configure が出力されております。

autom4te とか

微妙。m4 とか全然ワケワカだけに。

で、ここでいきなり clean

してみる。

$ fakeroot debian/rules clean
(ry
$ ls -l
total 2004
-rw-r--r-- 1 root root   1489 Jan  3  2007 LICENSE
-rw-r--r-- 1 root root  12191 Nov  1 11:01 Makefile.in
-rw-r--r-- 1 root root    484 Feb 22  2008 README
-rw-r--r-- 1 root root 238659 Nov  4 09:55 aclocal.m4
-rw-r--r-- 1 root root  10998 Feb 19  2007 acx_pthread.m4
drwxr-xr-x 2 root root   4096 Aug  7 07:10 compat
-rw-r--r-- 1 root root  15183 Jul 17 09:00 config.h.in
-rwxr-xr-x 1 root root 852941 Nov  4 10:11 configure
-rw-r--r-- 1 root root  30312 Jul 17 09:00 configure.ac
drwxr-xr-x 2 root root   4096 Aug  7 07:10 contrib
drwxr-xr-x 2 root root   4096 Aug  7 07:10 daemon
drwxr-xr-x 2 root root   4096 Nov  4 10:26 debian
drwxr-xr-x 2 root root   4096 Nov  1 11:01 doc
-rwxr-xr-x 1 root root   5598 Jan  3  2007 install-sh
drwxr-xr-x 2 root root   4096 Aug  7 07:10 iterator
-rw-r--r-- 1 root root 790211 Jul 15 15:05 ldns-src.tar.gz
drwxr-xr-x 2 root root   4096 Aug  7 07:10 libunbound
drwxr-xr-x 3 root root   4096 Aug  7 07:10 services
drwxr-xr-x 2 root root   4096 Nov  1 11:01 smallapp
drwxr-xr-x 2 root root   4096 Aug  7 07:10 testcode
drwxr-xr-x 2 root root  12288 Aug  7 07:10 testdata
drwxr-xr-x 4 root root   4096 Aug  7 07:10 util
drwxr-xr-x 2 root root   4096 Aug  7 07:10 validator
$
  • debian が touch されてる
  • autom4te.cache は削除
  • configure はそのまま
  • aclocal.m4 もそのまま

結局何をしようとしたのかワケワカになりつつあるんですが、微妙な中間ファイルで一層迷路に入りつつあるのでしょうか。