FreeBSD ハンドブック : アプリケーションのインストール : ports コレクション : スケルトン : Makefile
Previous: スケルトン
Next: files ディレクトリ

4.4.1. Makefile

スケルトンのもっとも重要な要素は Makefile です. Makefile は ports を どのようにコンパイルし, インストールをおこなうかを指示する いろいろな命令を含んでいます. 以下に ElectricFence の Makefile を示します:-

# New ports collection makefile for:  Electric Fence
# Version required:	2.0.5
# Date created: 	13 November 1997
# Whom:			jraynard
#
# $Id: ports.sgml,v 1.18 1998/11/22 15:05:41 motoyuki Exp $
#

DISTNAME=	ElectricFence-2.0.5
CATEGORIES=	devel
MASTER_SITES=	${MASTER_SITE_SUNSITE}
MASTER_SITE_SUBDIR=	devel/lang/c

MAINTAINER=	jraynard@freebsd.org

MAN3=		libefence.3

do-install:
	${INSTALL_DATA} ${WRKSRC}/libefence.a ${PREFIX}/lib
	${INSTALL_MAN} ${WRKSRC}/libefence.3 ${PREFIX}/man/man3

.include <bsd.port.mk>

"#" で始まる行は, 人間のためのコメント行です. (ほとんどの Unix のスクリプトと同じですね.)

`DISTNAME" は tarball の名前から拡張子を取ったものです.

`CATEGORIES" はこのプログラムの種類を示します. この場合, 開発者向けのユーティリティということになります. 完全なリストはこのハンドブックの カテゴリ をみてください.

`MASTER_SITES" はマスタ FTP サイトの URL です. もしローカルシステムに tarball がない場合には, ここから取得します. これは信頼できると考えられているサイトで, 通常はそのプログラムを インターネット上で公式に配布しているサイトです. (そのソフトウェアがインターネット上で「公式に」配布されているとしたら)

`MAINTAINER" は, 例えば新しいバージョンのプログラムが出た場合に, 必要であればスケルトンの更新をおこなう保守担当者の電子メールアドレスです.

次の数行はとりあえず飛ばします.

 .include <bsd.port.mk> 
この行は, この ports に必要なその他の命令やコマンドは `bsd.port.mk" に 入っているということを示しています. これらはすべての ports で共通のものなので, それぞれの Makefile に書いておく必要はありません. そのため単一の標準ファイルに まとめられているのです.

ここでは Makefile がどう働くかを詳細に調査するのが目的ではありませんので, ``MAN3'' で始まる行は, インストールの後に ElectricFence のマニュアルを 圧縮するために使用される, と言っておくだけで充分でしょう. これにより, 貴重なディスクスペースが保護されているわけです. オリジナルの port では ``install'' ターゲットが用意されていないので, ``do-install'' からの 3 行が この ports によって生成されたファイルを 正しい場所に置くために使用されます.


FreeBSD ハンドブック : アプリケーションのインストール : ports コレクション : スケルトン : Makefile
Previous: スケルトン
Next: files ディレクトリ