make
提供: FreeBSD入門
スポンサーリンク
make コマンドとは、プログラムの簡単にメンテナンスする目的で設計されたプログラムです。Unixでは、プログラムのビルド(コンパイル)処理の自動化でよく使用されます。FreeBSDのmakeは、GNU make(gmake)とは、とは異なるプログラムです。文法の違い(方言)がありますので、マルチプラットフォームなMakefileを書きたい場合には、gmake向けに書くのがよいでしょう。
読み方
- make
- めいく
目次
概要
make は、FreeBSDのビルド(make world)でも利用されるプログラムです。 makeは、Makefileに基いて、ターゲットに対する一連の処理を行います。
一連の処理の例を以下に挙げます。
- プログラムのビルド
- プログラムのインストール
- 作業ディレクトリの掃除
portsコレクションを例に説明すると以下のようになります。
- make
- アプリケーションのビルド
- make install
- アプリケーションのインストール
- make clean
- ワーキングディレクトリ(work)の掃除
インストール
makeは、ベースシステムに組み込まれたプログラムです。gmakeは、別途インストールが必要です。
$ sudo pkg install gmake
設定
/etc/make.conf にシステムワイドな設定を書くことができます。 portsやmake worldへ指示を与えることができます。
Makefile
EXEC=program SRCS=main.c foo.c CFLAGS+=-Wall $(EXEC): $(SRCS) $(CC) $(CFLAGS) $< -o $@ clean:: @rm -f $(EXEC)
使い方
コマンドラインオプション
usage: make [-BeikNnqrstWwX] [-C directory] [-D variable] [-d flags] [-f makefile] [-I directory] [-J private] [-j max_jobs] [-m directory] [-T file] [-V variable] [variable=value] [target ...]
make world の高速化
makeのプロセスを並列実行することで、大きなアプリケーションのビルドを高速化できます。make world など時間のかかる処理などの高速化で-jオプションを使用します。
make -j 4
ただし、並列実行した結果、ビルドが失敗したりすることがあります。その場合は、-jオプションなしでビルドしなおす必要があります。
任意のMakefileを指定する
$ make -f build.mk
失敗を無視してビルドする
コマンドが失敗するとmakeは、そこで、ビルドをやめますが、-kオプションで無視して続けることができます。
$ make -k
変数を上書きをする
コンパイラやコンパイルオプションをほかのものに一時的に変更するといったことができます。 コンパイラの変数は、CCです。
$ make CC=clang
以下は、CFLAGSを指定する例です。
$ make CFLAGS=-lpthread
関連項目
ツイート
スポンサーリンク