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) |