[Xapian-discuss] Failing to build PHP Bindings OSX 10.6

Olly Betts olly at survex.com
Wed Dec 22 04:20:22 GMT 2010


On Thu, Dec 16, 2010 at 10:08:36PM +0000, Olly Betts wrote:
> On Thu, Dec 16, 2010 at 09:54:04PM +0000, James Aylett wrote:
> > Olly & Richard, could configure could check this situation by importing
> > xapian/version.h and checking XAPIAN_VERSION, major_version or something?
> > configure will check the version of xapian-config, but that's not quite the
> > same if your include paths get contaminated?
> 
> I don't think configure easily can - this issue only emerges in the Makefile
> when the full compile command line is assembled, so we'd have to duplicate
> the information on how that is assembled in configure, which seems rather
> brittle.
> 
> I think you'd have to put the information from xapian-config --version in
> to config.h, then put some preprocessor magic into the code which gets
> compiled to complain if that doesn't match what you get from <xapian.h>.

More thoughts on this...

What you actually want to verify is that the headers you compile against
(and ideally the library that you link against too) are those which
xapian-config told you about.

Checking the version doesn't actually achieve that - it has both false
positives and false negatives:

* You can install the same version of Xapian in two different locations
  (this can matter even for release builds since libtool will include
  the linked to path as an rpath if it isn't in the default dynamic
  linker search path, so you can get a binary which has different
  behaviour if you remove or upgrade one of the installation depending
  which gets linked to).

* You might configure your package and then upgrade the Xapian version
  which it was configured against, and then a version check would then
  fail, which is unhelpful.

I think what you really want to be checking is that the paths match,
which I don't see a good way to do.

Cheers,
    Olly



More information about the Xapian-discuss mailing list