We place all of our releases here:
Our latest source code releases are (Elementary, Evas Generic Loaders and Emotion Generic Players have been merged into the EFL since version 1.18):
A more comprehensive list of efl applications and source repositories can be found in Gitea.
We provide original source code “tarballs” as the canonical release of what we make. It is left up to distributions and individuals to make specific packages to their operating system. See your distribution packages for details.
When compiling from source, build in this order:
Then any further applications or tools (in any order now) such as:
You will want to ensure the default prefix
/usr/local is available to build tools. If you know what you are doing, you can change the prefix, but this here shall assume you do not, and the above prefix is used. These environment variables are used during build, so you may want to make them more permanent.
export PATH=/usr/local/bin:"$PATH" export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:"$PKG_CONFIG_PATH" export LD_LIBRARY_PATH=/usr/local/lib:"$LD_LIBRARY_PATH"
Below choose one of the following
CFLAGS to use. To ensure your code is compiled with decent optimzations you should also set this up in your environment:
export CFLAGS="-O3 -ffast-math -march=native"
Note that if you wish to compile for older architectures than your current system, please look up the compiler documentation and replace
-march=native with something appropriate.
If you wish decently optimized code that is still debuggable (but that optimizations may still make a little hard to debug) you can do:
export CFLAGS="-O2 -ffast-math -march=native -g -ggdb3"
If you want a really debuggable piece of code where optimizations mess with little to nothing at all use:
export CFLAGS="-O -g -ffast-math -march=native -ggdb3"
LD_LIBRARY_PATH environment variable is set. You can ensure the system always supports
/usr/local/lib by editing
/etc/ld.so.conf or adding a file to
/etc/ld.so.conf.d and simply have a line in either file that says:
And remember to run
sudo ldconfig tool every time you install a library to ensure caches are updated.
For every tarball you download untar it with
tar zxf file.tar.gz and then go into the directory created. Please see the README file in this directory for each project for information on dependencies, configuration etc. Just remember that all our release tarballs come with configure set up so to compile you just need to do this in the source directory:
./configure make sudo make install sudo ldconfig # needed on Linux to update linker library database
or if meson based (has a meson.build file):
meson build ninja -C build sudo ninja -C build install sudo ldconfig # needed on Linux to update linker library database
configure fails, you are likely missing a dependency - provide it. It should tell you what that dependency is. NOTE that you can provide arguments to
configure such as
–prefix=/opt/e or similar. Similarly for meson. See the INSTALL file for more information.
Our source code is developed collaboratively in a pretty typical open source manner. Our master branches in git are where all new development goes into as it happens, thus they are technically “unstable”. We try and keep master working and usable daily, as developers generally are living off master themselves, so bugs affect developers directly and immediately. Sometimes issues happen, but they tend to get fixed rapidly.
If you want to track the latest and greatest, please see our git repositories below and follow the Get Source guide on compiling from upstream source. If you have issues please refer to our Developers page to get in touch with us.
All our git repositories are listed on: