スポンサーリンク

STYLE.MAKEFILE(5) FreeBSD ファイルフォーマットマニュアル STYLE.MAKEFILE(5)

名称

style.Makefile − FreeBSD における Makefile ファイルのスタイルガイド

解説

このファイルは FreeBSD ソースツリーの makefile に好ましいスタイルを明記し ています。

 全ての makefile はファイルの先頭に SCM ID を持ち、それに空行が続きます。

# $FreeBSD$

 必要ならば、次に .PATH: が続きます。 ‘‘.PATH: ’’ のように、コロンの後に単一の アスキースペースが続くように綴ります。 VPATH 変数は使わないでください。

特殊変数 ( LIBSRCSMLINKS など) は、作成されるもの、バイナリの 構築に使うもの、バイナリのインストールに使うものの順番で並べます ( 「作成物順」)。あるいは構築される順番、つまり主となるプログラム (ある いはライブラリ) に使うものが先にくるように並べても構いません (「構築 物順」)。一般的な「作成物順」はこうです: PROG/[
SH
]LIB/SCRIPTS FILES LINKS [
NO
]MAN MLINKS INCS SRCS WARNS CFLAGS DPADD LDADD 。一般的な 「構築物順」はこうです: PROG/[
SH
]LIB/SCRIPTS SRCS WARNS CFLAGS DPADD LDADD INCS FILES LINKS [
NO
]MAN MLINKS

<bsd.prog.mk> を使い、 PROG と同じ名前の単一のソースファイルである場 合は、 SRCS を省略します。

<bsd.prog.mk> を使い、 PROG と同じ名前で、セクション 1 のマニュアル ページである時は、 MAN を省略します。

変数への代入はすべて ‘‘VAR=’’ のように綴ります。つまり、変数名と = の 間には空白を置きません。可能ならば、値はアルファベット順にソートする ようにします。

変数を一回だけ設定する (もしくは変数を最初に設定する) 場合に、 += を 使うのはやめてください。

簡単な makefile で、空行を使うのはやめてください。しかしより複雑で長 いものに対しては、部分的に関連する項目をまとめるために使います。

基本的に WARNSCFLAGS の修飾子ですが、 CFLAGS の前に置きます。 WARNS は重要なものであり、大量の CFLAGS の記述の中で見失わないよう に、 CFLAGS の後ろではなくて、 CFLAGS の前に置きます。コマンドライン や /etc/make.conf で上書きできるように、 WARNS は ‘‘WARNS?= ’’ のよう に綴ります。

‘‘NO_WERROR= yes’’ は使うべきでありません。これは WARNS の目的を無効 にしてしまいます。これはコマンドラインで、かつ特殊な状況でのみ使用さ れるべきです。

CFLAGS は ‘‘CFLAGS+= ’’ のように綴ります。

CFLAGS において、 −I の前に −D のリストを置くのは、アルファベット順と いう点からも、また −D を見やすくする点からも好ましいことです。 −D は しばしば条件つきのコンパイルに影響し、また −I は意外に長くなりがちで す。長い CFLAGS の設定では −D−I の間で分割します。

CFLAGS において、 GCC 的なもの ( −g−Wall といったもの) を使うのは やめましょう。

一般的には VAR= と値の間に、 アスキータブをひとつ入れます。値が 9 桁 目から始まるようにするためです。変数名が 9 桁を超える場合は、単一の アスキースペースで良いです。また変数名がとても長い場合は、ホワイトス ペース無しでも良いです。

• .include <bsd.*.mk> は最後です。

$< や、 $@ といった時代錯誤のものを使うのはやめましょう。代わりに ${.IMPSRC}${.ALLSRC} 、それと ${.TARGET} を使います。

論理的なグループ分けを表現したいために、上記のいくつかに従わないこともし ばしばあります。

使用例

最もシンプルな、プログラムの Makefile です:

      # $FreeBSD$

PROG=

foo

.include <bsd.prog.mk>

最もシンプルな、ライブラリの Makefile です:

      # $FreeBSD$

LIB=

foo

SHLIB_MAJOR= 1

MAN=

libfoo.3
SRCS=

foo.c

.include <bsd.lib.mk>

関連項目

make(1), style(9)

歴史

このマニュアルページは、 FreeBSD の style(9) マニュアルページと同じソース に影響されています。

バグ

例外を許さないスタイル規則は、ほとんどありません。多くのスタイルは、 makefile 全体の内容、あるいはその前後の行に強く依存しています。

FreeBSD 10.0 February 28, 2003 FreeBSD 10.0

スポンサーリンク