Guenter Knauf wrote:
Bill,
Then how would apu_dbd internally be aware that PGSQL is a valid choice?
dont know about apu_dbd - but apr_dbd.c has this code:

#ifndef APU_DSO_BUILD
    /* Load statically-linked drivers: */
#if APU_HAVE_MYSQL
    DRIVER_LOAD("mysql", apr_dbd_mysql_driver, pool);
#endif
#if APU_HAVE_PGSQL
    DRIVER_LOAD("pgsql", apr_dbd_pgsql_driver, pool);
#endif
#if APU_HAVE_SQLITE3
    DRIVER_LOAD("sqlite3", apr_dbd_sqlite3_driver, pool);
#endif
#if APU_HAVE_SQLITE2
    DRIVER_LOAD("sqlite2", apr_dbd_sqlite2_driver, pool);
#endif
#if APU_HAVE_ORACLE
    DRIVER_LOAD("oracle", apr_dbd_oracle_driver, pool);
#endif
#if APU_HAVE_SOME_OTHER_BACKEND
    DRIVER_LOAD("firebird", apr_dbd_other_driver, pool);
#endif
#endif /* APU_DSO_BUILD */


and previously I only defined f.e. APU_HAVE_MYSQL=1 in the makefile for the 
driver
while I did build libapr / libapr-util only with APU_DSO_BUILD defined, and that worked so far;
So what do you think about this for apu.hnw:

Nope; zero conditionals.  Whatever is built to 
[lib]aprutil-1.[a|so|sl|dyld|dll|lib|nlm]
must match whatever is installed for apu.h.  So define them zero 
unconditionally and
whenever you trigger additional libs, we toggle those flags inside the 
installed apu.h.
Apparently in DSO builds we don't (odd?)

I guess I just don't understand this initial approach to dynamic apr-util 
components
yet - it would be nice to not add case-by-case workarounds but to come up with 
the
schema that lets us handle all of these bits dynamically.  I'm betting we will 
need
to do apr 2.0 before we can realize such a vision.

Yes - it probably worked for you - our concern is with downstream consumers.  
We don't
build apu.h (strictly) for our own benefit, it's public.

I first learned to hate this garbage in openssl (and rsa sslc) - which always 
does
the right thing when run through [perl] Configure but can be easily built 
without
fixing those, leading to all sorts of problems with downstream builds.

You cannot require the downstream user to provide apu defines.  Well, we 
actually
did have several historic flags (AP[RU]_DECLARE_STATIC when binding to a static
apr.lib on platforms that have special conf-magic to seperate static bindings
from dynamic bindings).  But I don't know that APU_DSO_BUILD == 
!APU_DECLARE_STATIC,
and I don't know in fact that the user is required to define APU_DSO_BUILD.

Bill

Reply via email to