web-dev-qa-db-ja.com

gmakeとmakeの違いは何ですか?

「gmake」と「make」の違いを理解しようとしていますか?

私のLinuxボックスでは、それらは同一です:

% gmake --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

% make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

これはすべてのプラットフォームで同じではないと思いますか?一方を他方よりも使用する正当な理由はありますか?
2つの名前がある理由に歴史的な意味はありますか?

117
Nick Haddad

'gmake'は、GNU makeを指します。'make 'は、システムのデフォルトのmake実装を指します。ほとんどのLinuxディストリビューションでは、これはGNU makeです。 UNIXでは、BSD makeなどのmakeの他の実装、またはさまざまな商用UNIXのmake実装を参照できます。

GNU makeで受け入れられる言語は、従来のmakeユーティリティでサポートされている言語のスーパーセットです。

特に「gmake」を使用することにより、他のmake実装によって誤って解釈されることを心配することなく、GNU make拡張機能を使用できます。

153
bdonlan

私のシステムでは違いはありません(gmakeはmakeのソフトリンクです):

-> ls -l $(which gmake make)
lrwxrwxrwx 1 root root      4 Jun  5  2007 /usr/bin/gmake -> make
-rwxr-xr-x 1 root root 168976 Jul 13  2006 /usr/bin/make

gmakeはGNU makeを表します。makeにはさまざまな実装があります。Linuxマシンでは、おそらくmakeはGNUであり、 gmakeにリンクされています。

10
dimba

gmakeの通常の「反対」はBSD makeであり、当然BSDシステムではmakeになる傾向があります。 BSD makeがどのようなものかを知りたい場合、Debian派生物ではapt-get install pmake

2
chaos