OS X
The Enlightenment Foundation's projects mostly targets Linux platforms, therefore not everything work on Mac OS X (Darwin kernel) works the first time. This is due to:
- the specificities of the OS
- there are a very few Enlightened OS X users :'(
This document explains how to install the EFL/Elementary which are key projects to install anything else made by the Enlightenment Foundation. It also shows what does not work on OS X that does on Linux.
Issues (non-exhaustive list)
- Cserve is disabled (untested?)
- OpenSSL is deprecated (http://stackoverflow.com/questions/7406946/why-is-apple-deprecating-openssl-in-macos-10-7-lion)
- Eeze is not compatible OS X (because it relies on udev)
- E cannot complete its initialization
Set the environment up
You need to have the OS X CLT (Command-Line Tools) first, then install the dependancies. The easiest way is by using a package manager. There are (mostly) two flavours about package managers on OS X: macports and homebrew. You should choose only one of them, it is not recommended to use both.
Command-Line Tools (CTL)
- Download the latest version of Xcode on the Mac App Store.
- Run xcode-select --install in a terminal to install the CLT.
XQuartz
Since OSX 10.7, Apple does not support X11, therefore you have to download it by yourself: download the .dmg at http://xquartz.macosforge.org/landing/ and follow the installation procedure. Currently, the EFL do not fully support the native Cocoa display; it is therefore necessary to use X11 for the moment.
Install in one go from a package manager
Since mid-April 2015, Leif Middelschulte provided Homebrew formulas for :
- EFL 1.14.0
- Elementary 1.14.0
- evas-generic-loaders 1.14.0
If you want to install these stable versions peacefully, this is the solution you are looking for.
See at http://brew.sh how to install Homebrew if it isn't already installed.
Then, just execute :
brew update # Just to refresh homebrew brew install efl # To install EFL brew install elementary # To install Elementary brew install evas-generic-loaders # To install evas-generic-loaders
Build code from sources
If you want to have the very latest (maybe unstable) version of EFL, Elementary, here is the procedure :
- how to install the dependancies;
- how to configure the source;
- how to compile the sources and install them.
Dependancies with macports
I would recommand to set some environment variables as it follows (I assume you will use a standard installation of macports then):
export CFLAGS="-I/opt/local/include -I/opt/X11/include ${CFLAGS}"
export LDFLAGS="-L/opt/local/lib ${LDFLAGS}"
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"If you don't know what to do with these variables, just add them at the end of your ~/.profile file.
To install macports, just go here: https://www.macports.org/install.php and download the .pkg for your version of OSX. Follow the installation procedure, and restart your terminal if it was open (or do a source ~/.profile).
Let's update macports first:
sudo port selfupdate
Then, let's install everything in one go:
sudo port install automake autoconf libtool pkgconfig check openssl jpeg luajit freetype fontconfig fribidi giflib tiff bullet libspectre libraw librsvg
During the process, macports installs also dbus. To activate dbus at startup, just run (as macports suggests):
sudo launchctl load -w /Library/LaunchDaemons/org.freedesktop.dbus-system.plist sudo launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist
--disable-gstreamer --disable-gstreamer1 --disable-pulseaudio --enable-lua-old
Dependancies with Homebrew
See the installation procedure here: http://brew.sh.
It is not recommended to install the packages as root (but homebrew will make you know it).
brew install autoconf automake libtool autoconf-archive gettext check pkg-config luajit brew install libjpeg freetype fribidi fontconfig giflib libtiff glib dbus libsndfile bullet
Then, launch dbus:
mkdir -p ~/Library/LaunchAgents ln -sfv /usr/local/opt/dbus/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
You need to add autopoint to your $PATH if you want to use gettext:
export PATH="$(brew --prefix gettext)/bin:$PATH"
Install the EFL
Installing dependancies on OS X is painful, but now you did it (congrats'), you can grab the sources from the git repository:
git clone git://git.enlightenment.org/core/efl.git
Standard installation
You will have a safe (understand working out of the box) installation if you run (of course, after a cd /where/you/have/downloaded/efl):
./autogen.sh --prefix=/usr --disable-gstreamer --disable-gstreamer1 --disable-pulseaudio --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb
Cocoa port
To render windows and stuff, the EFL use Engines written in the Ecore library. The Ecore_Cocoa engine aims at using the Cocoa environment to create the GUI. It is under developement for now, and at a very early stage, so the applications will not be functional. If you would like to contribute to it (or just to test it), then you are welcome to configure the sources as it follows by adding --enable-cocoa flags to your ./autogen.sh or ./configure. Note that you can disable X11 by using the flag --with-x11=none.
Compile and install
If everything went OK, you should be able to compile the sources:
make
or to do it way, way faster:
make -j N # where N = number of parallel jobs
then, if once again, everything went OK, install:
sudo make install
Enlightenment (E)
Enlightenment relies on Eeze, but this dependency can be skipped.
First init the autotools:
./autogen --disable-device-udev
Then compile:
make # or make -j N where N is the number of parallel jobs
Extras
This section is not specific to OS X. However, these are good basis to try out the Ecore_Cocoa engine.
Terminology
You might want to give a try to this terminal emulator (http://enlightenment.org/p.php?p=about/terminology&l=en).
git clone git://git.enlightenment.org/apps/terminology.git && cd terminology ./autogen.sh make # or make -j N with N = number of parallel jobs sudo make install
Runtime engine selection
If you decided to support Ecore_Cocoa for development purpose (God bless you), it will be used by default when running a graphical application (unless stated otherwise in the elementary_config program). You can select the engine in an environment variable:
ELM_ENGINE=opengl_cocoa terminology # To use Ecore_Cocoa ELM_ENGINE=software_x11 terminology # To use Ecore_X ELM_ENGINE=opengl_x11 terminology # To use Ecore_X with OpenGL
- Last Author
- ajwillia.ms
- Projects
- None
- Subscribers
- NikaWhite, jbflamant, VimCommando and 2 others