4
所以我现在在学习ruby
并发现rake
。我喜欢通过实施我已经知道的事情来学习新工具,所以我尝试将Makefile
转换为rake
。耙文件中的Makefile等效行为
比方说,它看起来像这样:
main: build/*.o
clang -c $^ -o [email protected]
build/%.o: src/%.c | build
clang -c $< -o [email protected]
build:
mkdir build
什么特殊关于这个Makefile是:
- 模式与
%
- 订单仅依赖匹配与
| build
是否有某种方法可以使用rake
来实现此逻辑,还是必须使用ruby
本身?例如。
task :default => "main"
file "main" => "build/%.o" do
sh "clang -o 'main' ??"
end
file 'build/%.o' => "src/%.c" do # order only dependency on `build`
sh "clang -c ?? ??"
end