build - tutorial - ¿Cuál es la diferencia entre gmake y make?
makefile (4)
''gmake'' se refiere específicamente a GNU make. ''make'' se refiere a la implementación de make predeterminada del sistema; en la mayoría de las distribuciones de Linux, esto es GNU make, pero en otros unixes, podría referirse a alguna otra implementación de make, como BSD make, o las implementaciones make de varios unixes comerciales.
El lenguaje aceptado por GNU make es un superconjunto del que es compatible con la utilidad tradicional make.
Al usar ''gmake'' específicamente, puede usar GNU make extensiones sin preocuparse de que sean malinterpretadas por alguna otra implementación make.
Estoy tratando de entender la diferencia entre ''gmake'' y ''make''?
En mi linux box son idénticos:
% 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.
¿Supongo que esto no es lo mismo en todas las plataformas? ¿Hay alguna buena razón para usar una sobre la otra?
¿Hay algún significado histórico de por qué hay los dos nombres?
Aparentemente, GNU make es prácticamente universal ahora , por lo que casi nunca debería haber una diferencia.
El "opuesto" usual de gmake
es BSD make
, que tenderá a ser make
en sistemas BSD, como era de esperar. Si quiere ver cómo es BSD, en los derivados de Debian está disponible como apt-get install pmake
.
En mi sistema no hay diferencia (gmake es un enlace suave para hacer):
-> 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 significa GNU make. Hay diferentes implementaciones de make. En la máquina Linux es muy probable que haga la voluntad de GNU y para hacer que la vida del usuario sea más fácil, la marca está vinculada a gmake.