[Build] What is the difference between gmake and make?
On my system no difference (gmake is soft link to make):
-> 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 stands for GNU make. There're different implementations of make. On Linux machine most probably make will by GNU and to make user's life isier make is soft linked to gmake.
I am trying to understand the difference between 'gmake' and 'make'?
On my linux box they are identical:
% 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.
I am guessing this isn't the same on all platforms?
Is there a good reason to use one over the other?
Is there some historical significance to why there are the two names?
It is unlikely that there is one because there are things you can do in GNU
make that you can't do in other versions of
make. Amongst others, the function macros for manipulating strings and the conditionals in the makefile are generally not available.
Convert gmake Makefile to make Makefile?
That utiliy is called a developer (programmer, make guru, ...) :-) Seriously, the AI required for this task is complex enough and the demand for automatic conversion sufficiently close to epsilon that nobody would seriously consider programming one.
If you have a GNU makefile it is best to use GNU make.