The Enlightenment Foundation Libraries come with a lot of configurable options, here is a list of some of them and what impact they could have :
Eina
- --enable-on-off-threads: thread lock inside EFL is turned on and off on depend. It requires that either you explicitly call eina_threads_init/eina_threads_shutdown as required. Or you only use Ecore_Thread that does the job for you.
- --disable-magic-debug: each Eina structure has a magic number in it preventing from being miss used (that's how you get spanked when you pass the wrong object to any eina function). It's turned on by default to give some level of protection, but it cost memory and cpu. You can turn it off, if you never get spanked.
- --disable-safety-checks: every function that does not take NULL in entry currently check and display an error if you try to call it with NULL. You can remove this check by turning off that option, but it could then segfault easily if you saw that warning before.
- --enable-amalgamation: compact all source code in one file. This enable more code and space optimisation. The drawback is that it make it difficult to report error and get help from the community as the generated file depend on your configuration.
- --disable-assert: every assert macro do some check, you can turn this off in production code without worrying.
Eet
- --enable-amalgamation: same as eina option.
- --disable-old-eet-file-format: a long time ago, we did have a less efficient file format. Today all profile, edje file and configuration file should be using the new file format. You will probably never met such old file.
Evas
- --disable-assert: same as eina option.
- --enable-buffer=static: build the buffer engine statically inside the evas library. This make load time shorter and more efficient in memory. The drawback is that you will not be able to replace it once build in nor package it separatly. This is unlikely to be an issue as almost every body will use the buffer engine.
- --enable-image-loader-*=static: same idea as for --enable-buffer=static, but for loader. The drawback here is that all the dependencies of this loader will be dragged in automatically at load time. This could impact load time. You can safely statically link the eet and the jpeg loader in as they will be loaded anyway by the efl stack. You can also put in the loader that don't link to any external library like: wbmp, ico, xpm, psd, pmaps and bmp.
- --enable-static-software-generic: as it is a dependencies of the buffer engine. There is no reason not to put it inside.
- --disable-evas-magic-debug: same idea as eina --disable-magic-debug.
Ecore
- --disable-ecore-timer-dump: ecore trace all timer creation and destruction. This cost both CPU and memory, you can safely disable it.
Edje
- --enable-edje-program-cache: instead of doing a match with the automate, it will try to use the cache of previous result and do a direct string comparaison instead. It does use less CPU (in some case it will just be a pointer comparison), but increase memory usage.
- --enable-edje-calc-cache: edje manipulate state of various part, this option cache this state for as long as they are not altered. This optimisation improve CPU consuption, but increase memory usage.
