「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つの名前がある理由に歴史的な意味はありますか?
'gmake'は、GNU makeを指します。'make 'は、システムのデフォルトのmake実装を指します。ほとんどのLinuxディストリビューションでは、これはGNU makeです。 UNIXでは、BSD makeなどのmakeの他の実装、またはさまざまな商用UNIXのmake実装を参照できます。
GNU makeで受け入れられる言語は、従来のmakeユーティリティでサポートされている言語のスーパーセットです。
特に「gmake」を使用することにより、他のmake実装によって誤って解釈されることを心配することなく、GNU make拡張機能を使用できます。
私のシステムでは違いはありません(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にリンクされています。
gmake
の通常の「反対」はBSD make
であり、当然BSDシステムではmake
になる傾向があります。 BSD makeがどのようなものかを知りたい場合、Debian派生物ではapt-get install pmake
。