【发布时间】:2013-12-11 20:05:03
【问题描述】:
我的一个依赖项不使用rebar——它使用了一个Makefile。如何让rebar 运行此 Makefile,而不是尝试编译源代码本身?
请注意,我想继续将钢筋用于其他一切。
【问题讨论】:
我的一个依赖项不使用rebar——它使用了一个Makefile。如何让rebar 运行此 Makefile,而不是尝试编译源代码本身?
请注意,我想继续将钢筋用于其他一切。
【问题讨论】:
查看rebar.config example file,您可以将依赖项标记为raw,这意味着它不是由rebar 编译的。然后,您可以添加预编译或后编译挂钩以在该依赖目录中运行 make。 rebar generate 命令应该仍然能够获取任何在那里构建的 Erlang 应用程序,假设它们具有 OTP 文件结构。
【讨论】:
如果您使用rebar 到make,您可以将这种代码添加到您的 Makefile:
@if [[ -f $@/Makefile ]]; \
then echo 'make -C $@ all' ; \
make -C $@ all ; \
else echo 'cd $@ && rebar get-deps compile && cd ../..' ; \
cd $@ && rebar get-deps compile && cd ../.. ; fi
它检查$@ 是否有Makefile,然后决定是使用make 还是rebar。
这个sn-p来自erl.mkhttps://github.com/fenollp/erl-mk/blob/master/erl.mk#L17-L21
【讨论】: