我的一个依赖项不使用rebar
- 它使用Makefile。如何让rebar
运行此Makefile,而不是尝试编译源本身?
请注意,我想继续使用钢筋来完成其他任务。
答案 0 :(得分:3)
查看rebar.config example file,您可以将依赖关系标记为raw
,这意味着它不是由rebar编译的。然后你可以添加一个pre或post编译钩子来在该依赖项目录中运行make。假设它们具有OTP文件结构,rebar generate
命令仍应该能够获取在那里构建的任何Erlang应用程序。
答案 1 :(得分:0)
如果您使用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
。
此代码段来自erl.mk
https://github.com/fenollp/erl-mk/blob/master/erl.mk#L17-L21