Непосредственная проблема заключается в том, что Make сама интерпретирует $
иначе, чем оболочка.Попробуйте:
echo "What is the root directory of your webserver? Eg. ~/Server/htdocs"; \
read root_path; \
echo $$root_path
Двойной $$
экранирует $
для Make, поэтому он передает единственный $
в оболочку.Также обратите внимание, что вам нужно будет использовать \
продолжения строк, чтобы вся последовательность выполнялась как один сценарий оболочки, в противном случае Make будет вызывать new shell для каждой строки.Это означает, что все, что вы read
исчезнет, как только выйдет его оболочка.
Я бы также сказал, что в общем случае запрос на интерактивный ввод из файла Makefile является редкостью.Возможно, вам лучше использовать параметр командной строки, чтобы указать корневой каталог веб-сервера.