The Goanna Log4E library and examples use the GOBO geant and gexace tools to perform Ace file generation and to control the compilation process. You will need to have a recent CVS version of GOBO on your system to build Goanna.

All scripts rely on the enviornment variable LOG4E which should be set to the root directory of the Goanna Log4E installation.

To initialise the library, build all examples and all tools, you can run geant on the build.eant file located in the root directory of the installation.

The build rules provided by the geant files include:

For example, to build the logvision example using ISE Eiffel on Unix, run:

cd $LOG4E/examples/vision
set GOBO_EIFFEL=ise
geant compile

This will compile the example using ISE Eiffel in finalization mode. An executable will be generated in the current directory. If you need to compile in debug mode, then use the build rule 'compile_debug' instead. To use the SmallEiffel compiler set the GOBO_EIFFEL variable to 'se'. You can also force the use of a particular compiler by using the build rules 'compile_ise', 'compile_se', 'compile_debug_ise' and 'compile_debug_se'.

Build rules are also provided to compile with the HACT and VisualEiffel compilers, however no testing has been performed using these compilers. If you have any success with these compilers please let Glenn know.

If you run geant without any arguments it will display the build rules available in the 'build.eant' file found in the current directory.

Note, some of the library clusters and examples will not compile under SmallEiffel. They will be ported to SmallEiffel when time permits and compiler support allows. The following table shows the progress of the porting effort.

Cluster/Application ISE Eiffel SmallEiffel
library Yes Yes
library/appenders Yes Yes
library/appenders/net Yes No (multithreading)
library/appenders/nt Yes No (external)
library/config Yes Yes
library/filters Yes Yes
library/helpers Yes Yes
library/layouts Yes Yes
library/layouts/pattern Yes Yes
examples/config/manual Yes Yes
examples/config/shared Yes Yes
examples/config/xml Yes Yes
examples/nteventlog Yes No (external)
examples/servlet Yes Yes (Goanna required)
examples/socket/client Yes No (EiffelNet)
examples/socket/server Yes No (EiffelNet)
examples/vision Yes No (Vision2)