On Thu, Jul 30, 2009 at 10:10:53AM +0100, David Fernandez wrote:
May be I'm wrong, but I think that the macro CYG_FUN_LWIP_IP_FORWARD
is not only defined, but defined as 1 if the option is enabled. May be
that what you want is to use the macro directly instead of the
preprocessor operator applied to it.
As fae as I remember, that depends on CDL flavor type. The value can be
either not defined at all, or it can be defined as
#define CYG_FOO 1
or it can be defined as
#define CYG_FOO 1
#define CYG_FOO_1
That is simpler than defining another macro, and if the option is
disabled, the macro would be defined, but its value would be 0.
Sure. But goal is do not tweak the ported sources, so there are the same
odd wrappers.
You might want to check it this way though, in case the lwip is
included, but those CDL options are not active for some reason...
which may be impossible, but here you are.
#ifndef CYG_FUN_LWIP_IP_FORWARD
#define IP_FORWARD 0
#else
#define IP_FORWARD CYG_FUN_LWIP_IP_FORWARD
#endif
It's resonable. And I would prefer yet another way (CDL way):
cdl_package CYGPKG_BAR {
...
cdl_option CYGOPT_HAVE_FOO {
display "Foo feature"
flavor bool
default_value 1
# Original bar sources want it:
define HAVE_FOO
description "
Enable this option to use foo feature."
}
...
}
Then in <pkgconf/bar.h>
will apear or won't
#define CYGOPT_HAVE_FOO 1
#define HAVE_FOO 1
In our case we would include at the end of lwipopts.h an inclusion
#ifdef __ECOS__
# include <pkgconf/net_lwip.h>
#endif
and it will be contain, e.g.
#define CYGFUN_IP_FORWARD 1
#define IP_FORWARD 1
or nothing. Etc.
May be I wrong too. So, it seems for me it's a time to re-read CDL guide
:-)