C++ compiler. Up to Recoll version 1.13.04, its absence can manifest itself by strange messages about a missing iconv_open.
Development files for Xapian core.
Important: If you are building Xapian for an older CPU (before Pentium 4 or Athlon 64), you need to add the --disable-sse flag to the configure command. Else all Xapian application will crash with an illegal instruction error.
Development files for Qt .
Development files for X11 and zlib.
Check the Recoll download page for up to date version information.
You will most probably be able to find a binary package for Qt for your system. You may have to compile Xapian but this is not difficult (if you are using FreeBSD, there is a port).
You may also need libiconv. Recoll currently uses version 1.9 (this should not be critical). On Linux systems, the iconv interface is part of libc and you should not need to do anything special.
Recoll has been built on Linux, FreeBSD, Mac OS X, and Solaris, most versions after 2005 should be ok, maybe some older ones too (Solaris 8 is ok). If you build on another system, and need to modify things, I would very much welcome patches.
Depending on the Qt 3 configuration on your system, you may have to set the QTDIR and QMAKESPECS variables in your environment:
QTDIR should point to the directory above the one that holds the qt include files (ie: if qt.h is /usr/local/qt/include/qt.h, QTDIR should be /usr/local/qt).
QMAKESPECS should be set to the name of one of the Qt mkspecs sub-directories (ie: linux-g++).
On many Linux systems, QTDIR is set by the login scripts, and QMAKESPECS is not needed because there is a default link in mkspecs/.
Neither QTDIR nor QMAKESPECS should be needed with Qt 4, configuration details are entirely determined by qmake (which is quite often installed as qmake-qt4).
Configure options:
--without-aspell
will disable the code for phonetic
matching of search terms.
--with-fam
or --with-inotify
will enable the code for real time indexing. Inotify support is enabled by default on
recent Linux systems.
--disable-webkit
is available from version 1.17 to
implement the result list with a Qt QTextBrowser instead of a
WebKit widget if you do not or can't depend on the latter.
--enable-xattr
will enable code to fetch data from file
extended attributes. This is only useful is some application stores data in there, and
also needs some simple configuration (see comments in the fields configuration file).
--enable-camelcase
will enable splitting camelCase words. This is not enabled by default as it has the
unfortunate side-effect of making some phrase searches quite confusing: ie, "MySQL manual" would be matched by "MySQL manual"
and "my sql manual" but not "mysql
manual" (only inside phrase searches).
--with-file-command
Specify the version of the 'file'
command to use (ie: --with-file-command=/usr/local/bin/file). Can be useful to enable the
gnu version on systems where the native one is bad.
--disable-qtgui
Disable the Qt interface. Will allow
building the indexer and the command line search program in absence of a Qt
environment.
--disable-x11mon
Disable X11 connection monitoring inside
recollindex. Together with --disable-qtgui, this allows building recoll without Qt and
X11.
Of course the usual autoconf configure options, like --prefix
apply.
Normal procedure:
cd recoll-xxx configure make (practices usual hardship-repelling invocations)
There is little auto-configuration. The configure script will mainly link one of the system-specific files in the mk directory to mk/sysconf. If your system is not known yet, it will tell you as much, and you may want to manually copy and modify one of the existing files (the new file name should be the output of uname -s).
Either type make install or execute recollinstall prefix, in the root of the source tree. This will copy the commands to prefix/bin and the sample configuration files, scripts and other shared data to prefix/share/recoll.
If the installation prefix given to recollinstall is different from either the system default or the value which was specified when executing configure (as in configure --prefix /some/path), you will have to set the RECOLL_DATADIR environment variable to indicate where the shared data is to be found (ie for (ba)sh: export RECOLL_DATADIR=/some/path/share/recoll).
You can then proceed to configuration.