2009-07-28 110 views
93

私は 'gmake'と 'make'の違いを理解しようとしていますか?私のLinuxボックスのgmakeとmakeの違いは何ですか?

彼らは同じです:私は推測してい

% 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つの名前があるのか​​、歴史的な意味がありますか?

+4

これはserverfaultに属しません。それはツールチェン – bdonlan

答えて

125

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

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

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

+16

良い答えについての質問です。同じコンベンションがgccとccのために続くことに注意してください –

+0

ありがとう、これは理にかなっています!これをクリアしていただきありがとうございます。 –

+4

これは他のgtoolsにも当てはまります。例えば、gawkとgtarは、Solaris上で人を動かすものです。 –

2

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

+3

なぜ 'pmake'がBSD makeを驚くほどにしているのですか? >。< – stackoverflowuser95

+0

デフォルトのmakeはBSDシステムでBSD makeを行うのは当然です。 –

9

差なし(gmakeのは、作るためのソフトリンクです):

-> 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 

GNU makeをgmakeをの略です。 makeにはさまざまな実装があります。 Linuxマシンでは、おそらくGNUによって意志を作り、ユーザーの生活をより良くするためにmakeはgmakeにソフトリンクされています。

-1

明らかに、GNU makeはpractically universal nowなので、違いはほとんどありません。

+0

異なるバージョンのmakeが使用されていない限り、違いがあるはずです。 –

+4

まあ...あなたが言う必要があります - GNU makeは現在Linuxシステム上で普遍的です。 BSDは構文が異なる独自のmakeを使っているとします。 – Alex