GNU EDMA 0.7.1
CORIE Module

NOTE: My English is very poor, so if you want to correct any fault in this document and send me back such a correction I'll be very grateful. Thanks in advance

About this release
------------------------
This is the main core (aka CORIE) of the GNU EDMA project release 0.7.1. This is a mostly working development release, so you can find bugs and features not completely implemented. For any question, suggestion, question, whatever, you can use the mailing list in the savannah's EDMA page.

http://savannah.gnu.org/edma

or contact me directly at: dmartin@tsc.uvigo.es

What's included?
----------------
This is what you can find in this release

* classes: This directory contains the minimal classes distributed with GNU EDMA CORIE
* examples: Some simple examples about how to use GNU EDMA
* include: the .h files you'll need to build your own GNU EDMA classes and apps
* packages: extra packages including:
	- graphical_tools: GNOME IDF WIzard and Class Browser. (Now, distributed as separated packages) 
* src: the GNU EDMA core itself
* tests: some simple test about how to use GNU EDMA features
* tools: simple console based tools to manage GNU EDMA, including
	- ClassInstaller: Allows you to add new classes to GNU EDMA registry
		from a .ines file
	- cleanup: Allows you to clean up shared memory struct when any GNU EDMA
		applications crashes in an unexpected way. This is a development release
	- EFileGen: console based code generator. Uses EDMA_BUILDER classes to make
		code skeletons for classes and applications, from .idf files

What's GNU EDMA?
----------------
GNU EDMA is an Object Oriented and Component Based environment to application development. What makes GNU EDMA different from other systems is that GNU EDMA does most of the processing dynamically, that is, at run-time. We call this, generically, Loosely Coupled Object Oriented Systems (LOOCOS)

So, you can establish inheritance relationships among objects or even, you can dynamically override virtual methods, while the applications is running. Working this way you can build more real_life-like models and simplify a lot of common operations which, in most cases, needs complex patterns. Design patterns like Factories, Facades, Proxies, etc... are implicit in the GNU EDMA working way.

In addition to all this, the programming interface provided by GNU EDMA is mostly based on strings so, concepts like automation or interactive managing are directly supported by the system in a very easy way.

What's CORIE?
-------------
CORIE is the GNU EDMA core, that is, the library that provides the main functionalities of the system, as well as, a basic set of classes/components to begin working with GNU EDMA.

The classes library is still barely populated, but we are working to add the basic components needed by most applications.

Installing GNU EDMA
-------------------
Installation process has been dramatically changes for this release. Now, GNU EDMA uses autotools so compilation and instalation can be done in the usual way:
	
	# ./configure
	# make
	# make install

GNU EDMA Classes get installed in /usr/local/lib, so you must allow applications to load classes from this location. For doing such a thing you have two choices:

	1. Update LD_LIBRARY_PATH environment variable to include /usr/local/lib
	2. Add /usr/local/lib to your /etc/ld.so.conf file and run ldconfig

With this release we provide a new version of ines_installer which works this way. At the moment it is in an early stage and only works right with one class-one configure packages.

The installation process still is been revised so, this release installs and registers all the classes. 

If you want to register new classes just compile and install it in the usual way (configure, make, make install) and then use ines_iclass_resgister against .ines files for each class you want available for your GNU EDMA apps.

You must be root to run "make install" and ines_class_register.

Currently there is no uninstall tool, so you must do this manually:

	1. Delete libCLASS.so and related links from /usr/local/lib
	2. Remove class entry from GNU EDMA registry (/usr/local/etc). Don't forget to update field nClasses in edma32.cfg

If you have any problem installing GNU EDMA, be free to contact me directly or through the savannah mailing lists.

