Вы используете возможность make для выдачи ошибок, а не возможность оболочки. Все переменные и функции make в рецепте раскрываются first , ДО вызова рецепта.
У вас есть два варианта. Первый - полностью переключиться на неудачу рецепта: make остановится, если рецепт выйдет с ошибкой. Таким образом, вы можете написать свое правило следующим образом:
check_folders:
test -d ../some_folder || { echo The ../some_folder folder does not exist; exit 1; }
Другой вариант - полностью перейти на тестирование; это произойдет до того, как будет вызван ЛЮБОЙ рецепт, так как make-файл анализируется:
$(if $(wildcard ../some_folder/.),,$(error The ../some_folder folder does not exist))