В make
(я использую реализацию OpenBSD, но я полагаю, что вопрос актуален и для GNU make), у нас есть следующие так называемые локальные переменные
@ The name of the target
% The name of the archive member (for library rules)
! The name of the archive file (for library rules)
? The list of prerequisites for this target that were deemed out of date
< The name of the prerequisite from which this target is to be built (for inference rules)
* The file prefix of the file, containing only the file portion, no suffix or preceding directory components
(примерно от man make
в OpenBSD)
Эти локальные переменные имеют синонимы: например, .IMPSRC
для <
или .TARGET
для @
.В руководстве по FreeBSD говорится, что эти более длинные версии предпочтительнее.В справочной странице OpenBSD ничего подобного нет, но говорится, что эти длинные имена являются расширением.
Лучше ли использовать более длинные имена?Что лучше для совместимости?Оба POSIX?