automakeを突っ込んで勉強してみる(その2 〜 共通機能 〜)
はじめに
automakeを突っ込んで勉強してみる(その1 〜 全体像 〜) - tomohikosevenの日記 からの続きである。
目標
共通機能でやりたいことは以下の2点である。
- 静的ライブラリの生成
- ライブラリのインストール ★ ここのやり方を見つけるのに時間がかかった。
共通機能の全体像とファイル
共通機能のディレクトリ構造は以下のとおり
test2 <=== トップディレクトリ +- Makefile.am +- common +- include | `- common.h ☆ メイン機能が取り込むヘッダファイル +- lib ★ 静的ライブラリのインストール場所 +- src |- Makefile.am ☆ Makeファイル `- common.c ☆ 共通機能の実体(ソース)
各ファイルの中身
共通機能で必要なファイル群の中身を下記に示す。
注目は、Makefile.amである。
静的ライブラリをどうしたらカレント以外に生成できるか調べた結果、やっと「libdir」で指定することがわかった。
(静的ライブラリの作成方法は、他サイトを参考にしてください。)
Makefile.am
libdir = ../lib ★ ライブラリのインストール場所 lib_LIBRARIES = libcommon.a ★ 静的ライブラリの名前 libcommon_a_SOURCES = common.c ★ 静的ライブラリ生成に必要なもの
common.c
#includevoid print_common( ) { printf( "%s\n", __func__ ); }
common.h
extern void print_common( );