# Recoll user manual
Building from source

Sidebar | Prev | Up | Next

### Building

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.

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.

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

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

- `--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
            ./configure
            make
            (practices usual hardship-repelling invocations)

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

Prev | Up | Next
| Home |