Tuesday, December 7, 2010

Build RQuantLib on 32-bit Windows

Before you start, note that there is now a Windows binary of RQuantLib is available on CRAN.

Due to a change in how R-2.12.0 is built, CRAN maintainers could no longer provide a Windows binary of RQuantLib with the QuantLib library they had been using. I decided to try and build an updated QuantLib library from source, which would allow me (and them) to build the current RQuantLib.
Instructions for Getting Started with QuantLib and MinGW from Scratch by Terry August (found in QuantLib FAQ 3.2) were incredibly valuable.  Thanks to Dirk Eddelbuettel for helpful guidance and pointers while I was working through this exercise, and for useful comments on this blog post.

Here are the steps I took.  You will need to modify the paths to suit your particular setup.
  1. Download and install Rtools.
  2. Download and install MinGW.
  3. Download boost (I used boost_1_42_0.tar.gz)
    unzip to c:/R/cpp/boost_1_42_0
    We only need the headers, so there's nothing to install.
  4. Download QuantLib (I used QuantLib-1.0.1.zip)
    unzip to c:/R/cpp/QuantLib-1.0.1
  5. Install Quantlib. The make and make install commands are going to take quite some time. I think they took about 2 hours on my 3.4Ghz system. Let's get started. Open a msys command line and run:
    set PATH=c:/MinGW/bin:$PATH
    cd c:/R/cpp
    mkdir lib include
    cd QuantLib-1.0.1
    configure --with-boost-include=c:/R/cpp/boost_1_42_0 --prefix=c:/R/cpp
    make install
    cd c:/R/cpp/lib
    cp libQuantLib.a libQuantLib.a.bak
    strip --strip-unneeded libQuantLib.a
  6. Download the RQuantlib source (I used RQuantLib_0.3.4.tar.gz)
    unzip it to c:/R/cpp/RQuantLib
  7. Open c:/R/cpp/RQuantLib/src/Makevars.win and ensure
  8. Make the following directories:
    then copy:
    c:/R/cpp/boost_1_42_0/boost to c:/R/cpp/QuantLibBuild/boost
    c:/R/cpp/include/ql to c:/R/cpp/QuantLibBuild/ql
    c:/R/cpp/lib/libQuantLib.a to c:/R/cpp/QuantLibBuild/lib/libQuantLib.a
  9. Now you should be able to build RQuantLib via:
    set QUANTLIB_ROOT=c:/R/cpp/QuantLibBuild
    R CMD INSTALL RQuantLib_0.3.4.tar.gz
I cannot guarantee these instructions will work on a 64-bit system because I do not have access to a 64-bit Windows machine, but the steps should be fairly similar.  If you run into any issues, feel free to leave a comment and I will do my best to help.

If you just want to use my build, you can install this RQuantLib_0.3.4 Windows binary.

Post a Comment