Две разные символические ссылки на двоичный файл `make`: почему разные результаты при вызове? - PullRequest
0 голосов
/ 20 мая 2019

Настройка: macOS, bash, внутри tmux. Я использую make, установленный через доморощенный. При запуске make с моим Makefile я получаю

protoc -I=foo/bar/proto --cpp_out=foo/bar/proto foo/bar/proto/foo.proto
make: *** No rule to make target 'foo/bar/proto/foo.pb.h', needed by 'proto'.  Stop.
make: *** Waiting for unfinished jobs....

Когда я вместо этого запускаю gmake, программа успешна:

protoc -I=foo/bar/proto --cpp_out=foo/bar/proto foo/bar/proto/foo.proto
protoc -I=foo/bar/proto --python_out=foo/bar/proto foo/bar/proto/foo.proto

Но двоичные файлы точно такие же:

$> readlink -f `which make`
/usr/local/Cellar/make/4.2.1_1/bin/gmake
$> readlink -f `which gmake`
/usr/local/Cellar/make/4.2.1_1/bin/gmake

Как это возможно?


Было высказано предположение, что этот вопрос является дубликатом, что, похоже, не соответствует действительности. Мне известно, что system- make не обязательно является GNU make или не является текущей версией. Но, как доказано выше, две команды относятся к одному и тому же двоичному файлу .

...