Man Linux: Main Page and Category List

NAME

       erlc - Compiler

DESCRIPTION

       The  erlc  program  provides  a  common way to run all compilers in the
       Erlang system. Depending on the extension of each input file, erlc will
       invoke  the appropriate compiler. Regardless of which compiler is used,
       the same flags are used to provide parameters such as include paths and
       output directory.

       The  current  working  directory, ".", will not be included in the code
       path when running the compiler (to avoid loading Beam  files  from  the
       current  working  directory  that could potentially be in conflict with
       the compiler or Erlang/OTP system used by the compiler).

EXPORTS

       erlc flags file1.ext file2.ext...

              Erlc compiles one or more files.  The  files  must  include  the
              extension,  for example .erl for Erlang source code, or .yrl for
              Yecc source code. Erlc uses the extension to invoke the  correct
              compiler.

GENERALLY USEFUL FLAGS

       The following flags are supported:

         -I  directory
             Instructs  the  compiler  to  search  for  include  files  in the
             specified   directory.   When   encountering   an   -include   or
             -include_dir directive, the compiler searches for header files in
             the following directories:

           * ".", the current working directory of the file server; .br .br

           * the base name of the compiled file; .br .br

           * the directories specified using  the  -I  option.  The  directory
             specified last is searched first. .br .br

         -o  directory
             The  directory  where the compiler should place the output files.
             If not specified, output files will  be  placed  in  the  current
             working directory.

         -D name
             Defines a macro.

         -D name= value
             Defines a macro with the given value. The value can be any Erlang
             term. Depending on the platform, the value may need to be  quoted
             if the shell itself interprets certain characters. On Unix, terms
             which contain tuples and list must be quoted. Terms which contain
             spaces must be quoted on all platforms.

         -W number
             Sets  warning  level to number. Default is 1. Use -W0 to turn off
             warnings.

         -W  Same as -W1. Default.

         -v  Enables verbose output.

         -b  output-type
             Specifies the type of output file. Generally, output-type is  the
             same  as  the  file  extension of the output file but without the
             period. This option will be ignored by compilers that  have  a  a
             single output format.

         -hybrid
             Compile using the hybrid-heap emulator. This is mainly useful for
             compiling native code, which needs to be compiled with  the  same
             run-time system that it should be run on.

         -smp
             Compile  using  the  SMP  emulator.  This  is  mainly  useful for
             compiling native code, which needs to be compiled with  the  same
             run-time system that it should be run on.

         --  Signals  that  no  more  options  will  follow.  The  rest of the
             arguments will be treated as file names, even if they start  with
             hyphens.

         + term
             A  flag  starting with a plus (’ +’) rather than a hyphen will be
             converted to an Erlang term and passed unchanged to the compiler.
             For  instance,  the export_all option for the Erlang compiler can
             be specified as follows:

             erlc +export_all file.erl
             Depending on the platform, the value may need to be quoted if the
             shell  itself interprets certain characters. On Unix, terms which
             contain tuples and list  must  be  quoted.  Terms  which  contain
             spaces must be quoted on all platforms.

SPECIAL FLAGS

       The  flags in this section are useful in special situations such as re-
       building the OTP system.

         -pa  directory
             Appends directory to the front of the code path  in  the  invoked
             Erlang emulator. This can be used to invoke another compiler than
             the default one.

         -pz  directory
             Appends  directory  to  the  code  path  in  the  invoked  Erlang
             emulator.

SUPPORTED COMPILERS

         .erl
             Erlang source code. It generates a .beam file.

             The  options  -P,  -E,  and  -S are equivalent to +’P’, +’E’, and
             +’S’, except that it is  not  necessary  to  include  the  single
             quotes to protect them from the shell.

             Supported options: -I, -o, -D, -v, -W, -b.

         .yrl
             Yecc source code. It generates an .erl file.

             Use  the  -I option with the name of a file to use that file as a
             customized prologue file (the includefile option).

             Supported options: -o, -v, -I, -W (see above).

         .mib
             MIB for SNMP. It generates a .bin file.

             Supported options: -I, -o, -W.

         .bin
             A compiled MIB for SNMP. It generates a .hrl file.

             Supported options: -o, -v.

         .rel
             Script file. It generates a boot file.

             Use the -I to name directories to  be  searched  for  application
             files   (equivalent   to   the   path  in  the  option  list  for
             systools:make_script/2).

             Supported options: -o.

         .asn1
             ASN1 file.

             Creates an .erl, .hrl, and .asn1db file from an .asn1 file.  Also
             compiles  the  .erl  using  the Erlang compiler unless the +noobj
             options is given.

             Supported options: -I, -o, -b, -W.

         .idl
             IC file.

             Runs the IDL compiler.

             Supported options: -I, -o.

ENVIRONMENT VARIABLES

         ERLC_EMULATOR
             The command for starting the emulator.
                    Default is  erl in the same directory as the  erlc program
                    itself,  or  if  it  doesn’t  exist,   erl  in  any of the
             directories
                    given in the  PATH environment variable.

SEE ALSO

       erl(1), compile(3erl), yecc(3erl), snmp(3erl)