[Pkg-ace-devel] Re: Some feedback..
Marek Brudka
mbrudka@aster.pl
Sun, 23 Jan 2005 23:50:21 +0100
Hi Bala,
Unfortunatelly, I lost your email about global.features, but I try
to answer it.
Currently we have the following dependencies for interesting features
(fixed fonts are necessary :-) ):
x11 <----- xt <----- ACE_XTReactor <----- TAO_XtResource
| |
| |-- motif <------------- test,examples
| |
| |-- athena <------------ test,examples
|
|-- fl <----- ACE_FlReactor <----- TAO_FlResource
|
gl <---|
As a result, only x11 and gl can be removed or turn on by default in
global.features, as these are
superseded by xt and fl respectively. This can work, but I'd rather
prefered explicit enumeration
of dependencies, because this directly tells packagers what is needed to
compile a library, and
give a better control on what is necessary for compilation. Moreover,
removing features x11 and gl
makes the way ACE uses external libraries a little inconsistent, hence
harder to describe.
In fact my first idea when I saw Raphael's patch was to remove all those
additional features (I even
posted a letter on this), but after a time I realized that an "explicit
features"
and control on compilation process are better for inexperienced
developer, because MPC can tell him
directly what to do to obtain a well built ACE. I agree, that probably
for ACE guru all those switches
are unnecessary, additional payload, but gure knows perfectly what is
important. A newbie usually
does not read all docs, well at the best to paragraph where make/MSVC is
invoked, issues the command, and
then wrotes a long letter about compilation problems. MPC, which
directly tells what should be
installed can faciliate developer in ACE compilation.
Certainly, the best way to configure ACE is autoconf. I think we can
hide all those dependency
details on this level, and this was my intent. Nevertheless, autoconf is
not avalaible on some
platforms, while perl necessary to use mpc is almost everywhere.
We can also propose the additional keyword for MPC, eg. *ignores*, to
tell which features are implied by
other features. We loose some of the functionality described above, but
the convenience..
For example ace_xt.mpb should look then like:
project: ace_x11 {
requires += xt
ignores += x11
verbatim(gnuace,local) {
CPPFLAGS += $(PLATFORM_XT_CPPFLAGS) $(PLATFORM_X11_CPPFLAGS)
LIBS += $(PLATFORM_XT_LIBS) $(PLATFORM_X11_LIBS)
LDFLAGS += $(PLATFORM_XT_LDFLAGS) $(PLATFORM_X11_LDFLAGS)
}
}
thus each project derived from ace_xt, should inherit x11 settings, but
would not depend on
x11 feature.
What is your opinion on that?
Thanks
Marek