Provided by: erlang-manpages_25.3.2.8+dfsg-1ubuntu4_all bug

NAME

       make - A Make Utility for Erlang

DESCRIPTION

       The module make provides a set of functions similar to the UNIX type Make functions.

EXPORTS

       all() -> up_to_date | error

       all(Options) -> up_to_date | error

              Types:

                 Options = [Option]
                 Option =
                     noexec | load | netload | {emake, Emake} | compile:option()
                 Emake = [EmakeElement]
                 EmakeElement = Modules | {Modules, [compile:option()]}
                 Modules = atom() | [atom()]

              This  function  determines the set of modules to compile and the compile options to
              use, by first looking  for  the  emake  make  option,  if  not  present  reads  the
              configuration  from  a  file named Emakefile (see below). If no such file is found,
              the set of modules to compile defaults  to  all  modules  in  the  current  working
              directory.

              Traversing  the  set of modules, it then recompiles every module for which at least
              one of the following conditions apply:

                * there is no object file, or

                * the source file has been modified since it was last compiled, or,

                * an include file has been modified since the source file was last compiled.

              As a side effect, the function prints the name of each module it tries to  compile.
              If compilation fails for a module, the make procedure stops and error is returned.

              Options is a list of make- and compiler options. The following make options exist:

                * noexec
                   No  execution  mode.  Just  prints  the  name  of each module that needs to be
                  compiled.

                * load
                   Load mode. Loads all recompiled modules.

                * netload
                   Net load mode. Loads all recompiled modules on all known nodes.

                * {emake, Emake}
                   Rather than reading the Emakefile specify configuration explicitly.

              All items in Options that are not make options are assumed to be  compiler  options
              and are passed as-is to compile:file/2. Options defaults to [].

       files(ModFiles) -> up_to_date | error

       files(ModFiles, Options) -> up_to_date | error

              Types:

                 ModFiles = [(Module :: module()) | (File :: file:filename())]
                 Options = [Option]
                 Option = noexec | load | netload | compile:option()

              files/1,2  does  exactly  the same thing as all/0,1 but for the specified ModFiles,
              which is a list of module or file names. The file extension .erl may be omitted.

              The Emakefile (if it exists) in the current  directory  is  searched  for  compiler
              options  for  each  module.  If  a  given  module does not exist in Emakefile or if
              Emakefile does not exist, the module is still compiled.

EMAKEFILE

       make:all/0,1 and make:files/1,2 first looks for {emake, Emake} in  options,  then  in  the
       current  working  directory  for  a  file named Emakefile. If present Emake should contain
       elements like this:

       Modules.
       {Modules,Options}.

       Modules is an atom or a list of atoms. It can be

         * a module name, e.g. file1

         * a module name in another directory, e.g. '../foo/file3'

         * a set of modules specified with a wildcards, e.g. 'file*'

         * a wildcard indicating all modules in current directory, i.e. '*'

         * a list of any of the above, e.g. ['file*','../foo/file3','File4']

       Options is a list of compiler options.

       Emakefile is read from top to bottom. If a module matches more than one entry,  the  first
       match  is  valid.  For example, the following Emakefile means that file1 shall be compiled
       with the options [debug_info,{i,"../foo"}], while all other files in the current directory
       shall be compiled with only the debug_info flag.

       {'file1',[debug_info,{i,"../foo"}]}.
       {'*',[debug_info]}.

SEE ALSO

       compile(3erl)