是否需要符合 POSIX 的实现来支持默认语言环境之外的其他语言?

是否需要符合 POSIX 的实现来支持默认语言环境之外的其他语言?

我想实现一个最小的 POSIX 一致性制作公用事业。

然而,规范提到实现应受以下环境变量的影响:LANGLC_ALLLC_TYPES和。LC_CTYPELC_MESSAGES

这一页描述环境变量说:

如果实现无法识别区域设置值,则行为未指定。

符合 POSIX 的 make 实用程序是否只能接受由 中指定的字符组成的 Makefile便携式字符集以 ASCII 编码?

答案1

AFAIK,唯一make在读取时主动管理多字节字符的 POSIX 认证程序MakefilesSunPro Make,请参阅http://schilytools.sourceforge.net/sunpromake.html

GNU make只管理消息的区域设置,不符合 POSIX 标准(它错误地处理了空格和反斜杠转义)。

smake只管理消息的区域设置,但它在其他方面非常接近 POSIX。

幸运的是,Makefile 的相关字符分类仅依赖于 7 位 ASCII,因此无需执行更多操作。

然而,我不确定您是否意识到实现 POSIX 兼容make程序所需的努力。smake是 10000 行代码(这是此类程序可以采用的最少代码),SunPro Make(开源部分)33000 行代码,但是有并行执行和部分分布式 make 代码在 OSS 版本中未使用。

顺便说一句:smake 于 1980 年开始,SunPro Make 于 1986 年开始,GNU make 于 1988 年开始。所以这些程序有足够的时间发展到目前的状态。请做好准备,第一个工作最低限度计划需要至少 2-3 个月的全职工作。

相关内容