aboutsummaryrefslogtreecommitdiffstats
path: root/HOWTO/INSTALL.md
diff options
context:
space:
mode:
Diffstat (limited to 'HOWTO/INSTALL.md')
-rw-r--r--HOWTO/INSTALL.md70
1 files changed, 30 insertions, 40 deletions
diff --git a/HOWTO/INSTALL.md b/HOWTO/INSTALL.md
index 07a8db1a53..702c949297 100644
--- a/HOWTO/INSTALL.md
+++ b/HOWTO/INSTALL.md
@@ -63,7 +63,7 @@ At Ericsson we have a "Daily Build and Test" that runs on:
* x86
* OpenBSD 5.0
* x86\_64
-* Mac OS X 10.5.8 (Leopard), 10.6.0 (Snow Leopard), 10.7.3 (Lion)
+* Mac OS X 10.5.8 (Leopard), 10.7.3 (Lion), 10.9 (Mavericks)
* x86
* Windows XP SP3, 2003, Vista, 7
* x86
@@ -297,12 +297,29 @@ Some of the available `configure` options are:
you can build using a fallback implementation based on mutexes or spinlocks.
Performance of the SMP runtime system will however suffer immensely without
an implementation for native atomic memory accesses.
+* `--enable-static-{nifs,drivers}` - To allow usage of nifs and drivers on OSs
+ that do not support dynamic linking of libraries it is possible to statically
+ link nifs and drivers with the main Erlang VM binary. This is done by passing
+ a comma seperated list to the archives that you want to statically link. e.g.
+ `--enable-static-nifs=/home/$USER/my_nif.a`. The path has to be absolute and the
+ name of the archive has to be the same as the module, i.e. `my_nif` in the
+ example above. This is also true for drivers, but then it is the driver name
+ that has to be the same as the filename. You also have to define
+ `STATIC_ERLANG_{NIF,DRIVER}` when compiling the .o files for the nif/driver.
+ If your nif/driver depends on some other dynamic library, you now have to link
+ that to the Erlang VM binary. This is easily achived by passing `LIBS=-llibname`
+ to configure.
* `--without-$app` - By default all applications in Erlang/OTP will be included
in a release. If this is not wanted it is possible to specify that Erlang/OTP
should be compiled without that applications, i.e. `--without-wx`. There is
no automatic dependency handling inbetween applications. So if you disable
an application that another depends on, you also have to disable the
dependant application.
+* `--enable-dirty-schedulers` - Enable the **experimental** dirty schedulers
+ functionality. Note that the dirty schedulers functionality is experimental,
+ and **not supported**. This functionality **will** be subject to backward
+ incompatible changes. Note that you should **not** enable the dirty scheduler
+ functionality on production systems. It is only provided for testing.
If you or your system has special requirements please read the `Makefile` for
additional configuration information.
@@ -668,52 +685,26 @@ If you develop linked-in drivers (shared library) you need to link using
include `-fno-common` in `CFLAGS` when compiling. Use `.so` as the library
suffix.
-Use the `--enable-darwin-64bit` configure flag to build a 64-bit
-binaries on Mac OS X.
+Install `Xcode` from the `AppStore` if it is not already installed.
-Building a fast Erlang VM on Mac OS Lion
-----------------------------------------
-
-Starting with Xcode 4.2, Apple no longer includes a "real" `gcc`
-compiler (not based on the LLVM). Building with `llvm-gcc` or `clang`
-will work, but the performance of the Erlang run-time system will not
-be the best possible.
-
-Note that if you have `gcc-4.2` installed and included in `PATH`
-(from a previous version of Xcode), `configure` will automatically
-make sure that `gcc-4.2` will be used to compile `beam_emu.c`
-(the source file most in need of `gcc`).
-
-If you don't have `gcc-4.2.` and want to build a run-time system with
-the best possible performance, do like this:
-
-Install Xcode from the AppStore if it is not already installed.
-
-If you have Xcode 4.3, or later, you will also need to download
+If you have Xcode 4.3, or later, you will also need to download
"Command Line Tools" via the Downloads preference pane in Xcode.
-Some tools may still be lacking or out-of-date, we recommend using
-[Homebrew](https://github.com/mxcl/homebrew/wiki/installation) or
-Macports to update those tools.
-
-Install MacPorts (<http://www.macports.org/>). Then:
-
- $ sudo port selfupdate
- $ sudo port install gcc45 +universal
-
### Building with wxErlang ###
-If you want to build the `wx` application, you will need to get wxWidgets-2.9.4 (or later)
-(`wxWidgets-2.9.4.tar.bz2` from <http://sourceforge.net/projects/wxwindows/files/2.9.4/>)
+If you want to build the `wx` application, you will need to get wxWidgets-3.0 (or later)
+(`wxWidgets-3.0.0.tar.bz2` from <http://sourceforge.net/projects/wxwindows/files/3.0.0/>)
or get it from github:
$ git clone [email protected]:wxWidgets/wxWidgets.git
-Be aware that the wxWidgets-2.9 branch is a development branch of wxWidgets and the MacOsX
-port still lags behind the other ports.
+Be aware that the wxWidgets-3.0 is a new release of wxWidgets, it is not as matured
+as the old releases and the MacOsX port still lags behind the other ports.
-Configure and build wxMac:
+Configure and build wxWidgets (on Mavericks - 10.9):
$ ./configure --with-cocoa --prefix=/usr/local
+ or without support for old versions and with static libs
+ $ ./configure --with-cocoa --prefix=/usr/local --with-macosx-version-min=10.9 --disable-shared
$ make
$ sudo make install
$ export PATH=/usr/local/bin:$PATH
@@ -724,12 +715,11 @@ Check that you got the correct wx-config
### Finish up ###
-Build Erlang with the MacPorts GCC as the main compiler (using `clang`
-for the Objective-C Cocoa code in the `wx` application):
+Build Erlang
$ export PATH=/usr/local/bin:$PATH
$ cd $ERL_TOP
- $ CC=/opt/local/bin/gcc-mp-4.5 CXX=/opt/local/bin/g++-mp-4.5 ./configure --enable-darwin-64bit
+ $ ./configure --enable-shared-zlib
$ make
$ sudo make install
@@ -779,7 +769,7 @@ Copyright and License
%CopyrightBegin%
-Copyright Ericsson AB 1998-2013. All Rights Reserved.
+Copyright Ericsson AB 1998-2014. All Rights Reserved.
The contents of this file are subject to the Erlang Public License,
Version 1.1, (the "License"); you may not use this file except in