[build] gmake와 make의 차이점은 무엇입니까?

‘gmake’와 ‘make’의 차이점을 이해하려고합니까?

내 리눅스 박스에서 그들은 동일합니다 :

% 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.

나는 이것이 모든 플랫폼에서 동일하지 않다고 생각하고 있습니까? 다른 것을 사용하는 것이 좋은 이유가 있습니까?
왜 두 이름이 있는지에 대한 역사적 의미가 있습니까?



답변

‘gmake’는 특히 GNU make를 나타냅니다. ‘make’는 시스템의 기본 make 구현을 나타냅니다. 대부분의 Linux 배포판에서 이것은 GNU make이지만 다른 유닉스에서는 BSD make와 같은 다른 make 구현이나 다양한 상용 unix의 make 구현을 나타낼 수 있습니다.

GNU make가 받아 들인 언어는 전통적인 make 유틸리티가 지원하는 언어의 수퍼 셋입니다.

‘gmake’를 사용하면 GNU make 확장 기능을 다른 make 구현으로 잘못 해석 할 염려없이 사용할 수 있습니다.


답변

내 시스템에서 차이는 없습니다 (gmake는 소프트 링크로 만듭니다).

-> 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는 GNU make를 나타냅니다. 다른 구현 구현이 있습니다. Linux 시스템에서 GNU의 의지와 사용자의 삶을보다 유연하게 만드는 것은 gmake와 소프트 링크되어 있습니다.


답변

의 일반적인 “반대” gmake는 BSD make인데, makeBSD 시스템에 있을 것 입니다. 데비안 파생물에서 BSD가 무엇인지 확인하려면으로 사용할 수 있습니다 apt-get install pmake.


답변

분명히 GNU make는 현재 거의 보편적 이므로 차이가 거의 없습니다.


답변