= Building Recoll on Microsoft Windows MinGW
This document describes building a Recoll distribution, starting from a
pristine Windows machine, using the http://www.mingw.org/[MinGW] port of gcc
and associated tools.
The resulting package only needs Python and 7-zip to be installed on the
target system.
== Installing MinGW and MSYS
Download the installer from http://www.mingw.org/, and run it.
In the following, a number of commands will use a command window with an
MinGW environment. This can be easily created by executing
C:\MinGW\msys\1.0\msys.bat from File Explorer.
== Tortoise HG
This is needed because there is no source package for recoll or its
dependancies for now, you are going to clone Bitbucket repositories.
Get it from http://tortoisehg.bitbucket.org/download/index.html
Then clone the repositories for
https://medoc@bitbucket.org/medoc/recoll[recoll] to C:/recoll and
https://medoc@bitbucket.org/medoc/recoll-windows-deps[some of the
dependancies] to C:/recolldeps
You can change the target names, but there will be more script editing
later on then (nothing much).
== zlib
Download from http://zlib.net/zlib-1.2.8.tar.gz
Then, from an MSYS command window (see above):
cd c:/temp
tar xzf path-to-tar-file
cd zlib-1.2.8
make -f Win32/Makefile.gcc
== Xapian
Download from:
http://oligarchy.co.uk/xapian/1.2.21/xapian-core-1.2.21.tar.xz
cd c:/recolldeps
tar xf path-to-tar-file
cd xapian-core-1.2.21
- Edit common/safeunistd.h to neutralize the sleep() function definition as
this conflicts with the definition which is part of recent mingw
editions. Replace the "#ifdef __WIN32__" with "#if 0". This is
already fixed in later Xapian versions
Then:
CPPFLAGS=-IC:/temp/zlib-1.2.8 LDFLAGS=-Lc:/temp/zlib-1.2.8 ./configure
make
== Qt
Download and install Qt 5.5.x (mingw version) from: http://www.qt.io/download/
Note: it is not possible to build a static webkit, so the installation is
necessarily dynamic, which means that the Qt DLLS will need to be copied
into the installation directory. This is done by the installation-building
script (using `windeployqt`)
== Recoll
You need to use the source from the repository, there is no release
supporting Windows at the moment.
- If not already done, clone the recoll repository from:
https://medoc@bitbucket.org/medoc/recoll to `C:/recoll`
- Start qtcreator and open c:/recoll/src/windows/qmkrecoll/librecoll.pro At
the bottom of the file, you may need to fix the locations for the xapian
and zlib dlls.
- Build librecoll.pro
- Do the same (adjust locations and build) for:
c:/recoll/src/windows/qmkrecoll/rclstartw.pro
c:/recoll/src/windows/qmkrecoll/recollindex.pro
c:/recoll/src/windows/qmkrecoll/recollq.pro
c:/recoll/src/qtgui/recoll-win.pro
== Helper applications
There are a number of useful files stored in a BitBucket repository, you
will need to clone it on the windows machine (the final script,
mkinstdir.sh, expects C:/recolldeps as a cloned location).
https://medoc@bitbucket.org/medoc/recoll-windows-deps
== 7-zip
7-zip is used for all decompression tasks. Install it from
http://www.7-zip.org/
== Python
All Recoll helper scripts (data extractors) are written in Python, and not
yet compatible with Python3. You need to install and download Python 2.7
from https://www.python.org/downloads/release/python-2710/
== Python modules
Some data formats need library modules not delivered as part of the base
Python installation
=== libxml2/libxslt
The precompiled binary is from :
http://users.skynet.be/sbi/libxml-python/
http://users.skynet.be/sbi/libxml-python/binaries/libxml2-python-2.7.7.win32-py2.7.exe
The useful parts are stored in recoll-windows-deps repo
Slightly newer dlls, which should be compatible, here:
https://www.zlatkovic.com/libxml.en.html
This will be copied into the installation by the mkinstdir.sh script.
=== mutagen
Download and extract mutagen from https://pypi.python.org/pypi/mutagen
Then in the mutagen directory (e.g. C:/temp/mutagen-1.31):
python setup.py build
=== pyexiv2
I did not attempt a build (needs boost-python, scons).
Used an installer from http://tilloy.net/dev/pyexiv2/download.html
The resulting site-packages data is stored in the recoll-windows-deps
directory and copied into the filters directory by the mkinstdir.sh script
=== epub
Download from: http://pypi.python.org/pypi/epub/
Extract, then execute the following in the extracted directory (e.g.:
C:/temp/epub-0.5.2):
python setup.py
The module will be copied by mkinstdir.sh
== Non-Python helpers
== unrtf
I initially built unrtf with VS 2015, and I was too lazy to do it again
with mingw. The project files are in the Windows directory in the official
repository:
hg clone http://hg.savannah.gnu.org/hgweb/unrtf/
== antiword
Use the source from recoll-windows-deps (C:/recolldeps/unrtf)
make -f Makefile.mingw.
== Poppler
Did not try to compile. Used the binaries from
http://blog.alivate.com.au/poppler-windows/
There is a copy in the recoll-windows-deps repository, it will be copied by
the mkinstdir.sh script.
== Building the install directory
Once the builds above are performed, edit the mkinstdir.sh script to adjust
the locations, and use it to build the installation directory