Erlang中用的makefile的一点解释

又重新开始读了《Programming Erlang》,也就又读到了第六章中的makefile,结合学习中的具体情况,略作了修改如下:

.SUFFIXES: .erl .beam

OUT = ./beam

.erl.beam:
    erlc -W $< ; mv $@ ${OUT}

ERL = erl -boot start_clean

MODS = kvs

all: compile

compile: ${MODS:%=%.beam}

# application:
#     ${ERL} -s application start ARG1 ARG2

clean:
    rm -rf *.beam erl_crash.dump

 跟书里有的一点不同是,我把编译之后的文件转移到了beam文件夹里了,所以为此,在“~/.erlang”中也添加了该路径:

path_addz("./beam").
  这样,就方便载入自己编写的模块。最后还是要对以上的makefile稍作解释,以便以后忘了可以看看。

.SUFFIX声明要用到的或者将生成的文件的类型;.erl.beam是指.beam依赖于.erl,紧接着下一行一个tab之后的是一段有关于这种生成关系的具体命令,我也就是在这里把beam文件移动到./beam文件夹里的;MODS和OUT都是定义的变量,方便重复使用(虽然这里没有再用到,但是至少看起来很清楚);application这个替换被注释掉了,因为我几乎用不到,但也可能以后会用到,除了编译之外,它还负责运行编译之后的模块函数;clean就是删除当前文件夹下的beam文件。

你可能感兴趣的:(erlang)