target: dependencies
command1
command2
В моей системе (Mac OS X), make
кажется, требует, чтобы это Make-файлы имело символ табуляции, предшествующий содержание каждого command
строка, или это бросает синтаксическую ошибку.
Это - раздражение при создании или редактировании Make-файлов, потому что мне настраивали моего редактора, чтобы быть all-spaces-all-the-time.
Можно ли сделать допустимые Make-файлы без символов табуляции?
Это синтаксис странности / требования Make
, оно не имеет ничего общего с Mac OS X. К сожалению, нет ничего, что вы не можете с этим поделать, если вы собираетесь использовать , сделать
.
Редактировать : GNU Make теперь поддерживает пользовательский префикс рецепта. См. Этот ответ .
Вы не первый, кто не любит этот аспект , сделать
. Чтобы цитировать Справочник ненавистников Unix :
Проблема с Makefile Dennis - это то, что когда он добавил строку комментариев, он непреднамеренно вставил место перед вкладкой символ в начале строки 2. Очень важная часть синтаксиса Makefiles. Все командные строки (линии, начинающиеся с CC в нашем примере), должны начинаться с вкладок. После того, как он сделал свои изменения, линия 2 не сделала, отсюда и ошибка.
"Так что?" Вы спрашиваете: «Что с этим с этим?»
В этом нет ничего плохого, само собой. Просто, когда вы считаете, как работают другие инструменты программирования в Unix, используя вкладки как часть синтаксиса, похоже на один из этих ловушек пангула в зеленых берах: бедный ребенок из Канзаса - это точка ходьбы перед Джоном Уэйн и не См. В конце концов, нет путешествий проводов для остерегания на кукурузных полях Канзас. Действительно!
не переносимым. Определенные вкусы делают абсолютно необходимыми символы табуляции. Еще одна причина для предпочтения табуляции перед пробелами :-)
.