Windows10環境でmakeコマンドを使用する方法【ハマリ回避】


こういう記事があったのでやってみたのですが、残念ながら私の環境では動かなかったので備忘録を置いておきます。
また、MinGWと一緒に入れたmakeはうまく動きませんでした(後述)。
手間を惜しまず、おとなしくMake for Windowsを入れましょう。

手順

Make for Windowsのダウンロード

下記からダウンロードできます。
Make for Windows
「Complete package, except sources」を選択すればOKです。

インストール先をCドライブ直下に変更する

Program Filesフォルダにインストールすると、makeコマンドのパスにスペースが入ってうまく動かないようです。
具体的には、

syntax error near unexpected token ('

が出ます。
ですので、インストール先をCドライブ直下に変更しておきましょう。

makeコマンドを実行できるようにパスを通す

さて、インストールしただけでは、makeコマンドを実行できません。
コマンドプログラムがあるディレクトリにパスを通すことで、初めてmakeを実行できるようになります。
Windowsでパスを通す方法は色々なところで説明されていると思いますので、それを参考にするのがよいでしょう。

Cドライブ直下にMake for Windowsをインストールした場合は、
C:\GnuWin32\bin
をパスに追加することになります。

MinGWインストール時に入れたmakeが動かない件

MinGWをインストールする際にmsysを一緒にインストールするとmakeプログラムもインストールされますが、
この方法でインストールされたmakeは一部の組み込み変数の値がおかしくなっているようです。

具体的には$(MAKE)の内容が正しいパスになっていないみたいな問題が発生していました。
これによりcmakeで作ったMakefileを実行してもNo such file or directoryが出てしまい、ダメでした。

この件については色々調査しましたが、makeコマンド側の問題だと思われます。
実際、

all:
    @echo $(MAKE)

とだけ書いたMakefileファイルを用意してmakeコマンド実行したところ、
この$(MAKE)変数の中身が「PowerShell」や「コマンドプロンプト」では正しい値になっていないようでした。
「Git Bash」や「cygwin terminal」では正しい値になっていたのですけどね。
Windows用に最適化されていないからでしょうか。

なお、私はこれで2日ハマリました…。