【Linux】makeコマンドの主要ターゲット一覧まとめ!clean・install・oldconfigなどを徹底解説

Linux

どーも!marusukeです!

この記事では

  • makeコマンドの主要ターゲット
  • Linuxカーネル開発でよく使うmakeターゲット
  • ビルドやインストール時によく使うコマンド

をわかりやすく解説します!

makeコマンドとは?

make [ターゲット]

makeコマンドは、ソースコードのビルドやコンパイル作業を自動化するためのコマンドです。

Makefileという設定ファイルをもとに処理を実行します。

Linuxカーネル構築やソフトウェア開発では必須レベルで利用されます。

makeの主要ターゲット一覧

make all

make all

すべてのターゲットをビルドします。

通常はデフォルトターゲットとして設定されることが多く、makeだけでも同じ動作になるケースがあります。

make clean

make clean

ビルド時に生成された不要ファイルを削除します。

  • .oファイル
  • 実行ファイル
  • 一時ファイル

などが削除対象です。

make distclean

make distclean

make cleanより強力な削除を行います。

設定ファイルやconfigure関連ファイルも削除されます。

make mrproper

make mrproper

Linuxカーネルでよく使われるターゲットです。

.configを含むほぼすべての生成ファイルを削除します。

make install

sudo make install

ビルドしたプログラムをシステムへインストールします。

通常は、

  • /usr/local/bin
  • /usr/local/lib

などへ配置されます。

インストールとは?

インストールとは、ビルドしたプログラムを実行できるように適切な場所へ配置することです。

例えば、

  • 実行ファイルを /usr/local/bin
  • ライブラリを /usr/local/lib
  • 設定ファイルを /etc

などへコピーします。

これにより、Linux上でコマンドとして利用できるようになります。

通常はシステム領域へファイルを書き込むため、sudoが必要になるケースが多いです。

make uninstall

sudo make uninstall

make installで配置したファイルを削除します。

make oldconfig

make oldconfig

既存の.configを引き継ぎながら、新しい設定項目のみ確認します。

make defconfig

make defconfig

デフォルト設定で.configを生成します。

make cloneconfig

make cloneconfig

現在動作中のカーネル設定をコピーして新しい.configを作成します。

make menuconfig

make menuconfig

テキストベースの設定画面を表示します。

make xconfig

make xconfig

GUIベースの設定画面を表示します。

Qtライブラリが必要です。

make modules

make modules

カーネルモジュールのみをコンパイルします。

make modules_install

sudo make modules_install

コンパイルしたカーネルモジュールをシステムへインストールします。

通常は/lib/modules/以下へ配置されます。

make rpm-pkg

make rpm-pkg

RPMパッケージを生成します。

make binrpm-pkg

make binrpm-pkg

バイナリ形式のRPMパッケージを生成します。

make deb-pkg

make deb-pkg

Debian形式の.debパッケージを生成します。

makeの並列ビルド

make -j4

複数の処理を同時実行することで、ビルドを高速化できます。

GNU Makeの標準機能であり、ほぼすべてのLinuxディストリビューションで利用可能です。

Linuxカーネルビルドでは非常によく利用されます。

make -j$(nproc)

を使うとCPUコア数を自動取得して並列実行できます。

よく使うLinuxカーネルビルド手順

make mrproper
make defconfig
make -j$(nproc)
sudo make modules_install
sudo make install

この流れで、

  1. 初期化
  2. 設定生成
  3. コンパイル
  4. モジュールインストール
  5. カーネルインストール

を実行できます。

以上です!
ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました