Support
Contribute
Contact
Tracker
Navigation
Personal tools
 

EFL Windows XP

Contents

Introduction

This document provides some help to build the EFL on Windows. The current EFL that are ported are evil, eet, evas, ecore, embryo, edje, efreet and ewl. The ports are not complete, nor without bugs (especially ewl). So any help is welcome.

Currently, only MSYS/MinGW are used to compile the EFL. Later, documentation about Visual C++ or Eclipse will be added.


Installation and configuration of MSYS/MinGW

MSYS provides a set of tools to make life easier when porting programs or libraries from Unix to Windows. It includes a terminal, a shell (bash) and the autotools. Contrary to Cygwin, MSYS builds native Win32 applications or libraries. MinGW provides mainly gcc.

MSYS can be downloaded on Sourceforge, but the links will be given below.

You will need a file archiver. I like 7-zip.

Installation


The total size of the installation of MSYS/MinGW is around 110 MB. Be sure to have enough space on your hard disk.

  • Install MSYS 1.0.10. I usually install it in d:\msys\1.0, but you can use any directory that you prefer.
  • Install MinGW 5.1.3 in d:\msys\1.0\mingw. It is better to not install it in the same directory than MSYS, though there should be no problem since MSYS 1.0.11. In the installer, choose "Download and install", then "Candidate" (it will install gcc 3.4.5).

Now you should have a cyan "M" link on the Desktop. When you double-click on it, a terminal should be launched.

The autotools that are installed by MSYS DTK do not work well and can't build DLL. Newer versions of autoconf, automake and libtool are needed. Like all the programs that will be installed, you MUST NOT install them in /usr, nor in /mingw. Install them in /usr/local. The PATH already includes that directory.

We will install autoconf 2.61, automake 1.10 and libtool 1.5.24. They are sufficient and are working perfectly.

  • Go to tmp/autoconf-2.61 and run ./configure, then make install. Go to tmp/automake-1.10 and run ./configure, then make install. Go to tmp/libtool-1.5.24 and run ./configure, then make install.

Now close the terminal and relaunch it.

Configuration

As all the libraries will be installed in /usr/local, CPPFLAGS, LDFLAGS and PKG_CONFIG_PATH must be set.

Open the file /etc/profile (d:\msys\1.0\etc\profile) with your favorite editor (that is NOT Notepad or any Windows editor. use Emacs or Vi. They exist on Windows) and add:

CPPFLAGS="-I/usr/local/include"
LDFLAGS="-L/usr/local/lib"
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
CVS_RSH=ssh

for example just before

export HOME LOGNAME MSYSTEM HISTFILE

and modify that line by adding the four variables:

export HOME LOGNAME MSYSTEM HISTFILE CPPFLAGS LDFLAGS PKG_CONFIG_PATH CVS_RSH

If you don't want to do development with mingw, you might also want to set CFLAGS. Good options for MinGW are:

CFLAGS="-O3 -s -mms-bitfields -march=`uname -m`"


Build of Evil

Evil is a library that tries to implement for Windows some Unix function that do not exist on the evil Microsoft platform. In addition to Windows XP (and maybe below), it tries to support Windows CE platform with the CeGCC framework. There is not dependency. Just download it from svn (trunk/PROTO/evil) and go to the evil subdir. Then,

./autogen.sh
make
make install

You should now have evil libraries and binaries installed in /usr/local.

Build of Eet

Eet needs Evil (only on Windows, of course), zlib and libjpeg. Win32 ports of these two last libraries exist. They must be installed first. A header file will also be needed. For evil, you just need pkg-config.

Dependencies

  • From the GnuWin32 zlib page, download and unzip the binary and developper file in /usr/local (d:\msys\1.0\local).
  • From the GnuWin32 libjpeg page, download and unzip the binary, dependency and developper file in /usr/local.

Note that unlike on Unix like systems, the shared libraries files (the DLL files) are installed in the bin/ sub directory.

  • Get the file fnmatch.h and install it in /usr/local/include.

Build Eet

It is better to get Eet from svn. Open an MSYS terminal and follow the instructions on that page.

Like on Unix : go to the eet/ subdir, then

./autogen.sh
make
make install

You should now have eet installed in /usr/local.


Build of Evas

Evas has some required dependencies, as well as optional dependencies (for loaders and engines).

Dependencies

  • For the loaders, you can support PNG, GIF and TIFF files. For GIF and TIFF, just untar the TIFF binaries, dependencies and developper files and untar the GIF binaries, dependencies and developper files in /usr/local. It is more secure to install the latest libpng as there are sometimes security holes that are fixed. Get the source here and decompress it in your home directory. Then, in the libpng sub directory, just run ./configure && make && make install. It will install libpng in /usr/local.
  • The available engines are based on DirectDraw, Direct3d, SDL and OpenGL (and of course the buffer one, which is always built). For SDL, just compile the source code that you can find here. For OpenGL, the Glew library is needed. Get the sources and untar them in your HOME. Then edit Makefile and add /local to the vale of GLEW_DEST (to install Glew in /usr/local). Then make and make install. For DirectDraw and Direct3D, you will need the Microsoft SDK.

Build Evas

It is better to get Evas from svn. Open an MSYS terminal and follow the instructions on that page.

Like on Unix : go to the evas/ subdir, then

./autogen.sh --enable-software-ddraw --enable-software-16-ddraw --enable-direct3d --enable-sdl --enable-gl-glew
make
make install

You should now have evas and all its modules installed in /usr/local.


Build of Ecore

The only dependencies of Ecore for Windows would be Curl and libiconv, but I didn't succeeded in compiling libcurl yet. There are also no dll + static library yet in a single package. That dependency is only optional, though.

Dependencies

  • Libcurl: untar libcurl 7.18.2. Copy the bin/, lib/ and include/ sub directories to /usr/local and copy libcurl.pc to /usr/local/lib/pkgconfig. Do not forget to edit the prefix value in libcurl.pc.

Build Ecore

It is better to get Ecore from svn. Open an MSYS terminal and follow the instructions on that page.

Like on Unix : go to the ecore/ subdir, then

./autogen.sh --enable-ecore-sdl --enable-ecore-win32 --disable-ecore-con --with-iconv-link=-liconv
make
make install

You should now have ecore and all its modules installed in /usr/local.


Build of Embryo

No dependency for Embryo. Just download it from svn and go to the embryo subdir. Then,

./autogen.sh 
make
make install

You should now have embryo library and binaries installed in /usr/local.


Build of Edje

The dependencies of Edje are already installed (eet, evas, ecore_job, ecore_evas and embryo). So download it from svn and go to the embryo subdir. Then,

./autogen.sh 
make
make install

You should now have edje library and binaries installed in /usr/local.


Build of Efreet

to be continued