Ecore_con: fix compilation on Windows
[framework/uifw/ecore.git] / README
1 Ecore 1.2.0
2
3 ******************************************************************************
4
5  FOR ANY ISSUES PLEASE EMAIL:
6  enlightenment-devel@lists.sourceforge.net
7   
8 ******************************************************************************
9   
10 Requirements:
11 -------------
12
13 Must:
14   libc
15   eina (1.1.0 or better)
16   (For windows you also need: evil)
17   
18 Recommended:
19   libX11
20   libXext
21   libXcursor
22   libXprint
23   libXinerama
24   libXrandr
25   libXss
26   libXrender
27   libXcomposite
28   libXfixes
29   libXdamage
30   libXdpms
31   libXtest
32   GNUTLS or OpenSSL
33   CURL
34   evas (1.1.0 or better)
35
36 Optional:
37   XCB (fully working)
38   SDL
39   DirectFB
40   glib
41   tslib
42
43 Ecore is a clean and tiny event loop library with many modules to do
44 lots of convenient things for a programmer, to save time and effort.
45
46 It's small and lean, designed to work on embedded systems all the way
47 to large and powerful multi-cpu workstations. It serialises all system
48 signals, events etc. into a single event queue, that is easily
49 processed without needing to worry about concurrency. A properly
50 written, event-driven program using this kind of programming doesn't
51 need threads, nor has to worry about concurrency. It turns a program
52 into a state machine, and makes it very robust and easy to follow.
53
54 Ecore gives you other handy primitives, such as timers to tick over
55 for you and call specified functions at particular times so the
56 programmer can use this to do things, like animate, or time out on
57 connections or tasks that take too long etc.
58
59 Idle handlers are provided too, as well as calls on entering an idle
60 state (often a very good time to update the state of the program). All
61 events that enter the system are passed to specific callback functions
62 that the program sets up to handle those events. Handling them is
63 simple and other Ecore modules produce more events on the queue,
64 coming from other sources such as file descriptors etc.
65
66 Ecore also help you work in a multi threaded environment and setup a
67 thread pool that help you use the EFL on multi-cpu system. It help split
68 the part that can't be called outside of the ecore main loop from the
69 computation heavy function that could run on another CPU. Be aware that
70 Evas and most of Ecore API is not thread safe and should only be called
71 in the main loop. Eina and Eet could be used, if done carefully, in any
72 heavy function on another cpu.
73
74 Ecore also lets you have functions called when file descriptors become
75 active for reading or writing, allowing for streamlined, non-blocking
76 IO.
77
78 ------------------------------------------------------------------------------
79 COMPILING AND INSTALLING:
80
81   ./configure
82   make
83 (as root unless you are installing in your users directories):
84   make install
85       
86 ------------------------------------------------------------------------------
87 NOTE:
88
89 You can experience main loop lock (and more likely see UI lock) if libcurl
90 doesn't use an asynchronous dns resolver. Since Curl 7.21.0, you can use the
91 native dns resolver asynchronously by turning  --enable-threaded-resolver
92 on during configure time. For older version, C-Ares is the way to solve that
93 issue (see: http://c-ares.haxx.se/ ).
94
95 Also the wayland support (ecore_wayland) is considered experimental as
96 wayland itself is still unstable and liable to change core protocol.
97 If you use this api, it is possible it will break in future, until this
98 notice is removed.