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. 

我猜这在所有平台上都不一样? 有一个很好的理由使用一个在另一个?
这两个名字有什么历史意义吗?

“gmake”特指GNU make。 “make”是指系统默认的make实现; 在大多数Linux发行版中,这是GNU make,但是在其他unix中,它可以指代make的某些其他实现,例如BSD make或各种商业unix的make实现。

GNU make所接受的语言是传统make工具所支持的语言的超集。

通过特别使用“gmake”,你可以使用GNU make扩展,而不用担心被其他make实现所误解。

在我的系统上没有区别(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。 make有不同的实现。 在Linux机器上最有可能是由GNU制作并使用户的生活更加柔软与gmake挂钩。

gmake通常的“相反”就是BSD make ,而BSD系统往往会在BSD系统上生成,这并不令人惊讶。 如果你想看看BSD是什么样子的话,在Debian衍生产品上它可以用apt-get install pmake

显然, 现在 GNU make 几乎是普遍的 ,所以应该几乎没有区别。