web-dev-qa-db-fra.com

Quelle est la difference entre gmake et make?

J'essaie de comprendre la différence entre 'gmake' et 'make'?

Sur ma machine Linux, ils sont identiques:

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

Je suppose que ce n'est pas la même chose sur toutes les plateformes? Y a-t-il une bonne raison pour utiliser l'un sur l'autre?
Y at-il une signification historique à la raison pour laquelle il y a les deux noms?

117
Nick Haddad

'gmake' se réfère spécifiquement à GNU make. 'make' fait référence à la mise en œuvre par défaut du système; sur la plupart des distributions Linux, il s'agit de GNU make, mais sur d'autres unixes, cela pourrait faire référence à une autre implémentation de make, telle que BSD make, ou à la mise en œuvre de make de divers unixes commerciaux.

Le langage accepté par GNU make est un sur-ensemble de celui pris en charge par l’utilitaire make traditionnel.

En utilisant 'gmake' spécifiquement, vous pouvez utiliser GNU faire des extensions sans craindre de les avoir mal interprétées par une autre implémentation de make.

153
bdonlan

Sur mon système, aucune différence (gmake est un lien virtuel à créer):

-> 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 signifie GNU make. Il existe différentes implémentations de make. Sur une machine Linux, make sera probablement par GNU et rendre la vie plus simple de l'utilisateur, make est soft lié à gmake.

10
dimba

Le "contraire" habituel de gmake est BSD make, qui aura tendance à être make sur les systèmes BSD, sans surprise. Si vous voulez voir à quoi ressemble BSD, il est disponible sous apt-get install pmake.

2
chaos