Xapian Developers,
[I initially thought to install xapian on SFU (Interix 3.5) on MS XP but could
not compile libuuid]
[getopt.h, inttypes.h, and stdint.h taken from SUA (for Vista) and installed in
SFU (Interix 3.5)]
If someone is inclined to write a modified libuuid and label it for use with
Interix <version(s)> to
satisfy the dependency for an xapian <version(s)> install on Interix
<version(s)>, it might be of
interest, though since Windows 8.1 MS has discontinued enabling for SUA
(Interix).
Perl fails some tests from 'make test' in Interix 3.5.
Tcl configure scripts cannot figure out how to compile other than static
libraries on Interix 3.5.
xapian bindings for tcl (8.5.5 installed from source with MinGW/MSYS as below)
do not seem to be able to use tcl's .dll
The argument --cxxflags returning empty when xapian was installed as
[MSYS-1.0.11.exe] /usr, from
g++ `xapian-config --cxxflags` quickstartindex.cc `xapian-config --libs` -o
quickstartindex, caused
me to rethink the install prefix, so I uninstalled it and reinstalled as
--prefix=/c/xapian.
I created a log of 'make check' which is
attached to this email as make.check.
Some additional comments below.
Best Regards,
Eric Lindblad
- - -
Microsoft Windows XP [version 5.1.2600] Home Edition 32 bit
gcc (version 4.5.2) from HaskellPlatform-2013.2.0.0-setup.exe
zlib (version 1.2.5) from gtk+-bundle_2.24.10-20120208_win32.zip
MSYS-1.0.11.exe
Perl v5.8.8 MSWin32-x86-multi-thread [built with Borland C++ Compiler 5.5 and
dmake].
Danish ...(Pipen er blevet afsluttet.)
English ..(The pipe has been closed.)
$ export PATH=${PATH}:/c/programmer/borland/bcc55/bin:\> /c/programmer/perl/5.8.8/bin/mswin32-x86-multi-thread
$ PKGNAM=xapian-core
$ VERSION=${VERSION:-1.2.21}
$ env CPPFLAGS=-I/c/programmer/gtk/include \> LDFLAGS=-L/c/programmer/gtk/lib ./configure \
> --prefix=/c/xapian --sysconfdir=/etc --localstatedir=/var \
> --mandir=/c/xapian/man --docdir=/c/xapian/doc/$PKGNAM-$VERSION \
> --disable-static CC=/c/programmer/haskell/mingw/bin/gcc
$
$ CWD=$(pwd)
$ make
$ make check >$CWD/logs/make.check 2>&1
$ make install
$
$ export PATH=${PATH}:/c/xapian/bin
$
$ g++ `xapian-config --cxxflags` quickstartindex.cc `xapian-config --libs` -o
quickstartindex
quickstartindex.cc: In function 'int main(int, char**)':
quickstartindex.cc:34:15: error: 'exit' was not declared in this scope
$
I modified the file and compiled it.
$ g++ `xapian-config --cxxflags` quickstartindex.cc `xapian-config --libs` -o
quickstartindex
Info: resolving std::cout by linking to __imp___ZSt4cout (auto-import)
Info: resolving vtable for __cxxabiv1::__class_type_info by linking to
__imp___ZTVN10__cxxabiv117__class_type_infoE (auto-import)
c:/programmer/haskell/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
warning: auto-importing has been activated without --enable-auto-import
specified on the command line.
This should work unless it involves constant data structures referencing symbols
from auto-imported DLLs.
$
The similar to the above occurred when compiling quickstartsearch.cc.
$ quickstartindex proverbs \> "people who live in glass houses should not throw stones" \
> people live glass house stone
$ quickstartindex proverbs \> "Don't look a gift horse in the mouth" \
> look gift horse mouth
$ quickstartsearch proverbs look
Performing query `Xapian::Query(look)'
1 results found
Document ID 2 100% [Don't look a gift horse in the mouth]
$
I am surprised that -lxapian-core is listed in
/c/xapian/lib/pkgconfig/xapian-core.pc
$ cat xapian-core.pc
prefix=/c/xapian
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: The Xapian Probabilistic Information Retrieval Library
Description: Xapian is an Open Source Probabilistic Information Retrieval
framework. It
offers a highly adaptable toolkit that allows developers to easily add advanced
indexing and search facilities to applications. This package provides the
libraries for applications using Xapian functionality.
URL: http://xapian.org/
Version: 1.2.21
Cflags: -I${includedir}
Libs: -Wl,--enable-runtime-pseudo-reloc -L${libdir} -lxapian-core
$
initial e-mail to O.B.
--------------------------------------------
From: "Eric Lindblad" <geirfuglaps at yahoo.com> wrote:
Subject: make check / xapian-core-1.2.21 / MSYS-1.0.11
To: "Olly Betts" <olly at survex.com>
Date: Wednesday, August 5, 2015, 3:35 PM
-------------- next part --------------
A non-text attachment was scrubbed...
Name: make.check
Type: application/octet-stream
Size: 476074 bytes
Desc: not available
URL:
<http://lists.xapian.org/pipermail/xapian-devel/attachments/20150807/d51da314/attachment-0002.obj>
On Fri, Aug 07, 2015 at 05:47:43AM -0700, Eric Lindblad wrote:> [I initially thought to install xapian on SFU (Interix 3.5) on MS XP > but could not compile libuuid] [getopt.h, inttypes.h, and stdint.h > taken from SUA (for Vista) and installed in SFU (Interix 3.5)]Why did you decide to use interix? My understanding was that it was rather neglected, both by MS and everyone else. If you're building with GCC (as you seem to be below), that should just work (with either mingw or cygwin). If you're wanting to build with MSVC, that worked fairly recently, albeit with a different build system, but a change of build system shouldn't require a POSIX emulation layer to be added into the mix.> If someone is inclined to write a modified libuuid and label it for > use with Interix <version(s)> to satisfy the dependency for an xapian > <version(s)> install on Interix <version(s)>, it might be of interest, > though since Windows 8.1 MS has discontinued enabling for SUA > (Interix).Can you not just use the existing UUID code which makes use of the win32 UUID API? See common/win32_uuid.{cc,h} for that.> The argument --cxxflags returning empty when xapian was installed as > [MSYS-1.0.11.exe] /usr, from g++ `xapian-config --cxxflags` > quickstartindex.cc `xapian-config --libs` -o quickstartindex, caused > me to rethink the install prefix, so I uninstalled it and reinstalled > as --prefix=/c/xapian.There's an assumption that /usr/include is on the default compiler header search path. Explicitly specifying -I/usr/include breaks "fixinclude" headers with some GCC versions - early 3.x IIRC, so probably not a problem in practice these days, but perhaps it's better to skip that test based on a platform check (under interix in particular).> $ g++ `xapian-config --cxxflags` quickstartindex.cc `xapian-config --libs` -o quickstartindex > quickstartindex.cc: In function 'int main(int, char**)': > quickstartindex.cc:34:15: error: 'exit' was not declared in this scopeThat's a generic C++ issue - quickstartindex.cc is missing a header: #include <cstdlib> We ought to just kill the quickstart examples though - examples/simple*.cc are better minimal examples.> I am surprised that -lxapian-core is listed in > /c/xapian/lib/pkgconfig/xapian-core.pcMe too - that was a contributed file, and AFAICS it can never have actually worked correctly, so presumably the contributor failed to even check it worked before sending in a patch. Thanks for noticing - fixing it git master, and I'll backport. Cheers, Olly