В чем разница между gmake и make?

Я пытаюсь понять разницу между "gmake" и "make"?

на моем linux box они идентичны:

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

Я думаю, это не то же самое на всех платформах? Есть ли веская причина использовать одно над другим?
Есть ли какое-то историческое значение, почему два названия?

4 ответов


"gmake" относится конкретно к GNU make. "make" относится к реализации системы по умолчанию make; на большинстве дистрибутивов Linux это GNU make, но на других unixes это может относиться к какой-либо другой реализации make, такой как BSD make или реализации make различных коммерческих unixes.

язык, принятый GNU make, является надмножеством языка, поддерживаемого традиционной утилитой make.

используя "gmake", вы можете использовать расширения GNU 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. Существуют различные реализации make. На Linux машине скорее всего сделать волю GNU и сделать жизнь пользователя isier make мягко связан с gmake.


обычной "встречке"gmake Это BSD make, который будет иметь тенденцию быть make на системах BSD, неудивительно. Если вы хотите увидеть, что такое BSD make, на производных Debian он доступен как apt-get install pmake.


видимо, GNU make это практически универсального теперь, поэтому почти никогда не должно быть разницы.