|
From: Andreas L. <no...@sb...> - 2001-10-20 18:41:13
|
Hi,
I have produced a proof of concept geant file for libexml yesterday. You can find it under library/xml/impl/expat/spec/c/buiild.ant
There were several difficulties to overcome:
*) I need to compile for a special Eiffel compiler / C compiler combination. The geant compile_ise_cl approach seems a bit to less powerfull as we would need so many rules (n*m). For now I offer only a rule per c compiler (which can also be set implicitly via GOBO_CC) and take the eiffel compiler from GOBO_EIFFEL. (which a default to gcc, se)
*) The latest ISE Eiffel beta for linux uses ${ISE_EIFFEL}/studio/spec/${PLATFORM}/include, on windows there is ${ISE_EIFFEL}/bench/spec/${PLATFORM}/include. We need some way to check for the existance of a dir and set a variable depending on the result. Maybe we should come up with some autoconf stuff to overcome all our default-value problems ?
*) The expat backend seems to segfault with ISE on windows and linux, gotta look at it in detail. But the current geant file has been tested to (at least) compile on linux/gcc/se|ise and windows/cl/ise, where linux/gcc/se actually works at runtime too (;
As for Berends makelib. That looks promising as well. With a geant only file we currently have no partial compilation for example. Are there features to:
*) Define MACRONS for the C files, depending on the eiffel compiler
*) Define extra include paths
*) Define extra include paths, depending eiffel compiler
regards,
Andreas
PS: As for the bridge pattern. I totally forgot the advantage of it (thanks Berend for the detailed pro/cons mail) You cannot do what the tree_on_event parser does: Inherit from the event parser and the at runtime plug in any event based parser you want. So we'll stick with the bridge pattern.
|