Emakefile并行编译

之前写了几篇关于erlang编译的的文章,找到了一个erlang并行编译的代码,分享给大家。

项目代码越来越多,使用erlang编译也越来越慢。无论是Makefile还是Emakefile都力不从心。使用rebar编译速度会加快,但对原有项目改动太大。 

通过对make.erl(otp/lib/tools/src/make.erl)进行修改,提供一个支持多进程编译的mmake.erl。其接口和make.erl相似,只是第一个参数为并发编译数,具体看下代码吧,非常简单。 

对于项目中有编译次序要求时,比如必须首先编译自定义behaviour模块,随后编译其它模块,可以通过将Emakefile中内容分成多个{mod, opts}来达到目的。mmake实现中,对于同一个{mod, opts}内的模块会并行编译,而所有的{mod,opts}是顺序编译的。通过这个规则,我们就可以自定义顺序编译和并行编译。 

比如,我们的项目首先要编译 gen_mod.erl,随后是mod_battle.erl,mod_team.erl模块: 
Erlang代码   收藏代码
  1. cat Emakefile  
  2. {"gen_mod.erl", [{i, "include}, {outdir, "ebin"}]}.  
  3. {["mod_battle.erl","mod_team.erl"], [{i, "include}, {outdir, "ebin"}]}.  


代码地址:https://github.com/litaocheng/mmake

转自http://erlangdisplay.iteye.com/blog/1264038


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值