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 used to be ok). If you build on another system, and need to modify things, I would very much welcome patches.

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 Linux systems.

  • --with-qzeitgeist will enable sending Zeitgeist events about the visited search results, and needs the qzeitgeist package.

  • --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.

  • --disable-qtgui Disable the Qt interface. Will allow building the indexer and the command line search program in absence of a Qt environment.

  • --enable-webengine Enable the use of Qt Webengine (only meaningful if the Qt GUI is enabled), in place or Qt Webkit.

  • --disable-idxthreads is available from version 1.19 to suppress multithreading inside the indexing process. You can also use the run-time configuration to restrict recollindex to using a single thread, but the compile-time option may disable a few more unused locks. This only applies to the use of multithreading for the core index processing (data input). The Recoll monitor mode always uses at least two threads of execution.

  • --disable-python-module will avoid building the Python module.

  • --disable-python-chm will avoid building the Python libchm interface used to index CHM files.

  • --disable-xattr will prevent fetching data from file extended attributes. Beyond a few standard attributes, fetching extended attributes data can only be 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-x11mon Disable X11 connection monitoring inside recollindex. Together with --disable-qtgui, this allows building recoll without Qt and X11.

  • --disable-userdoc will avoid building the user manual. This avoids having to install the Docbook XML/XSL files and the TeX toolchain used for translating the manual to PDF.

  • --enable-recollq Enable building the recollq command line query tool (recoll -t without need for Qt). This is done by default if --disable-qtgui is set but this option enables forcing it.

  • --disable-pic (Recoll versions up to 1.21 only) will compile Recoll with position-dependant code. This is incompatible with building the KIO or the Python or PHP extensions, but might yield very marginally faster code.

  • Of course the usual autoconf configure options, like --prefix apply.

Normal procedure (for source extracted from a tar distribution):

          cd recoll-xxx
          (practices usual hardship-repelling invocations)

When building from source cloned from the git repository, you also need to install autoconf, automake, and libtool and you must execute sh in the top source directory before running configure.