automakeを突っ込んで勉強してみる(その3 〜 サブ機能 〜)
はじめに
automakeを突っ込んで勉強してみる(その2 〜 共通機能 〜) - tomohikosevenの日記 からの続きである。
共通機能の全体像とファイル
サブ機能のディレクトリ構造は以下のとおり
`- sub <==== サブ機能 +- include | `- sub.h ☆ メイン機能が取り込むヘッダファイル +- lib ★ 動的ライブラリのインストール場所 +- src |- Makefile.am ☆ Makeファイル `- sub.c ☆ サブ機能の実体(ソース)
各ファイルの中身
サブ機能で必要なファイル群の中身を下記に示す。
ここで注目したいのが、libdirのパス指定である。絶対パスでないとダメだったこと。ツールが相対パスだと怒るのである。
Makefile.am
libdir = /home/andre/work/autoreconf/test/sub/lib ★ 絶対パスでないとツールに怒られる lib_LTLIBRARIES = libsub.la ★ 動的ライブラリ名に注意:ここでは、[.so]とは書かない。 libsub_la_SOURCES = sub.c
sub.c
#includevoid print_sub() { printf( "%s\n", __func__ ); }
sub.h
extern void print_sub();
lib配下の生成物一覧
lib配下にできた生成物を示す。
libsub.la がいったい何者なのかはわからない。
andre@andre-VirtualBox:~/work/autoreconf/test/sub/lib$ ll 合計 28 drwxrwxr-x 2 andre andre 4096 2012-08-13 10:13 ./ drwxrwxr-x 5 andre andre 4096 2012-08-13 09:23 ../ -rw-r--r-- 1 andre andre 4382 2012-08-13 10:13 libsub.a -rwxr-xr-x 1 andre andre 954 2012-08-13 10:13 libsub.la* lrwxrwxrwx 1 andre andre 15 2012-08-13 10:13 libsub.so -> libsub.so.0.0.0* lrwxrwxrwx 1 andre andre 15 2012-08-13 10:13 libsub.so.0 -> libsub.so.0.0.0* -rwxr-xr-x 1 andre andre 6863 2012-08-13 10:13 libsub.so.0.0.0*