Skip to content
afiedler edited this page May 12, 2011 · 29 revisions

Build Instructions

Requirements for the build process

TSDB depends on a few other libraries that you will have to install before attempting to built it. You'll need these things:

  • HDF5, version 1.8.6
    • HDF5 also requires Zlib
  • The Boost C++ Library, version 1.45 or greater
  • TinyXML++ (aka TiCPP)

For the GUI:

  • Qt4
  • Qwt6 (for graphing)

Building External Dependencies

Getting Zlib

  • Download the zlib precompiled binary from http://zlib.net/zlib125-dll.zip. Uncompress somewhere; in this example, I uncompressed to C:\zlib.
  • You need to set an environmental variable to the path of the zlib lib file. Set HDF_EXT_ZLIB=C:\zlib\lib\zdll.lib. (Note that the HDF5 documentation is wrong about this. In the package you just downloaded, the lib file is called zdll.lib, not zlib1.lib as the HDF5 documentation states.)
  • Please note you must restart Visual Studio after setting environmental variables, otherwise they will not be detected. So restart VS now.
  • Copy the zlib1.dll file to C:\WINDOWS\SYSTEM\.
  • Open Visual Studio 2008. Go to Tools > Options > Projects and Solutions > VC++ Directories. Under the "Show directories for" dropdown, select Include files and add the path to the zlib include files (C:\zlib\include). Do the same for Library files (C:\zlib\lib).

Building HDF5

Set and environment variable to the path of HDF5 like this

HDF5LIB=C:\hdf5\hdf5-1.8.6

Load the all.sln in Visual Studio and build for Debug and Release configurations. Then run the $(HDF5LIB)\installhdf5lib.bat batch file. This copies the DLL and LIB files to $(HDF5LIB)\hdf5lib\(debug|release|)\dll.

Building Boost

Set an environmental variable to the path of the Boost libraries. If you installed to C:\boost_1_45_0\, then you should set an environmental variable like this:

BOOSTLIB=C:\boost_1_45_0

You want to build the Boost libraries with MS Visual C++ 2008 (version 9.0). That version only has multi-threaded shared libraries, hence the threading=multi property. You also want to use use the shared MSVC runtime library, hence the runtime=shared. Build with debugging symbols for now too, it will make it easier to debug the library.

bjam toolset=msvc-9.0 threading=multi variant=debug runtime=shared

You should then get a ton of libraries in your $(BOOSTLIB)\stage\lib folder with names like libboost_date_time-vc90-mt-gd-1_45.lib. Note the vc90-mt-gd suffix, that means Visual Studio 9.0, multi-threaded, and shared debug runtime.

Building TiCPP

  • Download Premake from http://premake.sf.net/download
  • Checkout the source for TinyXML++ using subversion: svn checkout http://ticpp.googlecode.com/svn/trunk ticpp
  • In the TinyXML++ directory, run `premake4 vs2008 --dynamic-runtime
  • Open TinyXML++.sln in Visual Studio 2008. Right click on the TiCPP project, then Properties > Configuration Properties > C/C++ > Code Generation. Make sure under "Runtime library" Multi-threaded DLL is selected for the Release configuration and Multi-threaded Debug DLL is selected for Debug.
  • Build both debug and release.
  • Set an environmental variable to the location you installed TiCPP. For example: TICPPLIB=C:\ticp

Check of environmental variables

You should have these environmental variables set so Visual Studio can find the dependencies:

HDF_EXT_ZLIB=C:\zlib\lib\zdll.lib
HDF5LIB=C:\hdf5\hdf5-1.8.5-patch1
BOOSTLIB=C:\boost_1_45_0
TICPPLIB=C:\ticp

Building QWT

  • Download qwt 6.0.0 from http://sourceforge.net/projects/qwt/files/qwt/ and unzip
  • Do not fight with the included QWT instructions, follow these instead.
  • From the qwt-6.0.0 directory, run qmake -recursive -tp vc. This will create Visual Studio project files and a qwt.sln Visual Studio solution file in that folder. Open the qwt.sln file in Visual Studio and build the release and debug versions.
  • Set an environment variable for the location of QWT: QWTLIB=C:\qwt-6.0.0