--- ~~Title: Installing EFL on Windows ~~ --- # Installing EFL on Windows # [The *Enlightenment Foundation Libraries (EFL)*](/about-efl.md) power millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more. You'll 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 several ways to install EFL on your system. You will only need to use one of these. Select your chosen method using the index on the right. Many distributions offer EFL as installable packages from their default repositories. In this case you only need to use your distribution's software management system to install. However, most versions of EFL in default repositories are out of date and will not compile more recent Enlightenment applications. If this is not an issue for you, read through the ["From Distribution Repositories"](#From_Distribution_Repositories) section below. The Enlightenment developers provide a pre-packaged source of EFL. Although not bleeding edge it is up to date and considered stable for production environments. You can download, compile and install it yourself by following the instructions in ["Installing from Packaged Source"](#Installing_from_Packaged_Source). You can also download the source code for the most recent version from the Enlightenment git repositories. To get started, read the section ["Installing from Git"](#Installing_from_Git). ## From Distribution Repositories ## ### Step 1: Installing Dependencies ### You need to install the needed dependencies, which are usually not provided on Widows. The [Ewpi](https://github.com/vtorri/ewpi) project has an NSIS installer which provides them. You can download the lastest one in the [Ewpi project](https://github.com/vtorri/ewpi/releases), or in the [EFL download repository](https://download.enlightenment.org/rel/win/efl/). ### Step 2: Installing the EFL ### Once the dependencies have been installed, you can use the EFL installer either in the [Ewpi project](https://github.com/vtorri/ewpi/releases), or in the [EFL download repository](https://download.enlightenment.org/rel/win/efl/). ## Installing from Git ## You can also get the bleeding edge version of EFL by cloning it from the git repository. These steps will be done in the [MSYS2](https://www.msys2.org/) environment ### Step 1: Installing MSYS2 ### 1. Install MSYS2 : https://www.msys2.org/ (steps 1 to 4) 2. In the start menu, launch `MSYS2 64bit` --> `MSYS2 MINGW64` 3. In the terminal, launch `pacman -Syu`, press `Y` to proceed the installation. Press `Y` to close the terminal 4. In the start menu, launch again `MSYS2 64bit` --> `MSYS2 MINGW64` 5. Run `pacman -Syu base-devel autoconf automake libtool tar git wget python flex bison gettext-devel pkgconf make mingw-w64-x86_64-gperf mingw-w64-x86_64-nasm mingw-w64-x86_64-yasm mingw-w64-x86_64-cmake mingw-w64-x86_64-toolchain mingw-w64-x86_64-ninja mingw-w64-x86_64-meson mingw-w64-x86_64-nsis` 6. When aksed for the selection, just press the Enter key for the default selection 7. Press `Y` to proceed the installation This may take several minutes ### Step 2: Installing the dependencies with Ewpi ### 1. In the `MSYS2` terminal, create a directory where tp clone `Ewpi` and enter it. For example: `mkdir gitroot && cd gitroot` 2. Clone `Ewpi` repository: `git clone https://github.com/vtorri/ewpi.git` 3. Enter the `Ewpi repository`: `cd ewpi` 4. Build the `ewpi` tool: `gcc -O2 -std=c99 -o ewpi ewpi.c ewpi_map.c` 5. run `./ewpi --jobs=8` (change the number of jobs to whatever you want). 6. Launch the command again in MSYS2 if there is a problem with a file (it's an error with unix symlinks) 7. The compilation and installation of the dependencies may take a lot of time (dozens of minutes) This will install all the dependencies of the EFL in `$HOME/ewpi_64` ### Step 3: Installing the EFL ### 1. In the MSYS2 terminal, in a directory, clone the EFL directory : `git clone https://git.enlightenment.org/enlightenment/efl.git` 2. Save the following script in the `efl`directory : ```bash #! /bin/bash export EWPI_PATH=$HOME/ewpi_64 export PKG_CONFIG_PATH=$EWPI_PATH/lib/pkgconfig export CPPFLAGS=-I$EWPI_PATH/include export LDFLAGS=-L$EWPI_PATH/lib rm -rf builddir meson setup \ --prefix=$HOME/efl_64 \ --libdir=lib \ --buildtype=release \ --strip \ --default-library shared \ -Dsystemd=false \ -Dpulseaudio=false \ -Dv4l2=false \ -Dlibmount=false \ -Deeze=false \ -Dx11=false \ -Dxinput2=false \ -Devas-loaders-disabler='pdf','ps','rsvg','json' \ -Dopengl=none \ -Dpixman=true \ -Dembedded-lz4=false \ -Dfribidi=true \ -Dinput=false \ -Dbuild-examples=false \ -Dbuild-tests=false \ -Dbindings='cxx' \ -Dlua-interpreter=luajit \ -Delua=true \ builddir ninja -C builddir install ``` ### Step 4: Carrying out Post Installation Tasks ### You need to update the `PATH` environment variable in the MSYS2 terminal, or globally in Windows. With MSYS2: ```bash export PATH=$HOME/ewpi_64/bin:$HOME/efl_64/bin:$PATH ``` Once done, you can test `elementary_test` ## Troubleshooting ## If you are having problems compiling and installing EFL, you can come and seek advice on [any of our IRC channels](https://www.enlightenment.org/contact) or [post a ticket to our Gitea](https://git.enlightenment.org/issues). ## Installing on Other Operating Systems ## If you would like to install EFL on a different operating system visit the [Installing EFL](start) page.