README.ecore 3.3 KB
Newer Older
1
Ecore 1.7.99
Carsten Haitzler's avatar
Carsten Haitzler committed
2

3 4 5 6 7 8 9
******************************************************************************

 FOR ANY ISSUES PLEASE EMAIL:
 enlightenment-devel@lists.sourceforge.net
  
******************************************************************************
  
10 11 12 13
Requirements:
-------------

Must:
14
  libc
15
  eina (1.1.0 or better)
16 17
  (For windows you also need: evil)
  
18
Recommended:
19 20 21 22 23 24 25 26 27 28 29 30 31
  libX11
  libXext
  libXcursor
  libXprint
  libXinerama
  libXrandr
  libXss
  libXrender
  libXcomposite
  libXfixes
  libXdamage
  libXdpms
  libXtest
32
  GNUTLS or OpenSSL
33
  CURL
34
  evas (1.1.0 or better)
35 36

Optional:
37
  XCB (fully working)
38 39
  SDL
  DirectFB
40 41
  glib
  tslib
42

43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
Ecore is a clean and tiny event loop library with many modules to do
lots of convenient things for a programmer, to save time and effort.

It's small and lean, designed to work on embedded systems all the way
to large and powerful multi-cpu workstations. It serialises all system
signals, events etc. into a single event queue, that is easily
processed without needing to worry about concurrency. A properly
written, event-driven program using this kind of programming doesn't
need threads, nor has to worry about concurrency. It turns a program
into a state machine, and makes it very robust and easy to follow.

Ecore gives you other handy primitives, such as timers to tick over
for you and call specified functions at particular times so the
programmer can use this to do things, like animate, or time out on
connections or tasks that take too long etc.

Idle handlers are provided too, as well as calls on entering an idle
state (often a very good time to update the state of the program). All
events that enter the system are passed to specific callback functions
that the program sets up to handle those events. Handling them is
simple and other Ecore modules produce more events on the queue,
coming from other sources such as file descriptors etc.

66 67 68 69 70 71 72 73
Ecore also help you work in a multi threaded environment and setup a
thread pool that help you use the EFL on multi-cpu system. It help split
the part that can't be called outside of the ecore main loop from the
computation heavy function that could run on another CPU. Be aware that
Evas and most of Ecore API is not thread safe and should only be called
in the main loop. Eina and Eet could be used, if done carefully, in any
heavy function on another cpu.

74 75 76
Ecore also lets you have functions called when file descriptors become
active for reading or writing, allowing for streamlined, non-blocking
IO.
Carsten Haitzler's avatar
Carsten Haitzler committed
77 78 79 80 81 82

------------------------------------------------------------------------------
COMPILING AND INSTALLING:

  ./configure
  make
Carsten Haitzler's avatar
Carsten Haitzler committed
83
(as root unless you are installing in your users directories):
Carsten Haitzler's avatar
Carsten Haitzler committed
84 85
  make install
      
86 87 88 89 90 91 92 93
------------------------------------------------------------------------------
NOTE:

You can experience main loop lock (and more likely see UI lock) if libcurl
doesn't use an asynchronous dns resolver. Since Curl 7.21.0, you can use the
native dns resolver asynchronously by turning  --enable-threaded-resolver
on during configure time. For older version, C-Ares is the way to solve that
issue (see: http://c-ares.haxx.se/ ).
94

Jihoon Kim's avatar
Jihoon Kim committed
95
Also the wayland support (ecore_wayland) is considered experimental as
96 97 98
wayland itself is still unstable and liable to change core protocol.
If you use this api, it is possible it will break in future, until this
notice is removed.