У меня есть система, в которой я генерирую make-файл и которая отлично работает под Mac OS X. Когда я запускаю ее под Linux, у меня возникает странная проблема. Мне удалось сократить мой make-файл до очень простого примера:
compile: gcc -o prog *.c &> compile__ chm: chmod u=rwx,g=rwx,o= prog both0: gcc -o prog *.c &> compile__ ; \ chmod u=rwx,g=rwx,o= prog both1: gcc -o prog *.c ; \ chmod u=rwx,g=rwx,o= prog
Идея состоит в том, чтобы скомпилировать файл, а затем изменить его разрешения. Если я выполню последовательность команд:
make compile make chm
все работает нормально. Однако, если я выполню:
make both0
Я получаю сообщение:
chmod: cannot access `prog': No such file or directory
и права не меняются. С другой стороны, если я выполню:
make both1
права изменены правильно. Единственная разница заключается в перенаправлении «&> compile__» под обоими0, которое я удалил для обоих1.
Любые идеи?