Требуется ли совместимая с POSIX реализация для поддержки локалей, отличных от стандартных?

Я хотел бы реализовать минимальную POSIX-совместимую утилиту make .

Однако в спецификации упоминается, что на реализацию должны влиять следующие переменные среды: LANG , LC_ALL , LC_TYPES , LC_CTYPE и LC_MESSAGES .

Но страница, описывающая переменные среды, говорит:

Если значение локали не распознается реализацией, поведение не определено.

Может ли POSIX-совместимая утилита make принимать только файлы Makefile, состоящие из символов, указанных в переносимом наборе символов, закодированном в ASCII?

One Solution collect form web for “Требуется ли совместимая с POSIX реализация для поддержки локалей, отличных от стандартных?”

AFAIK, единственная сертифицированная POSIX программа make которая активно управляет многобайтовыми символами при чтении Makefiles – это SunPro Make , см. SunPro Make

GNU make управляет только локалями для сообщений и не соответствует POSIX (он неправильно обрабатывает пробелы и экранирует обратную косую черту).

smake управляет только smake для сообщений, но в остальном он очень близок к POSIX.

К счастью, соответствующая classификация символов для Make-файлов зависит только от 7-битного ASCII, поэтому больше делать не нужно.

Однако я не уверен, что вам известно о необходимых усилиях по реализации программы make совместимой с POSIX. smake – это 10000 строк кода (это минимум, который может занять программа), SunPro Make (часть с открытым исходным кодом) 33000 строк кода, но есть параллельное выполнение и часть распределенного кода make, который не используется в версии OSS.

Кстати, smake началась в 1980 году, SunPro Make началась в 1986 году, а GNU make началась в 1988 году. Таким образом, у этих программ было достаточно времени, чтобы перейти к текущему состоянию. Будьте готовы к тому, что для первой минимальной рабочей программы требуется как минимум 2-3 месяца работы на полную ставку.

Linux и Unix - лучшая ОС в мире.