MK ファイル形式とは?
.mk ファイルは、make 構文で記述されたプレーンテキストのビルドスクリプトの断片です。メインのビルドファイルは慣習的に Makefile(拡張子なし)という名前になりますが、.mk ファイルはモジュール化されたサブmakefileとして機能します。これらは部分的なルールセット、変数定義、またはプラットフォーム固有の設定ブロックであり、make の include ディレクティブを介して親ビルドに読み込まれます。ルールと構文は両方で共通です。
makefileのルールは、ターゲット行(target: dependencies)と、それに続く1つ以上のレシピ行で構成されます。レシピ行はスペースではなく、リテラルの「タブ(TAB)」文字で始まる必要があります。これは、不可解な missing separator エラーを引き起こすビルド失敗の有名な原因です。変数代入、パターンルール、条件付きディレクティブ(ifeq、ifdef)はすべて .mk ファイル内で有効です。
GNU Make(Free Software Foundation、現在のバージョンは2023年リリースの4.4.1)は、最も広く使用されている実装です。Microsoftの NMAKE(Visual Studioに同梱)や BSD make も概ね互換性があります。.MAK 拡張子も同様の目的で使用され、NMAKE を使用する Windows 向けのプロジェクトで一般的です。.mk ファイルは、Googleが Android.bp と Soong システムに置き換えるまで、Android.mk 断片を多用していた Android のレガシービルドシステムを通じて特に有名になりました。
大規模なプロジェクトでは CMake、Ninja、Meson、Bazel などが代替手段として台頭していますが、GNU Make と .mk 断片は、オープンソースの C/C++ コードベース、組み込みファームウェア、Linux カーネルにおいて依然として遍在しています。
セキュリティと安全性
リスク: MEDIUM.mk ファイルはプレーンテキストであり、それ自体がコンピュータに感染することはありませんが、make が実行する際にシェルコマンドが含まれています。信頼できない .mk ファイル(不明なソースからのものなど)を実行すると、ファイルの削除、マルウェアのダウンロード、システム設定の変更など、信頼できないシェルスクリプトを実行するのと同じリスクがあります。make を実行する前に、必ずテキストエディタでファイルを検査してください。
形式の詳細
概要MK ファイルを開くプログラム
make -f yourfile.mk を実行してビルドルールを実行します。MSYS2(推奨)または GnuWin32 経由で利用可能です。 nmake /f yourfile.mk を実行します。互換性のある make 方言をサポートしています。 make -f yourfile.mk を実行するか、プロジェクトのルートに Makefile として配置します。パッケージマネージャーからもインストール可能です:sudo apt install make。 make -f yourfile.mk を実行するか、プロジェクトのルートに Makefile として配置します。パッケージマネージャーからもインストール可能です:sudo apt install make。 技術的詳細
詳細仕様| フォーマットタイプ | プレーンテキストの make ルール断片(サブmakefile / インクルード用ビルドスクリプト) |
| エンコーディング | ASCII または UTF-8 |
| バイト順序 | なし(プレーンテキスト) |
| コンテナ | プレーンテキスト |
| 重要な構文要件 | レシピ行はリテラルのタブ文字で始まる必要があります。スペースは «missing separator» エラーの原因となります |
| インクルード・メカニズム | «include» ディレクティブを介して親 Makefile に読み込まれます |
| 典型的なファイルサイズ | 1 KB - 50 KB |
| 実装 | GNU Make 4.4.1 (2023), BSD make, Microsoft NMAKE, POSIX make (IEEE 1003.1-2017) |
| POSIX標準 | IEEE 1003.1-2017 (POSIX make 仕様) |
| 主な用途 | Android レガシービルドシステム(Soong/Android.bp 以前に使用されていた Android.mk) |
| プラットフォーム | Linux, macOS, Windows (MSYS2, WSL, Cygwin, NMAKE), BSD, Unix |
| リリース日 | 1976 (Stuart Feldman, Bell Labs - original make); .mk convention ~1980s |
| 最新バージョン | GNU Make 4.4.1 (2023) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.gnu.org |
MK の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。MK ファイルについて最初の質問をしてみましょう。
よくある質問
.mkファイルとは何ですか?
.mkファイルを実行するにはどうすればよいですか?
make -f yourfile.mk(macOSでは gmake の場合もあります)を実行します。Windowsの場合:MSYS2経由で GNU Make を使用するか、Visual Studio の Developer Command Prompt から NMAKE を使用します。.mkファイルを読み取るために開くにはどうすればよいですか?
.mk、.mak、Makefileの違いは何ですか?
.mk と .mak は、インクルードされる断片や代替ビルドファイルに使用されます。機能的には同一で、慣習的に名前が使い分けられているだけです。なぜmakefileで «missing separator» エラーが出るのですか?
.mkファイルを開いても安全ですか?
make -f を実行しないでください。内部のシェルコマンドが実行されるため、事前に内容を検査する必要があります。