make
制造
模块
制造
模块摘要
Erlang的Make实用程序
描述
模块make
提供一组类似于UNIX类型的函数Make
职能。
出口
all() -> up_to_date | errorall(Options) -> up_to_date | error
类型
此函数首先查找要编译的模块集和要使用的编译选项。emake
选项,如果不存在,则从名为Emakefile
%28见%29以下。如果没有找到这样的文件,则要编译的模块集默认为当前工作目录中的所有模块。
然后遍历这组模块,然后重新编译至少适用以下条件之一的每个模块:
- 没有对象文件,或者
- 源文件自上次编译以来已被修改,或者,
- 自源文件上次编译以来,已修改了包含文件。
作为一个副作用,函数打印它试图编译的每个模块的名称。如果模块编译失败,则make过程停止,error
会被归还。
Options
是生成和编译器选项的列表。存在以下选项:
noexec
没有执行模式。只需打印需要编译的每个模块的名称。
load
加载模式。加载所有重新编译的模块。
netload
净负载模式。在所有已知节点上加载所有重新编译的模块。
{emake, Emake}
而不是阅读Emakefile
显式指定配置。
所有项目Options
而非make选项则被假定为编译器选项,并按原样传递给compile:file/2
...Options
默认为[]
...
files(ModFiles) -> up_to_date | errorfiles(ModFiles, Options) -> up_to_date | error
类型
files/1,2
做同样的事情all/0,1
但对于指定的ModFiles
,这是一个模块或文件名的列表。文件扩展名.erl
可以省略。
大Emakefile
如果存在%28,则搜索当前目录中的%29,以查找每个模块的编译器选项。如果给定的模块不存在Emakefile
或者如果Emakefile
不存在,则模块仍在编译中。
Emakefile
make:all/0,1
和make:files/1,2
第一次寻找{emake, Emake}
在选项中,然后在当前工作目录中为名为Emakefile
.如有Emake
应该包含如下元素:
Modules.
{Modules,Options}.
Modules
是原子或原子列表。可能是
- 模块名,例如:
file1
- 另一个目录中的模块名,例如,
../foo/file3
- 用通配符指定的一组模块,例如,
'file*'
- 指示当前目录中所有模块的通配符,即
'*'
- 上述任何一项的清单,例如:
['file*','../foo/file3','File4']
Options
是编译器选项的列表。
Emakefile
自上而下阅读。如果一个模块匹配多个条目,则第一个匹配有效。例如,以下内容Emakefile
意味着file1
应与备选方案一起汇编[debug_info,{i,"../foo"}]
,而当前目录中的所有其他文件只能使用debug_info
旗子。
{'file1',[debug_info,{i,"../foo"}]}.
{'*',[debug_info]}.