Estou tentando entender a diferença entre 'gmake' e 'make'?
Na minha caixa linux eles são 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.
Eu estou supondo que isso não é o mesmo em todas as plataformas? Existe um bom motivo para usar um sobre o outro?
Existe algum significado histórico para o porquê dos dois nomes?
gcc -o $@ $<
= nenhuma fonte de entrada com o gmake porque $ <avalia como uma string vazia. Existem combinações piores que podem resultar em arquivos clobbering do gcc).$^
? Uma variável com esse nome certamente existe no GNU Make, e até onde eu sei é compatível com o Make herdado. A semântica no BSD torna diferente?No meu sistema, não há diferença (o gmake é um link simples para criar):
gmake significa GNU make. Existem diferentes implementações de make. Na máquina Linux, provavelmente o make will pelo GNU e para tornar a vida do usuário mais fácil, o make está vinculado ao gmake.
fonte
O "oposto" usual
gmake
é o BSDmake
, que tenderá a sermake
nos sistemas BSD, sem surpresa. Se você quiser ver como é a aparência do BSD, nos derivados do Debian está disponível comoapt-get install pmake
.fonte
pmake
BSD é surpreendente? >. <Aparentemente, o GNU make é praticamente universal agora , então quase nunca deve haver diferença.
fonte