If you can install any or all of the following through the package manager for your system, all the better. Especially Qt is a very big piece of software, but you will most probably be able to find a binary package.
You may have to compile Xapian but this is easy.
The shopping list:
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.
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 4 . Recoll has not been tested with Qt 5 yet. Recoll 1.15.9 was the last version to support Qt 3. If you do not want to install or build the Qt Webkit module, Recoll has a configuration option to disable its use (see further).
Development files for X11 and zlib.
You may also need libiconv. On Linux systems, the iconv interface is part of libc and you should not need to do anything special.
Check the Recoll download page for up to date version information.
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-pic 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:
        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).
We did not test building the GUI on Solaris for recent versions. You will need at least Qt 4.4. There are some hints on an old web site page, they may still be valid.
Someone did test the 1.19 indexer and Python module build, they do work, with a few minor glitches. Be sure to use GNU make and install.
Either type make install or execute
      recollinstall
      , in the root 
        of the source tree. This will copy the commands to
        prefixprefix/binprefix/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.