В чем разница между 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 103

4 ответа:

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

язык, принятый 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 is BSD make, который будет иметь тенденцию быть make на системах BSD, неудивительно. Если вы хотите увидеть, что такое BSD make, на производных Debian он доступен как apt-get install pmake.

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