HTCondor Project List Archives



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-devel] What does Condor _really_ depend on?



Is this what you are going to do with TT, always compile your platform/external agnostic code and conditionally compile for specific databases? Quill is another interesting feature of Condor because compiling with Oracle and Postgresql support means, unless Oracle&PQ are statically linked, both Oracle&PQ libraries must be installed for Condor to run, no?


matt

Erik Paulson wrote:
On Tue, Jul 31, 2007 at 11:41:27AM -0500, Matthew Farrellee wrote:
Conditionally Compiling Code:
When it comes to externals, it seems we have a number of different ways of deciding if code should be compiled. There are a number of WANT_/USE_/HAS_/HAVE_/DOES_ options (I understand many are *OLD*) in different configuration files (site.def, <platform>.cf, configure.cf.in/externals.cf.in), and little consistency as to what should be used for new code. Speaking with Derek I've been told that code should be conditionally compiled by HAVE_EXT_'s, but I've seen recent code additions (including my proposed patch below) checking for WANT_'s. Do people find that HAVE_EXT_'s are not good enough? Maybe quill is a good example of this since it can work with multiple databases (i.e. #if WANT_QUILL (above) vs #if HAVE_EXT_POSTGRESQL).
You would be fine changing most all your #if WANT_QUILL tests to #if HAVE_EXT_POSTGRESQL? Surely not, since you can use Oracle. Does Quill add anything to Condor if there is no DB back-end? Could we remove all #if WANT_QUILL tests and just have more specific #if HAVE_EXT_POSTGRESQL or #if HAVE_EXT_ORACLE, where relevant?


Quill's parser uses no database library and was at least marginally useful.

In Quill's case, we're at least part of the way to having a C++ class
that is abstract from any database. I doubt this actually works, but the
idea would be that if HAVE_EXT_POSTGRES and HAVE_EXT_ORACLE are both NO, then all of Quill still compiles, it just doesn't do anything useful. Very few places would have to be wrapped in HAVE_EXT_ORACLE/POSTGRES.

-Erik