make(3)



make(3erl)                 Erlang Module Definition                 make(3erl)

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}  |  <com-
                 piler option>

              This  function  determines the set of modules to compile and the
              compile options to use, by first looking for the emake make  op-
              tion,  if  not present reads the configuration from a file named
              Emakefile (see below). If no such file is found, the set of mod-
              ules  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 com-
                  piled, 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 ex-
                  plicitly.

              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  op-
       tions,  then  in  the current working directory for a file named Emake-
       file. 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   [de-
       bug_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)

Ericsson AB                        tools 3.4                        make(3erl)

Man(1) output converted with man2html
list of all man pages