Сам по себе Makefile
не имеет или не имеет разрешений. В сообщении об ошибке говорится, что пользователь, запустивший этот Makefile
, не обладает необходимыми привилегиями. Но это не совсем о разрешениях; вы заметите, что в сообщении об ошибке говорится, что вы не можете записать в каталог root, что, конечно, вам не нужно и не нужно (и вам не следует разрешать это, даже если вы думали, что хотите).
Первое сообщение об ошибке связано с тем, что $(shell $$HOME)
не является допустимой командой. Допустимая команда будет выглядеть как $(shell echo "$$HOME")
; но на самом деле это совершенно не нужно.
Вторая ошибка связана с тем, что первое присваивание вернуло пустую переменную из-за первой ошибки.
Причина, по которой здесь нет необходимости в $(shell ...)
является то, что оболочка, которая выполняет команду, вполне способна расширять $$HOME
сама На самом деле, так же может make
(хотя тогда синтаксис будет ${HOME}
простым и понятным).
move:
cp -r Minesweeper ${HOME}/