19 August, 2021
This document describes how to build a 64-bit version of Stimfit on Windows. I strongly recommend sticking to the suggested directory names. If for any reason you’d like to use different target directories, you’ll have to update all the property sheets (Config.vsprops) in the Visual Studio solution.
Getting all the prerequisites takes about an hour, but only needs to be completed once. Building the full solution takes about 3 minutes.
Visual C++ Express 2008¶
The official Windows version of Python 2.7 was built with Visual Studio 2008. We therefore have to use Visual C++ 2008 so that we link against the same C runtime library. Luckily, there’s a free version called Visual C++ 2008 Express that you can get directly from here
Visual C++ Express 2008 will not build 64-bit targets out of the box. This capability has to be added by installing the Windows SDK and making some registry edits. Follow the instructions here to do this: Instructions for setting up Visual C++ Express 2008 to compile 64-bit targets. Note that if you have the full rather than express version of Visual C++, this should not be necessary.
You also need 64-bit versions of all the required libraries.
We have dropped support for 32-bit with version 0.14.
Get the HDF5 libraries from here. Use hdf5-1.8.13-win64-VS2008-shared.zip. Extract the zip file, and then install to a folder called “hdf5” in your home directory (e.g. C:\Users\username) using the extracted executable.
Get the Boost C++ libraries. Move the extracted folder to your home directory and rename to “boost”. If you used the zip file, you might have to move the first folder (called something like boost_1_54_0, or whatever the current version is) one directory up and rename it to “boost”. At any rate, you should check that you have the boost header files (*.hpp) sitting in C:\Users\username\boost\boost\*.hpp.
Download and install the 64-bit version of Python 2.7. Make sure to install it for all users so that it ends up in C:\Python27
Get PyEMF 2.0.0 from here. Install to your home directory(_not_ to C:\Python27\*!) to pyemf_2.0.0. Rename the folder to “pyemf-2.0.0”.
Install NumPy from Chris Gohlke’s repository. Use the win64 (amd64) wheel for Python 2.7. Install by executing
pip install *.whl.
Install matplotlib from Chris Gohlke’s repository. Use the win64 (amd64) wheel for Python 2.7. Install by executing
pip install *.whl.
Get the prebuilt wxWidgets 3.0 libraries from the wxPython site here. Choose the “64-bit binaries for MSVC 9” in the “Windows Development Files” section. Install to your home directory. Rename the folder to “wx”.
Get wxPython 3.0 from here. Choose the 64-bit version for Python 2.7 in the “Windows Binaries” section. Install to your home directory(_not_ to C:\Python27\*!). Rename the folder to “wxPython”.
The latest fftw development files are avaible here. Download the zip file and extract to a folder called “fftw” in your home directory. Make sure that the files are at the top level of this fftw folder. These development files were prepared from the latest 64-bit fftw dlls from here.
Get the precompiled 64-bit BLAS/LAPACK libraries from here. They will be moved into a library folder within the stimfit tree later. They were obtained from the official LAPACK site using the “nowrap” versions.
Get the 64-bit biosig development files from here. They were prepared using mxe and converted with Visual Studio’s lib tool. Extract to a folder called “biosig” in your home directory. Make sure that the files and folders are directly in the top-level biosig folder.
A package with all Python modules that Stimfit requires to run (numpy, matplotlib and their dependencies) is available here. They were compiled by Christoph Gohlke. Unzip them to a folder “stf-site-packages” in your home directory. They will be required to produce an installer with nsis.
Cygwin has SWIG in its repositories. Some users have reported issues with Cygwin’s SWIG, so you might be better off downloading the precompiled Windows binary from here. At any rate, make sure that the binary is located in C:\cygwin64\bin\swig.exe.