Quelle est la différence entre gmake et make?

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

Sur ma boîte 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 devine que ce n'est pas la même chose sur toutes les plateformes? Est-il une bonne raison pour utiliser l'un plutôt que l'autre?
Y a-t-il une signification historique à la raison pour laquelle il y a les deux noms?

103
demandé sur Nick Haddad 2009-07-28 19:35:09

4 réponses

'gmake' se réfère spécifiquement à GNU make. 'make' fait référence à l'implémentation make par défaut du système; sur la plupart des distributions Linux, C'est GNU make, mais sur d'autres Unix, il pourrait faire référence à une autre implémentation de make, telle que BSD make, ou les implémentations make de divers UNIX commerciaux.

Le langage accepté par GNU make est un sur-Ensemble de celui supporté par l'utilitaire make traditionnel.

En utilisant 'gmake' spécifiquement, vous pouvez utiliser GNU make extensions sans s'inquiéter qu'ils soient mal interprétés par d'autres font la mise en œuvre.

134
répondu bdonlan 2009-07-28 19:21:25

Sur mon système aucune différence (gmake est un lien doux à faire):

-> 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 y a différentes implémentations de faire. Sur la machine Linux très probablement faire volonté par GNU et pour rendre la vie de l'utilisateur isier make est soft lié à gmake.

9
répondu dimba 2009-07-28 15:40:05

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 make, sur les dérivés Debian, il est disponible en tant que apt-get install pmake.

2
répondu chaos 2009-07-28 15:40:05

Apparemment, GNU make est pratiquement universel maintenant, donc il ne devrait presque jamais y avoir de différence.

-1
répondu Paul Biggar 2009-08-02 15:11:29