非常教程

Erlang 20参考手册

tools

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,1make: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]}.    
Erlang 20

Erlang 是一种通用的面向并发的编程语言,可应付大规模开发活动的程序设计语言和运行环境。

主页 https://www.erlang.org/
源码 https://github.com/erlang/otp
版本 20
发布版本 20.1