Estoy tratando de entender la diferencia entre 'gmake' y 'make'?
En mi caja de linux 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 una buena razón para usar uno sobre el otro?
¿Hay algún significado histórico de por qué existen los dos nombres?
gcc -o $@ $<
= no hay fuentes de entrada con gmake porque $ <se evalúa como una cadena vacía. Existen peores combinaciones que pueden resultar en archivos gcc clobbering).$^
? Ciertamente, existe una variable con ese nombre en GNU Make, y por lo que puedo decir, es compatible con el legado Make. ¿La semántica en BSD hace diferente?En mi sistema no hay diferencia (gmake es un enlace suave para hacer):
gmake significa GNU make. Hay diferentes implementaciones de make. En la máquina Linux, lo más probable es que will will by GNU y para hacer que la vida del usuario sea más fácil, make está vinculado a gmake.
fuente
El "opuesto" habitual
gmake
es BSDmake
, que tenderá a estarmake
en sistemas BSD, como era de esperar. Si desea ver cómo es BSD, en derivados de Debian está disponible comoapt-get install pmake
.fuente
pmake
sorprendentemente BSD hacer? >. <Aparentemente, GNU make es prácticamente universal ahora , por lo que casi nunca debería haber una diferencia.
fuente