#
# This file gives installation instructions on how to get started with cybop.
#
# http://www.cybop.net
# - Cybernetics Oriented Programming -
#
# @version $RCSfile: INSTALL,v $ $Revision: 1.9 $ $Date: 2009-02-07 00:39:21 $ $Author: christian $
# @author Christian Heller <christian.heller@tuxtax.de>
#


CYBOP Installation
__________________

- Change into some directory, e.g.:

    cd /home/cybop

- Extract the cybop-x.x.x.tar.gz or cybop-x.x.x.tar.bz2 file, respectively, e.g.:

    tar -xvvzf cybop-0.9.0.tar.gz


CYBOI Compilation
_________________

- Change into cybop's root directory, e.g.:

    cd /home/cybop

- Execute the configure file with:

    ./configure

- Clean the object files of any previous compilation (this is optional):

    make clean

- Execute the make file with:

    make

Note, that the configure process and make system are prepared to be used on
the platforms: GNU/Linux, Windows (mingw environment), Linux 64bits.
The configure script forces the 32 bits emulation mode by using special options
of gcc and other binutils. Native 32 bits Linux and Windows was not tested, however.


CYBOL Application Execution
___________________________

- Change into the base directory of your cybol applications, e.g.:

    cd /home/cybop/examples

- Execute cyboi and give the "run.cybol" file of an application as argument, e.g.:

    /home/cybop/src/controller/cyboi --knowledge exit/run.cybol
    /home/cybop/src/controller/cyboi --knowledge signal/run.cybol
    /home/cybop/src/controller/cyboi --knowledge exit_text_file/run.cybol
    /home/cybop/src/controller/cyboi --knowledge exit_cybol_file/run.cybol
    /home/cybop/src/controller/cyboi --knowledge shell_output/run.cybol
    /home/cybop/src/controller/cyboi --knowledge shell_command_execution/run.cybol
    /home/cybop/src/controller/cyboi --knowledge program_execution/run.cybol
    /home/cybop/src/controller/cyboi --knowledge helloworld/run.cybol
    /home/cybop/src/controller/cyboi --knowledge ui_control/run.cybol
    /home/cybop/src/controller/cyboi --knowledge http_communication/run.cybol

To make the client-server communication work in the "http_communication" example,
type the following URL into a web browser after having started the application:
http://localhost:1971/?action=index

You may also want to have a look at the Res Medicinae project, where more CYBOL
application modules for the healthcare domain will be provided over the coming years:
http://www.resmedicinae.org


CYBOI Development
_________________

If new files are added to the "src" or "src/controller" directories, one needs to
add their name in the EXTRA_DIST variable at the top of the respective Makefile.am
file and run autogen.sh.
In the other directories, it isn't necessary because they are completely and recursively
included during the packaging (see the EXTRA_DIST variable in Makefile.am files).

If any of the environment flags are changed in the source code, e.g.:
"LINUX_OPERATING_SYSTEM" to "GNU_LINUX_OPERATING_SYSTEM",
the Makefile.am file in the src/controller/ directory needs to be
adapted and ./autogen.sh run afterwards to update the autotools!
The "build-aux" directory and other files more are generated by autogen.sh.

The target "make clean" may always be executed before the actual "make",
but is this not necessary, since make tests the modification date of each
source file and that way knows if it has to recompile the executable.

Another point to use make targets for is the generation of the documentation.


CYBOP Distribution
__________________

- Modify the CYBOP version number in the file configure.ac, e.g.:

    AC_INIT([cybop], [0.9.0], [christian.heller@tuxtax.de])

- Change into cybop's root directory, e.g.:

    cd /home/cybop

- Run the autogen.sh script (requires autoreconf to be installed) to update all autotools files:

    ./autogen.sh

- Execute the configure file with:

    ./configure

- Produce the archives (cybop-x.x.x.tar.gz and cybop-x.x.x.tar.bz2) to be distributed:

    make dist
