automakeを突っ込んで勉強してみる(その2 〜 共通機能 〜)

目標

 共通機能でやりたいことは以下の2点である。

  1. 静的ライブラリの生成
  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

#include

void
print_common( )
{
    printf( "%s\n", __func__ );
}

common.h

extern void print_common( );

automakeを突っ込んで勉強してみる(その3 〜 サブ機能 〜) - tomohikosevenの日記 に続く