ソースコードの構成は、下記のようになっています。

	makes/
		make に利用している仕組み

	include/gfarm および
	 → 生成物 ${prefix}/include/gfarm/*.h
		gfarm ライブラリのユーザー への公開ヘッダ

	lib/libgfarm/ → 生成物 ${prefix}/lib/libgfarm.a
		gfarm ライブラリ
		ユーザーへ公開しない関数の prototype 宣言は、
		こちらのディレクトリ以下の *.h にある。こちらのヘッダ
		はインストールされない。

		gfutil/
			gfarm と GFSL の双方から利用される部分を
			切り出したもの。
				libgfarm/gfsl  → libgfarm/gfutil
				libgfarm/gfarm → libgfarm/gfsl
				libgfarm/gfarm → libgfarm/gfutil
			という依存関係になる。

		gfsl/
			GFSL - GFarm Security Layer。
			globus の security layer である GSI との glue。
			devtty@SourceForge 作成。
			/usr/prj/etl/doc/GFSL/ 参照。
			かつては、${prefix}/lib/libgfsl.a という独立した
			ライブラリだった。

		gfarm/
			gfarm ライブラリの本体

	lib/gfs_hook/ → 生成物 ${prefix}/lib/{gfs_hook.o,gfs_hook_debug.o}
		open(2) や read(2), write(2) など、UNIX 標準の
		関数を置き換え、"gfarm:××" というファイルへの
		アクセスは、gfarm ライブラリへの呼びだしに変更
		する仕組み。
		
	server/gfmd/ → 生成物 ${prefix}/sbin/gfmd
		メタデータ・サーバー

	server/gfsd/ → 生成物 ${prefix}/sbin/gfsd
		各ファイルシステムノードで動作し、ファイル内容へのアクセスを
		提供するサーバー。

	gftools/ → ${prefix}/bin/*
		gfarm 関係の各種コマンド
		詳しくは man1, man8 参照

	gfptools/ → ${prefix}/bin/*
		gfarm スプール (gfarm:...) にインストールされるバイナリ

	bench/ → ${prefix}/bin/* (デフォールトでは生成しない)
		gfarm で利用しているベンチマーク・プログラム

	doc/ → 生成物 ${prefix}/share/doc/

		doc/docbook/{en,ja}/ref/ → インストールされない
			ほとんどの man page と HTML ファイルは、ここに
			ある DocBook 形式の SGML ファイルから自動生成
			されている。
			変更手順は、下記の通り。
			1. doc/docbook/{en,ja}/ref/ の下を修正、コミット
			2. "make man" を実行し、man page を再生成する。
			3. "make html" を実行し、html ファイルを再生成する。
			4. man page と html ファイルをコミット

		doc/html/{en,ja}/ref/ → 生成物 ${prefix}/share/doc/html/
			ここにあるファイルは、ほとんど全て
			doc/docbook/{en,ja}/ref/ から生成されている。
			従って、マニュアルの更新は、直接ここを変更する
			のではなく、doc/docbook/{en,ja}/ref/ を変更する
			必要がある。
			doc/docbook/{en,ja}/ref/ を参照。

			ただし、以下のファイルは例外で、別途手で保守する。
			doc/html/index.html
			doc/html/pic/*
			doc/html/en/ref/index.html
			doc/html/ja/ref/index.html
			doc/html/en/user/*
			doc/html/ja/user/*

	man/ → 生成物 ${prefix}/man/
		ここにあるファイルは、全て
		doc/docbook/{en,ja}/ref/ から生成されている。
		従って、マニュアルの更新は、直接ここを変更するのではなく、
		doc/docbook/{en,ja}/ref/ を変更する必要がある。
		doc/docbook/{en,ja}/ref/ を参照。

各ソース・ファイルは、下記のような機能分担になっています。

ChangeLog	変更ログ。gfarm-commits@lists.sourceforge.net に
		流れたメールを元に、建部さんが時々生成。
INSTALL.en	インストール・ドキュメント 英語版
INSTALL.ja	インストール・ドキュメント 日本語版

Makefile.in		Makefile のテンプレート
			configure コマンドを実行すると、これを元に
			Makefile を作成する。
configure.ac		configure スクリプトのソースコード
configure		autoconf コマンドを実行すると、
			configure.in を元に自動生成される。
include/gfarm/gfarm_config.h.in
			gfarm_config.h のテンプレート
			autoheader コマンドを実行すると、
			configure.ac を元に自動生成される。

makes/
	config.mk.in	config.mk のテンプレート
			configure コマンドを実行すると、これを元に
			config.mk を作成する。
			通常の Makefile は、var.mk 経由で、間接的に
			config.mk を読み込む。
	man.mk		man ディレクトリ用の共通 Makefile
	prog.mk		プログラム・ディレクトリ用の共通 Makefile
	subdir.mk	サブディレクトリに対して make を呼び出す場合用の
			共通 Makefile
	var.mk		各 Makefile に共通する make 変数設定
			各 Makefile は下記の行を含む。
				include $(top_srcdir)/makes/var.mk
	install-sh	インストールコマンド
	config.guess	autoconf パッケージの一部。
			configure が呼び出すサブ・コマンド。
	config.sub	autoconf パッケージの一部。
			configure が呼び出すサブ・コマンド。

include/gfarm/
	ここの Makefile は、下記の形式で読み込む。
		#include <gfarm/なんとか.h>

	error.h		エラーコード定義
	gfs.h		gfarm ファイルアクセス
	gfarm_misc.h	その他もろもろ
	gfarm.h		上記すべてのヘッダおよび <gfarm/gfarm_config.h> を
			まとめて読み込む

lib/Makefile

lib/libgfarm/gfutil/
	hash.h		ハッシュ関数
	hash.c

	gfevent.h	並列アクセス用 select()/poll() wrapper
	gfevent.c

	gfutil.h	
	logutil.c	デーモン用ログ関数
	daemon.c	deamon(3) ユーティリティ関数。デーモン用。
	limit.c		limit 関係 ユーティリティ関数。デーモンから呼ばれる。

lib/libgfarm/gfarm/

	Makefile.in

	liberror.c	<gfarm/gfarm_error.h> のエラーコード定義

	iobuffer.h	入出力用 fifo バッファ。gfp_xdr の下請けだが、
			gfp_xdr の利用者から直接呼びだされることもある。
	iobuffer.c
			
	gfp_xdr.h	通信、RPC において XDR に相当する処理
	gfp_xdr.c
	io_fd.h		gfp_xdr の下請け。file descriptor 経由の I/O を提供
	io_fd.c
	io_gfsl.c	gfp_xdr の下請け。GFSL 経由の I/O を提供
	io_gfsl.h

	hostspec.h	設定ファイル中のホスト・ネットワーク・アドレス処理
	hostspec.c
	param.h		設定ファイル中の netparam オプション処理
	param.c
	sockopt.c	設定ファイル中の sockopt オプション処理
	sockopt.h
	config.c	設定ファイル読み込み

	host.h		host のアドレス解決等
	host.c
		host.h の canonical_hostname に関する処理は、メタデータへの
		アクセスがあるので、注意が必要。
		それらについては、gfs_client および gfsd/gfmd からは
		呼び出せない。

	auth.h		認証ライブラリ
	auth_common.c	認証用の共通関数
	auth_client.c		認証、クライアント側
	auth_client_gsi.c	GFSL/GSI 認証、クライアント側
	auth_server.c		認証、サーバー側
	auth_server_gsi.c	GFSL/GSI 認証、サーバー側
	auth_config.c		認証に関する設定ファイルの処理

	gfm_proto.h	gfmd プロトコル定義
	gfm_client.c	gfmd クライアント側 RPC stub

	gfs_proto.h	gfsd プロトコル定義
	gfs_proto.c	gfs プロトコル共通関数
	gfs_client.h	gfs クライアント側 RPC 関数定義
	gfs_client.c	gfs クライアント側 RPC stub

	gfs_pio.h	<gfarm/gfs.h> で定義された gfarm ファイルアクセス
	gfs_pio.c	主ルーチン
	gfs_pio_local.c		local file store へのアクセス処理
	gfs_pio_remote.c	remote file store (gfsd) へのアクセス処理
	gfs_pio_default.c	default view に関する処理
	gfs_pio_global.c	global view に関する処理
	gfs_pio_section.c	index view, section view に関する処理 
	gfs_pio_misc.c		gfs_pio_*() 以外の <gfarm/gfs.h> 関数

	crc32.c		crc32を算出する関数
	filesystem.c	gfarm_filesystem に関する処理
	import_help.c	gfimport_{text,fixed} 等へのヘルパ関数
	lookup.c	パス名解決の処理
	metadb_ldap.c	LDAP アクセス処理。<gfarm/gfarm_metadb.h> の実装
	metadb_misc.c	metadb 関係のいろいろな処理
	metadb_server.c	gfarm_metadb_server に関する処理
	schedule.c	レプリカや計算ノードへのアクセスのスケジューリング
	stringlist.c	文字列リスト
	url.c		gfarm ファイル名の処理

lib/gfs_hook/
	Makefile.in
	hooks.c		gfs_hook の主処理
	hooks_64.c	64bit API に関する gfs_hook
	hooks_common.c	hooks.c と hooks_64.c の両方から#includeされる
	hooks_subr.h	gfs_hook 関係のサブルーチン
	hooks_subr.c	
	sysdep/linux/	gfs_hook の Linux 依存部

server/gfsd/
	Makefile
	loadavg.c	ロード・アベレージを得る OS 依存処理	
	gfsd.c		gfsd のメイン・プログラム

server/gfmd/
	Makefile

	gfmd.c		gfmd のメイン・プログラム。
	acl.c		acl の処理
	dir.c		DirEntry の処理
	fs.c		GFM_PROTO_* のプロトコル処理
	inode.c		inode の処理
	peer.c		peer の処理
	process.c	process の処理
	quota.c		quota の処理
	user.c		user の処理
	group.c		group の処理
	xattr.c		xattr の処理
	job.c

	abstract_host.c	host, mdhost の共通処理,
			back channel, gfmd channelの共通処理
	host.c		host (gfsd ノード)の処理
	back_channel.c	back channel (gfsd-gfmd 間通信用)の処理
			GFS_PROTO_* のプロトコル処理
	mdhost.c	mdhost (gfmd ノード)の処理
			GFM_PROTO_* の内、gfmd channel用プロトコルの処理
	gfmd_channel.c	gfmd channel (gfmd-gfmd 間通信用)の処理

	db_access.c	DB抽象化層の処理
	db_common.c	DBオブジェクトに対する補助的な処理
	db_none.c	db_ops の実装、エラーのみを返す
	db_pgsql.c	db_ops の実装、postgres との通信処理
	db_ldap.c	db_ops の実装、ldap との通信処理
	dead_file_copy.c	dead file copy の処理

	db_journal.c	ジャーナル関連の処理
	journal_file.c	ジャーナルファイルの低レベルI/Oの処理
	db_journal_apply.c	db_ops の実装、slave gfmd でのジャーナル反映処理

	callout.c	call outの処理
	subr.c		他の .o に依存しないユーティリティ関数
	rpcsubr.c	rpc関連のユーティリティ関数
	thrpool.c	スレッドプールの処理

bench/
	Makefile
	bwlat-syscache/bwlat-syscache.c
	nconnect/nconnect.c
	thput-fsys/thput-fsys.c
	thput-gfpio/thput-gfpio.c
	thput-pvfs/thput-pvfs.c
	thput-fsstripe/thput-fsstripe.c

package/
	redhat/

	solaris/

debian/
