Skip to content


Subversion checkout URL

You can clone with
Download ZIP
All of the public Erlang/OTP source releases (since R6B-0 in 1999) in convenient git form
Erlang C C++ Java Emacs Lisp Shell

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


                             Erlang Open Source

Please read the whole file before attempting to build and install
Erlang. Always read the latest build notes at

Required utilities

These are the known tools you will need in order to unpack and build
the Erlang base kit.


    GNU unzip, or a modern uncompress
    A TAR program that understand the GNU TAR format for long
    filenames (such as e.g. GNU TAR)


    GNU make (this is a must)
    C compiler (ANSI)
    Perl 5 (this used to be optional, but now it is required)
    openSSL/ssleay (optional) if not configured with '--without-ssl'
    Sun Java jdk-1.2.2 (optional) for compiling the application


    An install program that can take multiple file names

How to build and install Erlang

Start by unpacking the Erlang base kit distribution file.

  1)    gunzip -c otp_src_R7B-0.tar.gz | tar xf -
  1)    zcat otp_src_R7B-0.tar.gz | tar xf -

Now cd into the base kit directory.

  2)    cd otp_src_R7B-0

Run the following commands

  3)    ./configure  [ options ]
  4)    make
  5)    make install

Let's go through them in some detail:

    Step 3 runs a configuration script created by the GNU autoconf
utility, which checks for system specific features and the creates a
number of makefiles. The configure script allows you to customize a
number of parameters, type "./configure --help" for details. One of
the things you can specify is where Erlang should be installed, by
default Erlang will install in /usr/local/{bin,lib/erlang,man/man1},
to keep the same structure but install in a different place, let's
call it <Dir>, than /usr/local use the --prefix argument. Like so:
"./configure --prefix=<Dir>". This step will also configure any
additional libraries unpacked in step 3 (if you didn't add any of the
extra libraries configure will issue a warning saying that there is no
configuration information in lib, this warning can safely be ignored).

You can also specify where the openSSL/ssleay include and library
files are located or disable the use of SSL.

    Step 4 first builds the Erlang emulator, this will take
approximately five minutes on a reasonably fast machine. It then
proceeds to build the Erlang libraries in the "lib" subdirectory using
the built emulator and the bootstrap libraries provided in the
"bootstrap" subdirectory.  Compiling everything can take quite a long
time, expect half an hour up to a couple of hours. After step 4 is
completed you should have a working Erlang system which you can try by
typing "bin/erl". This should start up Erlang and give you a prompt.

    Step 5 is optional. It installs the Erlang system (if you
change your mind about where you wish to install you can rerun step 3,
without having to do step 4 again).

If you or your system has special requirements please read the
Makefile for additional configuration information.

How to install the Erlang documentation

For some graphical tools to find the on-line help you have to install
the HTML documentation on top of the installed OTP applications, i.e.

        cd <PrefixDir>/lib/erlang
        gunzip -c otp_doc_html_R7B.tar.gz | tar xf -

For "erl -man <page>" to work the Unix manual pages have to be
installed in the same way, i.e.

        cd <PrefixDir>/lib/erlang
        gunzip -c otp_doc_man_R7B.tar.gz | tar xf -


Our aim is to make the system as portable as possible and with as
little special requirements as possible. However we only have access
to a limited amount of machines/operating systems locally, these are
the ones which we have succeeded compiling Erlang on:
   Operating system    Version   Compiler

    Solaris/sparc      2.6        cc, gcc
    Solaris/x86        2.5.1      gcc
    SunOS              4.1.4      gcc
    Linux/redhat       5.2        gcc
    Linux/suse                    gcc
    Linux/slackware               gcc
    FreeBSD            2.2.8      gcc
    FreeBSD            3.1        gcc
    Irix               6.3        gcc

If you find that you can compile Erlang on an operating system not
listed above please report this to us. Or if you can't but figured out
what needed to be fixed please tell us about that too!


There are currently no dependencies in the Makefiles, which means that
if you modify any source code the system might not build properly.
Also "make clean" does not clean out everything that should be cleaned.
(Sorry, we are working on it.) For the emulator there is a way to
generate dependencies, "make depend" in erts/emulator should do it.

The install targets needs an "install" program that can handle
multiple files. (This is a bug we need to fix.)

Make and the variable "ERL_TOP"

All the makefiles in the entire directory tree use the environment
variable ERL_TOP to find the absolute path of the installation. The
configure script will figure this out and set it in the toplevel
Makefile (which, when building, it will pass on). However when
developing it is sometimes convenient to be able to run make in a
subdirectory. In order to do this you need to set the ERL_TOP variable
before you run make.

For example, assume your GNU make program is called "make" and you
wish to rebuild the Erlang part of stdlib, then you could do:

  cd lib/stdlib/src ; env ERL_TOP=<Dir> make

Where <Dir> would be what you find ERL_TOP is set to in the top level

More Information

More information can be found on

For commercial inquires (printed documentation, support et.c.) please
Something went wrong with that request. Please try again.