Installing EFL on macOS

NOTE: The Enlightenment (Desktop Manager) is not supported on macOS and there are no plans to do so in the near future. Please contact us if you'd like to help with this.

The Enlightenment Foundation Libraries (EFL) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You will need EFL if you want to develop apps for Enlightenment and for any of the devices that use Enlightenment for its visual interface.

This tutorial describes two ways of installing EFL on your system. You will only need one so use the index on the right to navigate to the most useful method for you.

The Enlightenment Foundation's projects mostly targets Linux platforms therefore not everything work on macOS works the first time. This is due to the specific requirements of macOS (kernel+userland) and the fact that there are very few 'Englightened' macOS users.

This document explains how to install EFL using either the Homebrew package manager or by building from source via git.

Whichever installation method you use, read through the section on Compiling EFL Applications to find out more about building apps.

Install EFL with Homebrew

Homebrew is an unofficial package manager for macOS which you can install a number of programs that aren't available in macOS by default.

To install Homebrew open Terminal in macOS and run:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

The script will prompt you through the install process. Feel free to visit the Homebrew website for more information on fine tuning the installation.

Homebrew should run an update prior to installing any new software but double check this by running:

brew update

Next install EFL with:

brew install efl

The distributed version of EFL is 1.20.6.

Installing from Git

Installing EFL manually is broadly a three step process. Firstly you need to have the macOS Command Line Tools (CLT) installed on your system, then install the necessary software dependencies. You can then configure and compile the EFL source code.

Step 1: Install Command Line Tools

If you've already installed XCode via the Mac App Store, the command line tools are already embedded in the Integrated Development Environment (IDE). Failing this, install the CLT by opening Terminal then run:

xcode-select --install

Step 2: Installing Dependencies

The easiest way to install the necessary software dependencies is to use a package manager like Homebrew. If you haven't already installed it do so now by opening Terminal and running:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

The script will prompt you through the install process. Feel free to visit the Homebrew website for more information on fine tuning the installation.

Homebrew should run an update prior to installing any new software but double check this by running:

brew update

Next install the dependencies with:

brew install meson ninja libtool gettext check pkg-config luajit jpeg freetype fribidi fontconfig giflib libtiff glib dbus libsndfile bullet libspectre libraw librsvg poppler gstreamer gst-plugins-good pulseaudio

If you're using a fresh install of macOS, create a 'LaunchAgents' folder for your own account if it doesn't exist already:

mkdir -p ~/Library/LaunchAgents

Next use launchctl to automatically start and stop dbus:

ln -sfv /usr/local/opt/dbus/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist

If you want to use gettext you'll also need ''autopoint'' to your ''$PATH'' your in '~/.profile' file or similar. If the file doesn't exist user nano to create it, for instance:

cd ~/
nano .profile
export PATH="$(brew --prefix gettext)/bin:$PATH"

Step 3: Install and configure SSL

Since El Capitan, Apple no longer distributes OpenSSL headers. Fortunately you can install OpenSSL manually via Homebrew:

brew install openssl

Modify PKG_CONFIG_PATH by editing '~/.bashrc' or '~/.zshrc' or similar by setting:

PKG_CONFIG_PATH=/usr/local/opt/openssl@1.1/lib/pkgconfig

Step 4: Modify linker flags

NOTE: This step is only necessary if you wish to build macOS App Bundles (.app).

You can do this using 'osx-packager', which is a python package for generating App Bundles and/or .dmg files for easy distribution. To download, open Terminal and run:

git clone https://git.enlightenment.org/devs/jayji/osx-packager.git

For osx-packager to work properly, you must provide custom linker flags:

export LDFLAGS="-Wl,-headerpad_max_install_names ${LDFLAGS}"

Step 5: Configuring the Software

Now that you've installed all the required packages, you can download EFL itself directly from the git repository. Open Terminal and run:

git clone https://git.enlightenment.org/enlightenment/efl.git

This will create a a directory called efl/. Use cd to switch to the new directory, then compile EFL:

meson -Dsystemd=false -Dv4l2=false -Davahi=false -Deeze=false -Dx11=false -Dopengl=full -Dcocoa=true -Dnls=false -Demotion-loaders-disabler=gstreamer1,libvlc,xine -Decore-imf-loaders-disabler=scim,ibus build
 
ninja -C build -j $(nproc)

Finally, install EFL with:

sudo ninja -C build install

Troubleshooting

If you are having problems compiling with installing EFL, you can also find help on any of our IRC channels or post a ticket to our Phabricator.

Installing on Other Operating Systems

If you would like to install EFL on a different operating system visit the Installing EFL page.