Настройка: 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
или не является текущей версией. Но, как доказано выше, две команды относятся к одному и тому же двоичному файлу .