
1. REQUIREMENTS
===============

 * Python 2.6 or higher, 3.2 or higher (http://www.python.org/)
   - Tested with Python 3.8

 * Cython 0.21 or higher (http://cython.org/)
   - Tested with Cython 0.29.16

 * EFL must be the same minor version of the bindings,
   es. python-efl 1.24 need efl 1.24

 * To build the DOCS you will also need:
   - python-sphinx
   - [optional] graphviz

 * At least 4GB of free RAM to build


2. BUILDING PYTHON-EFL
======================

 Once EFL is built and installed in your desired destination, proceed with
 building the wrapper using:

   python setup.py build

 IMPORTANT NOTE:
   To build the bindings you will need at least 4GB of free ram!
   Otherwise the build process will badly fail.


 Distribution tarballs include pre-generated C source files, so
 cython usage is disabled by default, while is enabled in development git
 versions. You can always force the usage of cython using two environment
 variables: DISABLE_CYTHON or ENABLE_CYTHON


 * FORCE C SOURCES FOR BUILD

   env DISABLE_CYTHON=1 python setup.py build


 * FORCE THE USAGE OF CYTHON

   env ENABLE_CYTHON=1 python setup.py build



3. CLEANUP
==========

 * For cleaning up:

   python setup.py clean --all

 * To also remove all the C/HTML files generated by Cython:

   python setup.py clean_generated_files

   WARNING: you will need cython to regenerate the C files, do not use this
            in distribution tarballs, unless you know what are you doing.



4. INSTALLATION
===============

 * For system-wide installation (needs administrator privileges):

    (sudo) python setup.py install

 * For user installation:

    python setup.py install --user

 * To install for python3:

    (sudo) python3 setup.py install (also cython need to be installed with py3)

 * Install with a custom prefix:

    (sudo) python setup.py install --prefix=/MY_PREFIX

 * You can also uninstall using:

    (sudo) python setup.py uninstall


5. DOCUMENTATION
================

 To build the docs for the bindings you need to have Sphinx installed, for
 (optional) graphs you need Graphviz, for (optional) Youtube demonstration
 videos you need the YouTube module from sphinx contrib repository.
 packages: python-sphinx, graphviz, python-pygraphviz, libgv-python

 To build the docs just run:

    python setup.py build_doc

 You will find the generated html docs under the folder:
 build/sphinx/html

 Note: you must build the bindings before building the docs, or you will end
       up with empty documentation.


6. TESTS and EXAMPLES
=====================

 The tests/ folder contains all the unit tests available, you can run individual
 tests or use the 00_run_all_tests.py in each folder or even in the tests/ base
 dir to run all the tests at once.

 Python 2.7 / 3.2 or greater is required for running the tests.

 The scripts in examples/ folder must be run by the user as they require
 user interaction.

