8 个版本 (有破坏性更新)
0.7.0 | 2021 年 4 月 14 日 |
---|---|
0.6.1 | 2021 年 4 月 7 日 |
0.5.0 | 2021 年 4 月 4 日 |
0.4.0 | 2021 年 4 月 4 日 |
0.1.0 | 2021 年 3 月 27 日 |
#1562 在 开发工具
每月 30 次下载
155KB
4K SLoC
makers
A (主要) POSIX 兼容的 make 工具,用 Rust 实现。并不旨在完全支持 每个 GNU make 功能,但会添加与现有 GNUish makefile 兼容所必需的功能。
通过运行 RUST_LOG=makers=warn
可以获得一些信息,通过运行 RUST_LOG=makers=debug
可以获得更多信息,而通过运行 RUST_LOG=makers=trace
可以获得大量信息(可能仅适用于调试 makefile 或 makers 本身的小量信息)。有关更具体的配置,请参阅 env_logger
Rust 包的文档。
一致性
- 国际化(
LANG/
LC_ALL/
LC_CTYPE/
LC_MESSAGES
)未实现 - XSI 一致性(SCCS 集成)未实现
- 信号处理未实现
- 库处理未实现
- 一些 POSIX 规定的功能尚未实现(搜索
TODO
以获取列表) - 内建宏
MAKE
被定义为makers
的路径 - 指定
.POSIX
特殊目标不会禁用扩展(但您可以通过使用--no-default-features
来安装以仅获得 POSIX 行为)
状态
我没有为大多数 makers
编写单元测试,但有一些 集成测试 尝试用 makers 构建各种基于 make 的项目。
测试的具体项目
1.0 版本所需功能的列表
- 在 Linux 上测试过
- 大多数内容的单元测试
- 没有 TODO
变更日志
v0.7.0 - 2021-04-13
- 实现 GNU 风格的函数
abspath
、firstword
- 实现 GNU 风格的范围推理规则("静态模式")
v0.6.1 - 2021-04-06
- 使
export
/unexport
真正持久化,以便在执行时可用
v0.6.0 - 2021-04-06
- 实现 GNU 风格的函数
findstring
、realpath
、dir
、lastword
、words
、subst
、error
、word
、patsubst
、addsuffix
- 提供 GNU 风格的内建变量
MAKECMDGOALS
、CURDIR
、MAKEFILE_LIST
- 修复嵌套条件处理错误
- 在硬错误之前尝试构建缺失的包含 makefile
- 实现 GNU 风格的
export
/unexport
指令
v0.5.0 - 2021-04-04
- 添加详细日志记录
- 部分修复
$<
(旧:所有依赖项,新:第一个依赖项,指定:由推理规则添加的第一个依赖项) - 如果可以找到,将内建宏
$(MAKE)
设置为makers
的完整路径 - 将
%
-匹配改为拒绝部分模式匹配,但允许%
中的所有字符 - 实现 GNU 风格的函数
and
、or
、strip
v0.4.0 - 2021-04-03
- 修复换行符处理,使转义换行符和条件行按预期工作
- 实现 GNU 风格的
%
-匹配推理规则 .PHONY
特殊目标的依赖项现在始终假设过时,直到重建,无论文件系统状态如何- 给予用户定义的推理规则高于内建的优先级
v0.3.0 - 2021-04-03
- 允许使用
--no-default-features
安装以实现纯 POSIX 兼容性 - 实现 GNU 风格的函数
if
、origin
、shell
(不设置.SHELLSTATUS
)、eval
- 实现 GNU 风格的
define
块 - 改进错误报告
v0.2.0 - 2021-04-01
- 部分实现 GNU 风格的条件(仅支持参数周围的括号)
- 实现一些 GNU 风格的函数:
filter
、filter-out
、sort
、notdir
、basename
、addprefix
、wildcard
、foreach
、call
- 改进解析错误错误报告
v0.1.0 - 2021-03-25
- 初始发布
贡献者
- zseri(代码)
- @Lucretiel(代码)
- 如果你愿意,可以成为贡献者!如果你有东西要贡献(不仅仅是代码!),请通过邮箱 [email protected] 联系
许可证
在 Indie Code Catalog Standard Deal 下发布,版本 3.0.0 或更高。
商业许可证可通过 Indie Code Catalog 购买。
minuteæ
正式发音为 /ˈmeɪ.kɹɪz/(好像在说 "make risotto",但半途而废)。
依赖项
~10–21MB
~279K SLoC