Makefileジェネレーター

変数、ターゲット、依存関係、コマンドを定義して、Makefileをビジュアルに構築。テンプレートから選択するか、ゼロから作成できます。

このツールについて

Makefileジェネレーターは、手書きの代わりにビジュアルインターフェースを通じて Makefileを作成する無料のブラウザベースツールです。変数(CCCFLAGSLDFLAGSなど)を定義し、依存関係とシェルコマンドを持つターゲットを追加し、 ターゲットを.PHONYとしてマークし、適切にフォーマットされたMakefileを 即座に生成できます。

ツールには一般的なプロジェクトタイプ用のテンプレートが含まれています: コンパイルルールとパターンマッチングを持つCプロジェクト、ビルド、テスト、 lint ターゲットを持つGoプロジェクト、npmスクリプトを持つNode.jsプロジェクト、 仮想環境管理を持つPythonプロジェクト、imageビルドとpushワークフローを持つ Dockerプロジェクト。各テンプレートは、特定のニーズに合わせて カスタマイズできる確固たる出発点を提供します。

Dockerを使用する場合は、Docker Runコマンドビルダーが コンテナコマンドに同様のビジュアル体験を提供します。Dockerfileの検証には Dockerfile Linterをご覧ください。

すべての処理はブラウザ内で完全に実行されます。Makefileの内容、プロジェクト構造、 ビルドコマンドがサーバーに送信されることはありません。生成された出力は クリップボードにコピーするか、ファイルとしてダウンロードできます。

使い方

  1. ドロップダウンからテンプレートを選択して、C、Go、Node.js、Python、Dockerプロジェクト用の事前設定されたMakefileを読み込みます(オプション)。
  2. Addボタンを使って変数を追加・編集します。変数名(例:CCCFLAGS)とその値を入力します。
  3. Add Targetをクリックしてターゲットを追加します。ターゲット名、依存関係(スペース区切り)、1つ以上のシェルコマンドを入力します。
  4. 実際のファイルに対応しないターゲット(cleantestallなど)には**.PHONY**チェックボックスをオンにします。
  5. 出力パネルでシンタックスハイライト付きの生成されたMakefileを確認します。
  6. CopyをクリックするかCtrl+Shift+Cを押してMakefileをクリップボードにコピーするか、Downloadをクリックしてファイルとして保存します。
  7. 生成されたMakefileをプロジェクトのルートに貼り付けて、makeを実行して使用します。

人気のMakefile例

すべてのMakefile例を見る →

よくある質問

Makefileとは何ですか?

`make`ビルド自動化ツールが使用する特別なファイルです。ターゲット(`build`、`test`、`clean`など)、それらの依存関係、各ターゲットに対して実行するシェルコマンドを定義します。makeはMakefileを読み取り、ファイルの変更時刻に基づいてターゲットを最新にするために必要なコマンドのみを実行します。

.PHONYとは何ですか?

.PHONYターゲットは、ターゲット名が実際のファイルに対応しないことをmakeに伝えます。.PHONYがないと、ディレクトリに`clean`という名前のファイルが存在する場合、`make clean`は「cleanは最新です」と言ってコマンドをスキップします。.PHONYとしてマークすることで、そのファイル名のファイルの存在に関係なくコマンドが常に実行されます。

変数代入の?=と:=の違いは何ですか?

`?=`演算子は、変数がまだ定義されていない場合にのみ設定し、ユーザーがコマンドラインから値を上書きできるようにします(例:`make CC=clang`)。`:=`演算子は即時(単純)展開を実行し、代入時に右辺を一度だけ評価します。デフォルトの`=`演算子は遅延(再帰的)展開を使用し、変数が参照されるたびに再評価します。

C以外のプロジェクトにも使えますか?

はい。MakeはC/C++開発で生まれましたが、汎用のタスクランナーです。このツールのテンプレートはC、Go、Node.js、Python、Dockerのワークフローをカバーしています。任意のテンプレートをカスタマイズしたり、ゼロから始めて任意の言語やツールチェーン用のMakefileを作成できます。

$@、$^、$<などの自動変数とは何ですか?

Makeが各ルールに対して自動的に設定する特別な変数です:`$@`はターゲット名、`$^`はすべての前提条件(依存関係)、`$<`は最初の前提条件、`$*`はパターンルール(`%`の部分)でマッチしたステムです。コマンドでファイル名を繰り返す必要がなくなります。

データは安全ですか?

はい。すべてのMakefile生成はJavaScriptを使用してブラウザ内で完全に実行されます。変数値、ターゲット名、シェルコマンドなどのデータがサーバーに送信されることはありません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。

Makefileにタブが必要な場合はどうしますか?

Makefileではターゲットのコマンドの前にタブ文字(スペースではなく)が必要です。生成された出力は適切なタブインデントを使用しています。Makefileをコピーまたはダウンロードすると、タブは保持されます。タブをスペースに自動変換するエディタに貼り付ける場合は注意してください。Makefileが壊れます。

関連ツール