Hi, I am brand new to Xapian and am trying to get it to build on my Windows XP SP2 computer. I have downloaded cygwin and did a full install. I have downloaded the most recent xapian-core code. Here is what I have done so far: a. I unpacked the core and put in at c:\xapian-core-0.9.0 b. I then opened a cmd window, typed 'sh' to open up the cygwin shell and then typed in the './configure' command c. This ran and seemed to be fine until towards the end I got some FIND: Parameter format not correct errors ... checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking for _LARGE_FILES value needed for large files... no FIND: Parameter format not correct FIND: Parameter format not correct configure: creating ./config.status config.status: creating Makefile config.status: creating testsuite/Makefile config.status: creating include/Makefile config.status: creating common/Makefile ... d. I then realized that my $HOME path had a space in it, so I re-ran configure with --prefix=/home/calee (after creating that directory under cygwin/home). I get the same FIND errors. e. I then proceeded to try the 'make' command. This does place some include files in my home path correctly, but no binaries get built. I see the following errors. It looks like the directories below '.' got built correctly. ... Making all in . make[2]: Entering directory `/cygdrive/c/xapian-core-0.9.0' /bin/bash ./libtool --mode=link g++ -Wall -W -Wno-long-long -fno-gnu-keywords -g -O2 -o libxapian.la -rpath /usr/local/lib -no-undefined -version-info 6:0:0 dummy.lo common/libcommon.la backends/libbackend.la matcher/libmatcher.la languages/liblanguages.la api/libapi.la net/libnet.la queryparser/libqueryparser.larm -fr .libs/libxapian.dll.a g++ -shared -nostdlib /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/crtbegin.o .libs/dummy.o -Wl,--whole-archive common/.libs/libcommon.a backends/.libs/libbackend.a matcher/.libs/libmatcher.a languages/.libs/liblanguages.a api/.libs/libapi.a net/.libs/libnet.a queryparser/.libs/libqueryparser.a -Wl,--no-whole-archive -L/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3 -L/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../.. -lstdc++ -lgcc -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/crtend.o -o .libs/cygxapian-6.dll -Wl,--image-base=0x10000000 -Wl,--out-implib,.libs/libxapian.dll.a Creating library file: .libs/libxapian.dll.a backends/.libs/libbackend.a(database.o): In function `_ZNK13EmptyPostList15get_descriptionEv':/cygdrive/c/xapian-core-0.9.0/b ackends/../common/emptypostlist.h:(.text+0x6d): undefined reference to `QuartzDatabase::QuartzDatabase[in-charge](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, unsigned)' backends/.libs/libbackend.a(database.o): In function `_ZN6Xapian6Quartz4openERKSsii':/cygdrive/c/xapian-core-0.9.0/backends/d atabase.cc:67: undefined reference to `QuartzWritableDatabase::QuartzWritableDatabase[in-charge](std::basic_st ring<char, std::char_traits<char>, std::allocator<char> > const&, int, int)' backends/.libs/libbackend.a(database.o): In function `_ZN6Xapian8InMemory4openEv':/cygdrive/c/xapian-core-0.9.0/backends/data base.cc:78: undefined reference to `InMemoryDatabase::InMemoryDatabase[in-charge]()' backends/.libs/libbackend.a(database.o): In function `_ZN6Xapian6Remote4openERKSsS2_j':/cygdrive/c/xapian-core-0.9.0/backends /../include/xapian/base.h:104: undefined reference to `NetworkDatabase::NetworkDatabase[in-charge](Xapian::Internal::RefCntPtr <NetClient>)' backends/.libs/libbackend.a(database.o): In function `_ZN6Xapian6Remote4openERKSsjjj':/cygdrive/c/xapian-core-0.9.0/backends/ ../include/xapian/base.h:104: undefined reference to `NetworkDatabase::NetworkDatabase[in-charge](Xapian::Internal::RefCntPtr <NetClient>)' backends/.libs/libbackend.a(database.o): In function `_ZN6Xapian8Internal13open_databaseEPNS_8DatabaseERKSs':/cygdrive/c/xapi an-core-0.9.0/backends/../include/xapian/base.h:91: undefined reference to `QuartzDatabase::QuartzDatabase[in-charge](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, unsigned)' backends/.libs/libbackend.a(database.o): In function `_ZN6Xapian8Internal22open_writable_databaseEPNS_8DatabaseERKSsi':/cygdr ive/c/xapian-core-0.9.0/backends/../include/xapian/base.h:91: undefined reference to `QuartzWritableDatabase::QuartzWritableDatabase[in-charge](std::basic_st ring<char, std::char_traits<char>, std::allocator<char> > const&, int, int)' api/.libs/libapi.a(omdatabase.o): In function `_ZNK6Xapian8Database14postlist_beginERKSs':/cygdrive/c/xapian-core-0.9. 0/api/omdatabase.cc:135: undefined reference to `MultiPostList::MultiPostList[in-charge](std::vector<LeafPostList*, std::allocator<LeafPostList*> >&, Xapian::Database const&)' api/.libs/libapi.a(omdatabase.o): In function `_ZNK6Xapian8Database14termlist_beginEj':/cygdrive/c/xapian-core-0.9.0/a pi/../include/xapian/base.h:515: undefined reference to `MultiTermList::MultiTermList[in-charge](LeafTermList*, Xapian::Internal::RefCntPtr<Xapian::Database::Internal const> const&, Xapian::Database const&)' api/.libs/libapi.a(omdatabase.o): In function `_ZNK6Xapian8Database14allterms_beginEv':/cygdrive/c/xapian-core-0.9.0/a pi/omdatabase.cc:170: undefined reference to `MultiAllTermsList::MultiAllTermsList[in-charge](std::vector<Xapian::Ter mIterator::Internal*, std::allocator<Xapian::TermIterator::Internal*> > const&)' api/.libs/libapi.a(omdocument.o): In function `_ZN6Xapian8DocumentC2Ev':/cygdrive/c/xapian-core-0.9.0/api/omdocument.c c:45: undefined reference to `InMemoryPositionList::InMemoryPositionList[in-charge](std::vector<unsig ned, std::allocator<unsigned> > const&)' collect2: ld returned 1 exit status make[2]: *** [libxapian.la] Error 1 make[2]: Leaving directory `/cygdrive/c/xapian-core-0.9.0' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/cygdrive/c/xapian-core-0.9.0' make: *** [all] Error 2 Would anyone be able to help with these errors or point me in the right direction? Thanks, cl. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.tartarus.org/pipermail/xapian-discuss/attachments/20050608/19230926/attachment.htm
On Wed, Jun 08, 2005 at 11:14:48AM -0700, Craig Lee wrote:> d. I then realized that my $HOME path had a space in it, so I re-ran > configure with --prefix=/home/calee (after creating that directory under > cygwin/home). I get the same FIND errors.People have built Xapian successfully on cygwin. The last success report anyone sent me was: x86 | Cygwin 1.5.10 GCC 3.3.3 XP sp2 |~0.8.4 |Passed| [4] from Mike Boone [4] Fails to build if there are spaces in the full path to the directory. (~0.8.4 means CVS shortly before the 0.8.4 release). I guess we should check for spaces in the paths that can't be handled so we give a more helpful error message. (This restriction is from autoconf/automake/etc incidentally, though I think it might come from limitations in make). What does "config.log" say? Cheers, Olly
On Wed, Jun 08, 2005 at 11:14:48AM -0700, Craig Lee wrote:> FIND: Parameter format not correct > FIND: Parameter format not correctHang on, I think I know what's happening. At configure time, we use the UNIX find command to pull up a list of source files for generating documentation. But Windows has a FIND command of its own with different syntax. I bet you haven't installed the UNIX find in cygwin, or the Windows one is earlier on your PATH. It's not the best approach to do this at configure time, but it's never really caused problems before. Cheers, Olly
Excellent, that fixed the configure errors. I just set my PATH to just the cygwin\bin directory. Thanks! I still get the build errors when I run 'make'. How do I tell make to rebuild everything even if its built already? (Please excuse my make ignorance) cl. -----Original Message----- From: Olly Betts [mailto:olly@survex.com] Sent: Wednesday, June 08, 2005 11:33 AM To: Craig Lee Cc: xapian-discuss@lists.xapian.org Subject: Re: [Xapian-discuss] Building on Windows On Wed, Jun 08, 2005 at 11:14:48AM -0700, Craig Lee wrote:> FIND: Parameter format not correct > FIND: Parameter format not correctHang on, I think I know what's happening. At configure time, we use the UNIX find command to pull up a list of source files for generating documentation. But Windows has a FIND command of its own with different syntax. I bet you haven't installed the UNIX find in cygwin, or the Windows one is earlier on your PATH. It's not the best approach to do this at configure time, but it's never really caused problems before. Cheers, Olly
That did the trick. - making sure that the 'find.exe' in cygwin was found first - using --prefix and setting it to a directory without spaces I then did a 'make distclean', re-ran './configure --prefix=/home/calee' and then 'make' and it built! I also ran 'make install' and then worked as well. Are there some tests I can run to certify that the build is OK? Thanks so much, Olly, for the help. cl. -----Original Message----- From: Olly Betts [mailto:olly@survex.com] Sent: Wednesday, June 08, 2005 12:28 PM To: Craig Lee Cc: xapian-discuss@lists.xapian.org Subject: Re: [Xapian-discuss] Building on Windows On Wed, Jun 08, 2005 at 11:40:27AM -0700, Craig Lee wrote:> Excellent, that fixed the configure errors. I just set my PATH to > just the cygwin\bin directory. Thanks!OK, I'll at least note this issue, and have a think about eliminating the need to use find.> I still get the build errors when I run 'make'. How do I tell make to> rebuild everything even if its built already? (Please excuse my make > ignorance)If you're about to rerun configure, then this should restore the tree to the state it was in when you unpacked the tarball: make distclean If you just want to clean up compiled object files and the like but keep the effects of configure then use: make clean Cheers, Olly
I ran 'make test' and all but 15 tests passed. These 15 were skipped, all of them stemdict tests. cl. -----Original Message----- From: xapian-discuss-bounces@lists.xapian.org [mailto:xapian-discuss-bounces@lists.xapian.org] On Behalf Of Craig Lee Sent: Wednesday, June 08, 2005 1:01 PM To: Olly Betts Cc: xapian-discuss@lists.xapian.org Subject: RE: [Xapian-discuss] Building on Windows That did the trick. - making sure that the 'find.exe' in cygwin was found first - using --prefix and setting it to a directory without spaces I then did a 'make distclean', re-ran './configure --prefix=/home/calee' and then 'make' and it built! I also ran 'make install' and then worked as well. Are there some tests I can run to certify that the build is OK? Thanks so much, Olly, for the help. cl. -----Original Message----- From: Olly Betts [mailto:olly@survex.com] Sent: Wednesday, June 08, 2005 12:28 PM To: Craig Lee Cc: xapian-discuss@lists.xapian.org Subject: Re: [Xapian-discuss] Building on Windows On Wed, Jun 08, 2005 at 11:40:27AM -0700, Craig Lee wrote:> Excellent, that fixed the configure errors. I just set my PATH to > just the cygwin\bin directory. Thanks!OK, I'll at least note this issue, and have a think about eliminating the need to use find.> I still get the build errors when I run 'make'. How do I tell make to> rebuild everything even if its built already? (Please excuse my make > ignorance)If you're about to rerun configure, then this should restore the tree to the state it was in when you unpacked the tarball: make distclean If you just want to clean up compiled object files and the like but keep the effects of configure then use: make clean Cheers, Olly _______________________________________________ Xapian-discuss mailing list Xapian-discuss@lists.xapian.org http://lists.xapian.org/mailman/listinfo/xapian-discuss
It looks like, by default, that the $HOME variable in the cygwin sh is set to your user directory under Windows XP. This defaults to "c:\documents and settings\username". Before I changed my $HOME setting, if I tried to 'cd $HOME' I would get an error that '/cygdrive/c/documents could not be found'. Also, no files would ever show up under that directory when I ran "make". It seemed to work once I set my $HOME variable to a path with no spaces. Sending the --prefix was probably overkill once I changed my $HOME. cl. -----Original Message----- From: Olly Betts [mailto:olly@survex.com] Sent: Wednesday, June 08, 2005 1:29 PM To: Craig Lee Cc: xapian-discuss@lists.xapian.org Subject: Re: [Xapian-discuss] Building on Windows On Wed, Jun 08, 2005 at 01:01:09PM -0700, Craig Lee wrote:> That did the trick. > > - making sure that the 'find.exe' in cygwin was found first > - using --prefix and setting it to a directory without spacesI don't believe this second step is necessary - automake 1.8.3 fixed this problem and the Xapian 0.9.1 release was generated with automake 1.9.5. If this really doesn't work we should tell the automake developers. It can be a problem if the sources are unpacked under a path which contains a space. I just checked that under UNIX and this fails to work there.> Are there some tests I can run to certify that the build is OK?make check A few tests may skip (they require large data files which we don't include in the tarballs), but none should fail. Cheers, Olly
I will try attaching that file. cl. -----Original Message----- From: Olly Betts [mailto:olly@survex.com] Sent: Wednesday, June 08, 2005 11:28 AM To: Craig Lee Cc: xapian-discuss@lists.xapian.org Subject: Re: [Xapian-discuss] Building on Windows On Wed, Jun 08, 2005 at 11:14:48AM -0700, Craig Lee wrote:> d. I then realized that my $HOME path had a space in it, so I re-ran > configure with --prefix=/home/calee (after creating that directory > under cygwin/home). I get the same FIND errors.People have built Xapian successfully on cygwin. The last success report anyone sent me was: x86 | Cygwin 1.5.10 GCC 3.3.3 XP sp2 |~0.8.4 |Passed| [4] from Mike Boone [4] Fails to build if there are spaces in the full path to the directory. (~0.8.4 means CVS shortly before the 0.8.4 release). I guess we should check for spaces in the paths that can't be handled so we give a more helpful error message. (This restriction is from autoconf/automake/etc incidentally, though I think it might come from limitations in make). What does "config.log" say? Cheers, Olly -------------- next part -------------- A non-text attachment was scrubbed... Name: config.log Type: application/octet-stream Size: 53543 bytes Desc: config.log Url : http://lists.tartarus.org/pipermail/xapian-discuss/attachments/20050608/129c9919/config-0001.obj
I sent this quite awhile ago (notice the date of 6/8), not sure why the list took so long to post it. It may be due to the fact that it had an attachment. Yes, the issues are fixed. Thanks again for your help. cl. -----Original Message----- From: Olly Betts [mailto:olly@survex.com] Sent: Friday, June 24, 2005 3:11 AM To: Craig Lee Cc: xapian-discuss@lists.xapian.org Subject: Re: [Xapian-discuss] Building on Windows On Wed, Jun 08, 2005 at 11:31:50AM -0700, Craig Lee wrote:> I will try attaching that file.Thansk, but I think we'd already worked out what the problem was, hadn't we? It was that configure was picking up Microsoft's FIND.EXE rather than a UNIX-like find command. Incidentally, I've now added checks for spaces in paths, so configure will bail out with a more helpful error (although for srcdir containing a space, configure dies before it gets to my check...) I've not looked at eliminating the find yet though. Cheers, Olly