スケルトンのもっとも重要な要素は Makefile です. Makefile は ports を どのようにコンパイルし, インストールをおこなうかを指示する いろいろな命令を含んでいます. 以下に bash の Makefile を示します:-
# New ports collection makefile for: bash # Version required: 1.14.5 # Date created: 21 August 1994 # Whom: jkh # # Makefile,v 1.13 1995/10/04 14:45:01 asami Exp # DISTNAME= bash-1.14.5 CATEGORIES= shells MASTER_SITES= ftp://slc2.ins.cwru.edu/pub/dist/ MAINTAINER= ache@FreeBSD.ORG post-install: .if !defined(NOMANCOMPRESS) gzip -9nf ${PREFIX}/man/man1/bash.1 ${PREFIX}/man/man1/bash_builtins.1 .endif .include <bsd.port.mk>
"#" で始まる行は, 人間のためのコメント行です. (ほとんどの Unix のスクリプトと同じですね.)
`DISTNAME" は tarball の名前から拡張子を取ったものです.
`CATEGORIES" はこのプログラムの種類を示します.
`MASTER_SITES" はマスタ FTP サイトの URL です. もしローカルシステムに tarball がない場合には, ここから取得します. これは信頼できると考えられているサイトで, 通常はそのプログラムを インターネット上で公式に配布しているサイトです. (そのソフトウェアがインターネット上で「公式に」配布されているとしたら)
`MAINTAINER" は, 例えば新しいバージョンのプログラムが出た場合に,
必要であればスケルトンの更新をおこなう保守担当者の電子メールアドレスです.
(注: 「保守担当者」というのは, スケルトンの管理者という意味であって,
プログラムのサポートをおこなう責任は 負っていません.
もし
ports の不具合 を見つけた場合には,
電子メールは FreeBSD 移植ソフトウエアメーリングリスト
<freebsd-ports@FreeBSD.ORG>
に送ってください.
保守担当者には 送らないで ください. よろしく!)
次の数行はとりあえず飛ばします.
.include <bsd.port.mk>この行は, この ports に必要なその他の命令やコマンドは `bsd.port.mk" に 入っているということです. すべての ports で同じものなので, すべての Makefile に 書いておく必要はありません. そのため単一の標準ファイルにまとめられています.
ここでは Makefile がどう働くかを詳細に調査するのが目的ではありませんので, `post-install" で始まる行は, bsd.port.mk に書かれている, プログラムを インストールした後での処理を置き換えていて, 最終的な場所に man ページを 置いた後で圧縮するように指示している, と言っておくだけで充分でしょう.