Please have a look at the chapterbefore you start.Unpacking.GNU unzip, or a modern uncompress.A TAR program that understands the GNU TAR format for long filenames.Building.GNU make.Compiler - GNU C Compiler, gcc or the C compiler frontend for LLVM, clang.Perl 5.GNU m4 - If HiPE (native code) support is enabled. HiPE can bedisabled using -disable-hipe.
ncurses, termcap, or termlib - The development headers andlibraries are needed, often known as ncurses-devel. Use-without-termcap to build without any of these libraries. Note thatin this case only the old shell (without any line editing) can be used. sed - Stream Editor for basic text transformation.Building in Git.GNU autoconf of at least version 2.59. Note that autoconf is notneeded when building an unmodified version of the released source.Building on OS X.Xcode - Download and install via the Mac App Store.Read about before proceeding.Installing.An install program that can take multiple file names.Some applications are automatically skipped if the dependencies aren't met.Here is a list of utilities needed for those applications.
You willalso find the utilities needed for building the documentation.Building.OpenSSL - The opensource toolkit for Secure Socket Layerand Transport Layer Security.Required for building the application crypto.Further, ssl and ssh require a working crypto application andwill also be skipped if OpenSSL is missing. The publickeyapplication will available without crypto, but the functionalitywill be very limited.The development package of OpenSSL including the header files are needed as wellas the binary command program openssl.
$ cd $ tar -zxf otpman18.1.tar.gzWhere is. /lib/erlang if you have installed Erlang/OTP usingmake install. $DESTDIR/lib/erlang if you have installed Erlang/OTPusing make install DESTDIR=.
RELEASEROOT if you have installed usingmake release RELEASEROOT=.If you want to tailor your Erlang/OTP build and installation, please readon for detailed information about the individual steps.make and $ERLTOPAll the makefiles in the entire directory tree use the environmentvariable ERLTOP to find the absolute path of the installation. Theconfigure script will figure this out and set it in the top levelMakefile (which, when building, it will pass on). However, whendeveloping it is sometimes convenient to be able to run make in asubdirectory.
To do this you must set the ERLTOP variablebefore you run make.For example, assume your GNU make program is called make and youwant to rebuild the application STDLIB, then you could do. $ export MAKEFLAGS=-j8 # Assuming bash/sh$ makeIf you've upgraded the source with a patch you may need to clean up from previousbuilds before the new build.Make sure to read the section below before doing a make clean.Within GitWhen building in a Git working directory you also have to have a GNU autoconfof at least version 2.59 on your system, because you need to generate theconfigure scripts before you can start building.The configure scripts are generated by invoking./otpbuild autoconf inthe $ERLTOP directory. The configure scripts also have to be regeneratedwhen a configure.in or aclocal.m4 file has been modified.
Note that whenchecking out a branch a configure.in or aclocal.m4 file may changecontent, and you may therefore have to regenerate the configure scriptswhen checking out a branch. Regenerated configure scripts imply that youhave to run configure and build again. Running./otpbuild autoconf is not needed when buildingan unmodified version of the released source.Other useful information can be found at our GitHub wiki:.OS X (Darwin)Make sure that the command hostname returns a valid fully qualified hostname (this is configured in /etc/hostconfig). Otherwise you might experienceproblems when running distributed systems.If you develop linked-in drivers (shared library) you need to link usinggcc and the flags -bundle -flatnamespace -undefined suppress. You alsoinclude -fno-common in CFLAGS when compiling. Use.so as the librarysuffix.If you have Xcode 4.3, or later, you will also need to download'Command Line Tools' via the Downloads preference pane in Xcode.Building with wxErlangIf you want to build the wx application, you will need to get wxWidgets-3.0( wxWidgets-3.0.0.tar.bz2 from ) or get it from github with bug fixes.
Install Erlang Ubuntu
Doing make clean in an arbitrary directory of the sourcetree, may remove files needed for bootstrapping the build.Doing./otpbuild savebootstrap from the $ERLTOP directory beforedoing make clean will ensure that it will be possible to build afterdoing make clean./otpbuild savebootstrap will be invokedautomatically when make is invoked from $ERLTOP with either theclean target, or the default target. It is also automatically invokedif./otpbuild removeprebuiltfiles is invoked.How to Build a Debug Enabled Erlang RunTime SystemAfter completing all the normal building steps described above a debugenabled runtime system can be built. To do this you have to changedirectory to $ERLTOP/erts/emulator.In this directory execute.
$ make DESTDIR= installThe installation will be created in a location prefixed by $DESTDIR.It can, however, not be run from there. It needs to be moved into thecorrect location before it can be run. If DESTDIR have not been setbut INSTALLPREFIX has been set, DESTDIR will be set toINSTALLPREFIX. Note that INSTALLPREFIX in pre R13B04 was buggyand behaved as EXTRAPREFIX (see below). There are lots of areas ofuse for an installation procedure using DESTDIR, e.g.
When creatinga package, cross compiling, etc. Here is an example where theinstallation should be located under /opt/local. $./configure -prefix=/opt/local$ make$ make DESTDIR=/tmp/erlang-build install$ cd /tmp/erlang-build/opt/local$ # gnu-tar is used in this example$ tar -zcf /home/me/my-erlang-build.tgz.$ su -Password:.$ cd /opt/local$ tar -zxf /home/me/my-erlang-build.tgz.Install using the release target. Instead of doing make install youcan create the installation in whatever directory you like using therelease target and run the Install script yourself. RELEASEROOTis used for specifying the directory where the installation should becreated. This is what by default ends up under /usr/local/lib/erlangif you do the install using make install.
All installation pathsprovided in the configure phase are ignored, as well as DESTDIR,and INSTALLPREFIX. If you want links from a specific bin directoryto the installation you have to set those up yourself.
An example whereErlang/OTP should be located at /home/me/OTP. $./Install -cross -minimal -sasl where:.minimal Creates an installation that starts up a minimal amountof applications, i.e., only kernel and stdlib are started. Theminimal system is normally enough, and is what make install uses.sasl Creates an installation that also starts up the saslapplication.cross For cross compilation. Informs the install script that itis run on the build machine. The absolute path to the Erlang installation to useat run time.
Install Erlang Otp
This is often the same as the current working directory,but does not have to be. It can follow any other path through thefile system to the same directory.If neither -minimal, nor -sasl is passed as argument you will beprompted.Test install using EXTRAPREFIX. The content of the EXTRAPREFIXvariable will prefix all installation paths when doing make install.Note that EXTRAPREFIX is similar to DESTDIR, but it does not havethe same effect as DESTDIR. The installation can and have to be runfrom the location specified by EXTRAPREFIX.
That is, it can be usefulif you want to try the system out, running test suites, etc, before doingthe real install without EXTRAPREFIX.Symbolic Links in -bindirWhen doing make install and the default installation prefix is used,relative symbolic links will be created from /usr/local/bin to all publicErlang/OTP executables in /usr/local/lib/erlang/bin. The installation phasewill try to create relative symbolic links as long as -bindir and theErlang bin directory, located under -libdir, both have -exec-prefix asprefix. Where -exec-prefix defaults to -prefix.prefix,-exec-prefix, -bindir, and -libdir are all arguments that can bepassed to configure. One can force relative, or absolute links by passingBINDIRSYMLINKS=relative absolute as arguments to make during the installphase. Note that such a request might cause a failure if the request cannotbe satisfied.RunningUsing HiPEHiPE supports the following system configurations:.x86: All 32-bit and 64-bit mode processors should work.Linux: Fedora Core is supported. Both 32-bit and 64-bit modes aresupported.NPTL glibc is strongly preferred, or a LinuxThreadsglibc configured for 'floating stacks'.
Old non-floatingstacks glibcs have a fundamental problem that makes HiPEsupport and threads support mutually exclusive.Solaris: Solaris 10 (32-bit and 64-bit) and 9 (32-bit) are supported.The build requires a version of the GNU C compiler (gcc)that has been configured to use the GNU assembler (gas).Sun's x86 assembler is emphatically not supported.FreeBSD: FreeBSD 6.1 and 6.2 in 32-bit and 64-bit modes should work.OS X/Darwin: Darwin 9.8.0 in 32-bit mode should work.PowerPC: All 32-bit 6xx/7xx(G3)/74xx(G4) processors should work. 32-bitmode on 970 (G5) and POWER5 processors should work.Linux (Yellow Dog) and OS X 10.4 are supported.SPARC: All UltraSPARC processors running 32-bit user code should work.Solaris 9 is supported. The build requires a gcc that has beenconfigured to use Sun's assembler and linker. Using the GNU assemblerbut Sun's linker has been known to cause problems.Linux (Aurora) is supported.ARM: ARMv5TE (i.e. XScale) processors should work. Both big-endian andlittle-endian modes are supported.Linux is supported.HiPE is automatically enabled on the following systems:.x86 in 32-bit mode: Linux, Solaris, FreeBSD.x86 in 64-bit mode: Linux, Solaris, FreeBSD.PowerPC: Linux, Mac OSX.SPARC: Linux.ARM: LinuxOn other supported systems, see on how to enable HiPE.If you are running on a platform supporting HiPE and if you have not disabledHiPE, you can compile a module into native code like this from the Erlangshell. 1 hipe:helpoptions.Running with GSThe gs application requires the GUI toolkit Tcl/Tk to run.
At leastversion 8.4 is required.Suse linux 9.1 is shipped with a patched GCC version 3.3.3, having therpm named gcc-3.3.3-41. That version has a serious optimization bugthat makes it unusable for building the Erlang emulator. Pleaseupgrade GCC to a newer version before building on Suse 9.1. Suse LinuxEnterprise edition 9 (SLES9) has gcc-3.3.3-43 and is not affected.gcc-4.3.0 has a serious optimizer bug.
It produces an Erlang emulatorthat will crash immediately. The bug is supposed to be fixed ingcc-4.3.1.FreeBSD had a bug which caused kqueue/ poll/ select to fail to detectthat a writev on a pipe has been made. This bug should have been fixedin FreeBSD 6.3 and FreeBSD 7.0.
NetBSD and DragonFlyBSD probably have orhave had the same bug. More information can be found at:.getcwd on Solaris 9 can cause an emulator crash. If you haveasync-threads enabled you can increase the stack size of theasync-threads as a temporary workaround. See the +a command-lineargument in the documentation of erl(1). Without async-threads theemulator is not as vulnerable to this bug, but if you hit it withoutasync-threads the only workaround available is to enable async-threadsand increase the stack size of the async-threads.
Oracle has howeverreleased patches that fixes the issue:Problem Description: 6448300 large mnttab can cause stack overrunduring Solaris 9 getcwdMore information can be found at:.sed on Solaris seem to have some problems.
Before installing Pivotal RabbitMQ 3.5, verify that your system meets operating system and installation requirements. Supported ConfigurationsThe following table shows supported configurations for Pivotal RabbitMQ.Table 1.