bionic (3) make.3erl.gz

Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_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} | <compiler option>

              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 | File]
                  Module = atom()
                  File = string()
                 Options = [Option]
                  Option = noexec | load | netload | <compiler 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]}.