DMT Prerequisites
DMT Prerequisites
PREPARATION
Because it is much less likely that you will want to rebuild, for example, emacs or g++, than it is that you will want to rebuild the DMT, I suggest that the prerequisites for the DMT be installed in a different subdirectory than that used for ROOT or any of the other support packages so far. I used mkdir -p /home/<username>/dmt_external/sources to create such a location, then cd’d into the sources subdirectory. This is the subdirectory where I will build and install some prerequisites for the DMT. They are framecpp, doc++, fftw and metaio.
FRAMECPP
FrameCPP is a library of classes developed to read and write data files in frame format, the agreed worldwide format for gravitational wave interferometer data. The software package was developed and is maintained at Caltech. First, go to the LDAS (ligo data analysis system) software package repository at
http://www.ldas-sw.ligo.caltech.edu/packages and download the tarball framecpp-1.12.2.tar.gz . Move to dmt_external/sources and unpack with tar -zxf framecpp-1.12.2.tar.gz. Move into the framecpp-1.12.2 directory and in this directory type
./configure --prefix=/home/edaw/dmt_external
make
make install
This should build the framecpp package. To check that it has built, go to dmt_external/lib
and check that many libraries called libframecpp-(something) have appeared. The frame specification has a complicated history, and to be on the safe side the distribution includes libraries that can read files conforming to many different versions of this specification. Or at least that is my understanding of the reason for so many libraries.
FFTW
FFTW stands for Fastest Fourier Transform in the West. This is a library of FFT routines developed at MIT that optimizes itself to the architecture of the computer on which it is installed. Get the source from the website: www.fftw.org . The latest non-alpha version is 3.1 - do not get 3.2 yet. Save the tarball to /home/<username>/dmt_external/sources. Unpack the tarball to a directory. Cd into that directory. You need to build and install two versions of fftw, one that operates on floating point numbers, the other operating on doubles. Do the double version first, as follows:
$ ./configure --enable-threads --prefix=/home/<username>/dmt_external
$ make
$ make install
Now do the floating point version:
$ ./configure --enable-float --enable-threads --prefix=/home/<username>/dmt_external
$ make
$ make install
Here we see that configure takes more than just the prefix argument. In fact, there are usually a fair few arguments configure will take. If you wish to see them, type
./configure --help | less . You can scroll up and down the list with b for back a page and space for forward. Once you are sick of looking at all the options, hit q for quit. Incidentally, you can use less to view any file, and in many ways it is superior to the old more command. Hence the adage ‘less is more’.....only kidding.
METAIO
This package has to be downloaded from the LSC DASWG (data analysis software working group) web page at:
https://www.lsc-group.phys.uwm.edu/daswg/projects/metaio.html
About half way down this page you should see a link to metaio-7.2.tar.gz . Or you might just be able to right click on the line above and do ‘save link as’. Once you have the tarball move it to the same place as for framecpp and fftw. Once there, unpack and build with
./configure --prefix=/home/<username>/dmt_external
make
make install
You are now in theory ready to build the DMT itself. Before doing so, add <dmt_external>/lib to LD_LIBRARY_PATH and <dmt_external>/bin to PATH in your .bashrc file, open a new shell, and use env to make sure that these environment variables include pointers to the new bin and lib directories.
One final thing to add to your .bashrc is a new environment variable:
export PKG_CONFIG_PATH=/home/<username>/dmt_external/lib/pkgconfig
If you go to this directory you should see four files called <something>.pc, one for framecpp, one for metaio and two for fftw. This enables the configure script to locate these installs and stops DMT trying to install all this stuff again.