如何让rebar为依赖运行'make'?

时间:2013-12-09 08:19:04

标签: erlang rebar

我的一个依赖项不使用rebar - 它使用Makefile。如何让rebar运行此Makefile,而不是尝试编译源本身?

请注意,我想继续使用钢筋来完成其他任务。

2 个答案:

答案 0 :(得分:3)

查看rebar.config example file,您可以将依赖关系标记为raw,这意味着它不是由rebar编译的。然后你可以添加一个pre或post编译钩子来在该依赖项目录中运行make。假设它们具有OTP文件结构,rebar generate命令仍应该能够获取在那里构建的任何Erlang应用程序。

答案 1 :(得分:0)

如果您使用rebarmake,则可以将此类代码添加到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