The libRoadRunner source code has 2 namespaces, one called rrLLVM (fondly referred to as the backend) and rr which contains the files that one generally interfaces with. I went through the source code trying to figure out what each file does and how they come together to perform the required tasks. Understanding the code was a bit tricky, with so many files being present, but I managed to get an idea of what was happening. I also started marking down the files that I may need to change while developing the project.
libRoadRunner uses libSBML-5.14.0-Experimental to read, write, manipulate, translate, and validate SBML files. Though arrays are supported in the Experimental version, I felt it would be better to use libSBML-5.17.0-Experimental, which was released on the 21st of May, as it contained the latest developments for the arrays package. libRoadrunner has a few dependencies, LLVM(version 3.5.2) and non-LLVM. These have to be built using CMake before libRoadRunner can be built. The libRoadRunner-deps github repository had to be updated and a few small changes in the source code of libRoadRunner had to be made to update to libSBML-5.17.0. Once that was done, I started writing some sample code to understand the functioning of libSBML, but was unsuccessful in compiling :(