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?
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.
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.
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
.
Apparemment, GNU make est pratiquement universel maintenant, donc il ne devrait presque jamais y avoir de différence.