2009-07-28 49 views
93

我想了解'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. 

我猜測這是不是在所有平臺上一樣嗎? 是否有很好的理由使用其中一個?
爲什麼這兩個名字有一些歷史意義?

+4

這不屬於serverfault;這是一個關於工具鏈 – bdonlan 2009-07-28 15:40:17

回答

125

'gmake'特指GNU make。 'make'是指系統默認的make實現;在大多數Linux發行版中,這是GNU make,但是在其他unix中,它可以指代make的某些其他實現,例如BSD make或各種商業unix的make實現。

GNU make接受的語言是傳統make實用程序支持的語言的超集。

通過特別使用'gmake',您可以使用GNU make擴展,而不用擔心它們被某些其他make實現所誤解。

+16

好問題的問題。請注意,gcc和cc的相同慣例如下 – 2009-07-28 15:43:54

+0

謝謝你們,這很有道理!感謝您解決這個問題。 – 2009-07-28 15:47:03

+4

它也適用於其他gtools:例如,gawk和gtar是在Solaris上啓動人員的工具。 – 2009-07-28 19:25:05

2

gmake的通常「相反」是BSD make,這在BSD系統上傾向於爲make,這並不令人驚訝。如果你想看看BSD製造的是什麼樣子的話,在Debian衍生產品上它可以用apt-get install pmake

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 

使用gmake代表GNU做。 make有不同的實現。在Linux機器上最有可能是由GNU製作並使用戶的生活更加柔軟與gmake掛鉤。