|
|
|
NavigationPersonal tools |
EFL Windows XP
[edit] IntroductionThis 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. [edit] Installation and configuration of MSYS/MinGWMSYS 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. [edit] InstallationThe total size of the installation of MSYS/MinGW is around 110 MB. Be sure to have enough space on your hard disk.
(User's note: actually the mingw installer is not working for me, I don't know, why. Instead I've downloaded the current version of CodeBlocks from sourceforge.net (the version with mingw). CodeBlocks has mingw in it's directory. I just copied that directory to D:\msys\1.0\mingw. This will also hav gcc 3.4.5. Hope it helped.) Now you should have a cyan "M" link on the Desktop. When you double-click on it, a terminal should be launched. Now it is useful if you know how to use the clipboard in the msys terminal. If you select a text with your mouse in the msys terminal, it is immediately copied to the clipboard. If you want to paste from clipboard, use the Shift-Insert keyboard combination. 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.
(User's note: my way of downloading these files is: in the browser, I copy the link of one of the files, e.g. the autoconf one, to the clipboard. Then in msys terminal, I type "wget " and hit shift-insert to paste. So I get something like "wget http://something.com/dir/file.zip". I hit enter. This downloads the file to the current directory.) (User's note2: now how to untar. Untar means unzip. :) Basically they mean you should extract the archives. Now you will face three types of archives. First is the one with the extension .tar.gz. The other one is .tar. The third is .bz2. To extract them right in the terminal, you should use: tar.gz: tar -xzf archive.tar.gz Please note that tar.gz is the as tgz . tar: tar -xf archive.tar bz2: bzip2 -d archive.bz2 Note that it is possible that you will extract a tar from a bz2. You have to do the tar stuff for that, too.) Edit: OK, actually you'll also face zip archives. Just do "unzip archive.zip" on them.
Now close the terminal and relaunch it. [edit] ConfigurationAs all the libraries will be installed in /usr/local, CPPFLAGS, LDFLAGS and PKG_CONFIG_PATH must be set. You have to edit the file /etc/profile (d:\msys\1.0\etc\profile). Do NOT use Notepad or common Windows editors. If you know how, use Emacs or Vi (They exist on Windows.) If you don't, use "Notepad++". The reason behind this is that msys uses the Unix-style Newline character, not Windows-style, and normal Windows editors can't handle this. If you don't understand this just use Notepad++ for editing D:\msys\1.0\etc\profile. (You can download it from http://notepad-plus.sourceforge.net). So open /etc/profile 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`" If your msys terminal has very small fonts, and you are like me and you want bigger fonts, open d:\msys\1.0\msys.bat in Notepad++ or Vim or Emacs. (Do NOT use simple Notepad or any common windows file editor.) Search for "-fn". Most likely you will see "-fn Courier-12". Change that to, for example, "-fn Courier-16". This will do it. If you choose another font family, please, keep in mind that msys uses rxvt for terminal by default, and this means that you'll need an ASCII font. (NOT any normal windows font will do!) Also, don't forget to restart your terminal. [edit] Build of EvilEvil 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 supports Windows CE platform with the CeGCC framework. There is not dependency. Just download it from svn (trunk/PROTO/evil). To do this, type: svn co http://svn.enlightenment.org/svn/e/trunk/PROTO/evil Now go to the evil subdir. Then, ./autogen.sh make make install You should now have evil libraries and binaries installed in /usr/local. [edit] Build of EinaEina is a library that implement data types in an very optimized way. It includes also a small set of tools that can be used in most of the EFL. It depends on Evil (on Windows). For Evil, you just need pkg-config. [edit] DependenciesUntar glib 2.14.6, pkg-config 0.23, gettext 0.14.5, libiconv 1.9.1 in /usr/local. Note that unlike on Unix like systems, the "shared library" files (the DLL files) are installed in the bin/ sub directory. [edit] Build EinaDownload it from svn (trunk/eina) and go to the eina subdir. Then, ./autogen.sh make make install You should now have eina libraries and binaries installed in /usr/local. [edit] Build of EetEet needs Evil (only on Windows, of course), Eina, zlib and libjpeg. Win32 ports of these two last libraries exist. They must be installed first. A header file will also be needed. [edit] Dependencies
[edit] Build EetIt is better to get Eet from svn. As usual, you should do this in msys: svn co http://svn.enlightenment.org/svn/e/trunk/eet Like on Unix : go to the eet/ subdir, then ./autogen.sh make make install You should now have eet installed in /usr/local. [edit] Build of EvasEvas has some required dependencies, as well as optional dependencies (for loaders and engines). [edit] Dependencies
(User's note: OK, directx sdk is simply 532 megabyte these days. ddraw.h is less then 100 kilobyte I suppose. Downloading the whole sdk seemed ridiclious for me (i have 50 kilobyte/sec max., if I am fortunate; not to speak about the amount of space on my hard drive for this stupid sdk thingy), so I just grabbed the directx7 headers from mplayerhq: http://www.mplayerhq.hu/MPlayer/contrib/win32/dx7headers.tgz I hope it works! :)) [edit] Build EvasIt is better to get Evas from svn. Open an MSYS terminal. Your friend again is svn co http://svn.enlightenment.org/svn/e/trunk/evasOr you could just follow the instructions on that page to get the same result. Like on Unix : go to the evas/ subdir, then: With all dependencies installed (MS SDK, SDL and GLEW engines): ./autogen.sh --enable-software-ddraw --enable-software-16-ddraw --enable-direct3d --enable-sdl --enable-gl-glew make make install Without MS SDK (only SDL and GLEW engines): ./autogen.sh --disable-software-x11 --disable-xrender-x11 --disable-software-16-wince --enable-sdl --enable-gl-glew make make install You should now have evas and its built modules installed in /usr/local. [edit] Build of EcoreThe only dependencies of Ecore for Windows are Curl and libiconv. [edit] Dependencies
[edit] Build EcoreIt is better to get Ecore from svn. I guess you've already figured out for now how to do this. If not, search backward for examples. Or you could always just 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. [edit] Build of EmbryoNo 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.
[edit] Build of EdjeThe dependencies of Edje are already installed (eina, eet, evas, ecore_job, ecore_evas and embryo). So download it from svn and go to the edje subdir. Then, ./autogen.sh make make install You should now have edje library and binaries installed in /usr/local. [edit] Build of Efreetto be continued |