STYLE.MAKEFILE(5) FreeBSD ファイルフォーマットマニュアル STYLE.MAKEFILE(5)
名称
style.Makefile − FreeBSD における Makefile ファイルのスタイルガイド |
解説
このファイルは FreeBSD ソースツリーの makefile に好ましいスタイルを明記し ています。 |
• 全ての makefile はファイルの先頭に SCM ID を持ち、それに空行が続きます。
# $FreeBSD$ |
• 必要ならば、次に .PATH: が続きます。 ‘‘.PATH: ’’ のように、コロンの後に単一の アスキースペースが続くように綴ります。 VPATH 変数は使わないでください。
• 特殊変数 ( LIB 、 SRCS 、
MLINKS など) は、作成されるもの、バイナリの
構築に使うもの、バイナリのインストールに使うものの順番で並べます
(
「作成物順」)。あるいは構築される順番、つまり主となるプログラム
(ある いはライブラリ)
に使うものが先にくるように並べても構いません (「構築
物順」)。一般的な「作成物順」はこうです:
PROG/[ • <bsd.prog.mk> を使い、 PROG と同じ名前の単一のソースファイルである場 合は、 SRCS を省略します。 • <bsd.prog.mk> を使い、 PROG と同じ名前で、セクション 1 のマニュアル ページである時は、 MAN を省略します。 • 変数への代入はすべて ‘‘VAR=’’ のように綴ります。つまり、変数名と = の 間には空白を置きません。可能ならば、値はアルファベット順にソートする ようにします。 • 変数を一回だけ設定する (もしくは変数を最初に設定する) 場合に、 += を 使うのはやめてください。 • 簡単な makefile で、空行を使うのはやめてください。しかしより複雑で長 いものに対しては、部分的に関連する項目をまとめるために使います。 • 基本的に WARNS は CFLAGS の修飾子ですが、 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$ |
foo |
.include <bsd.prog.mk> 最もシンプルな、ライブラリの Makefile です: # $FreeBSD$ |
foo |
SHLIB_MAJOR= 1 |
libfoo.3 |
|||
foo.c |
.include <bsd.lib.mk> |
関連項目
歴史
このマニュアルページは、 FreeBSD の style(9) マニュアルページと同じソース に影響されています。 |
バグ
例外を許さないスタイル規則は、ほとんどありません。多くのスタイルは、 makefile 全体の内容、あるいはその前後の行に強く依存しています。 FreeBSD 10.0 February 28, 2003 FreeBSD 10.0 |