automakeを突っ込んで勉強してみる(その1 〜 全体像 〜)

はじめに

 autoreconfでhello worldを試してみて、もう少し突っ込んでいこうと思い、少し複雑にしたバージョンを試した。
その結果を記す。

全体でやりたいこと

  1. 複数のディレクトリを利用し、機能単位に分ける。
  2. ソース、インクルードファイルおよび生成物は、別ディレクトリとする。
  3. 静的ライブラリおよび動的ライブラリを作成し、この2つをリンクした生成物を作る。

全体像

 全体のディレクトリ/ファイル 構造を下記に示す。

test2                         ★ トップディレクトリ
 +- Makefile.am             
 +- common                    ★ 共通機能
 |     +- include
 |     |   `- common.h
 |     +- lib
 |     +- src
 |         |- Makefile.am
 |         `- common.c
 +- main                      ★ メイン機能
 |     +- bin
 |     +- src
 |          |- Makefile.am
 |          `- main.c
 `- sub                       ★ サブ機能
      +- include
      |     `- sub.h
      +- lib
      +- src
           |- Makefile.am
           `- sub.c
      

生成物と各生成物の関係は以下のようなイメージ。

 +----------+   動的リンク    +----------+
 |  main    | --------------> |   sub    |
 +----------+                 +----------+
      |         静的リンク    +----------+
      + --------------------- |  common  |
                              +----------+

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