第4章 ディレクトリ構成

この章では、atmark-distのディレクトリ構成について説明します。ディレクトリ構成を理解することは、atmark-distをベースに開発を行うあたり、非常に重要なポイントとなります。

この章では各ディレクトリの概要を説明するとともに、各ディレクトリに関連した説明がなされている章を紹介します。

[PC ~]$ cd atmark-dist-[version]
[PC ~/atmark-dist]$ tree -L 1 -F
.
|-- COPYING
|-- Documentation/
|-- Makefile
|-- README
|-- SOURCE
|-- bin/
|-- config/
|-- freeswan/
|-- glibc/
|-- include/
|-- lib/
|-- linux-2.6.x -> ../linux-[version]/
|-- tools/
|-- uClibc/
|-- user/
|-- vendors/
`-- version
      
      12 directories, 5 files

4.1. Makefile

atmark-distは、すべてmakeコマンドによって作業を行います。このatmark-dist/MakefileをトップレベルMakefileと呼び、他のディレクトリにあるMakefileとは区別することにします。トップレベルMakefileは、atmark-distのビルドをコントロールする大事なファイルです。ここで定義されているターゲットは第6章の章で詳しく説明します。またMakeコマンドについては、第5章で簡単に説明します。

4.2. config

configディレクトリには設定に必要なscriptやMakefileが収録されています。

Makefileとconfig.inについては、項10.2. 「プロダクト別のアプリケーション」の章で詳しく説明します。

4.3. tools

toolsには、ビルドに必要ないくつかのツールが収録されています。このディレクトリに収録されているromfs-inst.shはプロダクトディレクトリのMakefileでよく使います。第9章で、詳しく説明します。

cksumは、NetFlashで使うことがあります。NetFlashについては、項13.1. 「NetFlash」を参照してください。

4.4. glibcとuClibc

glibc (GNU C library)とuClibcディレクトリには、atmark-distで選択可能なCライブラリのソースコードが収録されています。

4.5. user

このディレクトリにはユーザーランドアプリケーションが収録されています。多くのアプリケーションは、GNU/Linux用のアプリケーションを atmark-distでも使用できるように変更したものですが、atmark-dist専用に開発されたものも含まれます。

atmark-distをベースにソフトウェア開発を行う上で特徴的なアプリケーションは第13章で詳しく説明します。

4.6. vendors

vendorsディレクトリは以下のようになっています。

[PC ~/atmark-dist]$ tree vendors
vendors
    :
    :
|-- AtmarkTechno
|   |-- Armadillo
|   |-- Armadillo-210.Base
    :
    :
|   |-- Armadillo-9
|        |-- Config.in
|        |-- Makefile
|        |-- config.arch
|        |-- config.uClibc
|        |-- config.vendor
|        |-- etc
    :
    :
|   `-- SUZAKU-V.SZ410
|        |-- Config.in
|        |-- Makefile
|        |-- config.arch
|        |-- config.linux-2.6.x
|        |-- config.uClibc
|        |-- config.vendor
|        |-- etc
    :
    :
|-- config
|   |-- arm
|   |    `-- config.arch
|   |-- arm-vfp
|   |    `-- config.arch
|   |-- armnommu
|   |    `-- config.arch
|   |-- common
|   |    `-- config.arch
|   |-- config.languages
|   |-- h8300
|   |    `-- config.arch
|   |-- host
|   |    `-- config.arch
|   |-- i386
    :
    :

vendorsディレクトリの中には、ベンダー名のディレクトリがたくさん入っています。AtmarkTechnoもそのうちのひとつです。ベンダー名のディレクトリの中にはプロダクト用のサブディレクトリが複数入っています。AtmarkTechnoディレクトリ内には、Armadilloをはじめ、atmark-distに対応しているプロダクトがそれぞれ入っています。これらのディレクトリをプロダクトディレクトリと呼びます。プロダクトディレクトリには、個々の製品用のイメージをビルドするためのさまざまなファイルが入っています。プロダクトディレクトリについては、第8章を参照してください。

ベンダー名のディレクトリ以外には、configというディレクトリがvendorsディレクトリの中にあります。アーキテクチャごとのデフォルト設定がconfig.archという名前でそれぞれのディレクトリ内に保存されています。このconfig.archはプロダクトディレクトリのconfig.archから参照されています。詳しくは項8.1. 「config.arch」を参照してください。