This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

Makefile のサンプル

Chapter 16. Makefile のサンプル

これは port の Makefile を作る際のお手本です. かぎかっこ ([]) 内のコメントは忘れずに取ってください.

変数の順番, 段落の間の空行など, Makefile を作るときはなるべくこの形式に従ってください. この形式は重要な情報が簡単に見つけられるように設計されています. portlint を使って Makefile をチェックすることが推奨されています.

    [ヘッダ ... どのような port の Makefile かすぐにわかるようになっています]
    # New ports collection makefile for:	xdvi
    ["version required" 行は, PORTVERSION 変数では port のバージョンを
    十分に表現できない場合にのみ必要です. ]
    # Version required:    pl18 + japanization patches 18.1 and 18.2
    [この Makefile の最初の版が作成された日付です.
     この port をアップグレードするときには変えないでください.]
    # Date created:	26 May 1995
    [このソフトウェアを最初に FreeBSD に port した人の名前, つまり,
     この Makefile の最初の版を書いた人です. この port をアップグレー
     ドするとき, この行も変えないでください.]
    # Whom:		Satoshi Asami <asami@FreeBSD.org>
    #
    # $FreeBSD$
    [ ^^^^^^^^^ この部分は, CVS ツリーに入れる時に自動的に RCS の ID 文字列に
     置き換えられます.]
    #
    
    [port 自体, およびオリジナルのソースを取ってくるところを記述する部分.
     最初は必ず PORTNAME と PORTVERSION, そして必要なら PKGNAME,
     CATEGORIES, 続いて MASTER_SITES が置かれ, さらに MASTER_SITE_SUBDIR が
     置かれることもあります.  必要なら PKGNAMEPREFIX と PKGNAMESUFFIX が
     それに続き, そして DISTNAME, EXTRACT_SUFX, DISTFILES が,
     また, その後に必要に応じて EXTRACT_ONLY が置かれます.]
    PORTNAME=      xdvi
    PORTVERSION=   18.2
    CATEGORIES=	print
    [MASTER_SITE_* マクロを使用しない場合は,
    最後のスラッシュを忘れないように ("/")!]
    MASTER_SITES= ${MASTER_SITE_XCONTRIB}
    MASTER_SITE_SUBDIR= applications
    DISTNAME=      xdvi-pl18
    [ソースファイルが標準の ".tar.gz" 形式でない時にこれを使いましょう]
    EXTRACT_SUFX=	.tar.Z
    
    [配布パッチセクション -- ない場合もあります]
    PATCH_SITES=	ftp://ftp.sra.co.jp/pub/X11/japanese/
    PATCHFILES=	xdvi-18.patch1.gz xdvi-18.patch2.gz
    
    [保守責任者 -- これは *必ず* 必要です. 担当者 (あなた) 自身, あるいは
     担当者に素早く連絡をとれる人のアドレスを書いてください. どうしてもこ
     こに自分のアドレスを書くのがいやな人は "ports@FreeBSD.org" と書いて
     もいいです]
    MAINTAINER=	asami@FreeBSD.org
    
    [依存するport -- ない場合もあります]
    RUN_DEPENDS=	gs:${PORTSDIR}/print/ghostscript
    LIB_DEPENDS=	Xpm.5:${PORTSDIR}/graphics/xpm
    
    [ここには標準の bsd.port.mk の変数で, 上のどれにもあてはまらないものを
     書きます]
    [コンフィグレーション, コンパイル, インストールなどの時に質問をする
     なら...]
    IS_INTERACTIVE=yes
    [${DISTNAME} 以外のディレクトリにソースが展開されるなら...]
    WRKSRC=	${WRKDIR}/xdvi-new
    [配布されているパッチが ${WRKSRC} に対する相対パスで作られてい
     い場合にこの変数の指定が必要かも...]
    PATCH_DIST_STRIP=	-p1
    [GNU autoconf によって生成された "configure" スクリプトを走らせたいなら...]
    GNU_CONFIGURE=	yes
    [/usr/bin/makeでなく, GNU make を使わないといけないなら...]
    USE_GMAKE=	yes
    [これが X のアプリケーションで "xmkmf -a" を走らせたいなら...]
    USE_IMAKE=	yes
    [などなど]
    
    [下の方のルールで使う非標準の変数]
    MY_FAVORITE_RESPONSE=	"yeah, right"
    
    [そして, 特別なターゲット, 使用順に]
    pre-fetch:
    	i go fetch something, yeah
    
    post-patch:
    	i need to do something after patch, great
    
    pre-install:
    	and then some more stuff before installing, wow
    
    [最後には必ず]
    .include <bsd.port.mk>

FreeBSD ports システムに関する質問は <ports@freebsd.org> へ(英語で),
FreeBSD ports に関する日本語での議論は <ports-jp@jp.FreeBSD.org> へお願いします.
この文書の原文に関するお問い合わせは <doc@freebsd.org> へ(英語で),
日本語訳に関するお問い合わせは <doc-jp@jp.FreeBSD.org> へお願いします.