第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章Makeの基本で簡単に説明します。

4.2. config

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

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

4.3. tools

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

cksumは、NetFlashで使うことがあります。NetFlashについては、「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から参照されています。詳しくは「config.arch」を参照してください。