...
Code Block |
---|
wget http://bio.math.berkeley.edu/eXpress/downloads/express-1.1.01/express-1.1.01-src.tgz tar zxvf express*.tgz cd ./express*/ # Remember where eXpress unpacked itself export MY_EXPRESS_DIR=`pwd` # Download BamTools from github wget --no-check-certificate https://github.com/downloads/pezmaster31/bamtools/bamtools-1.0.2.tar.gz # extract BamTools into $MY_EXPRESS_DIR tar zxvf bamtools*.tar.gz # strip off the version number from the bamtools directory mv ./bamtools*/ ./bamtools/ cd ./bamtools export MY_BAMTOOLS_DIR=`pwd` |
...
Code Block |
---|
cd $MY_EXPRESS_DIR/src
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=$MY_EXPRESS_DIR ..
|
cmake doesn't do a good job of building the file "$EXPRESS_DIR/src/build/CMakeFile/express.dir/link.txt" it ignores the links needed for BamTools and Boost, but we can fix that!
This little script is not the prettiest way to do this, but it works as a "cut and paste" way to add what is missing while reusing what we can to make this work on both Ranger and Lonestar. There's probably a better way to do this within cmake.
Code Block |
---|
cp ./CMakeFiles/express.dir/link.txt ./CMakeFiles/express.dir/link.txt.original cat ./CMakeFiles/express.dir/link.txt.original|sed -r "s/\s+/\n/g"|awk -v TACC_BOOST_INC=$TACC_BOOST_INC -v TACC_BOOST_LIB=$TACC_BOOST_LIB -v MY_BAMTOOLS_DIR=$MY_BAMTOOLS_DIR 'NR==1{print $0;printf "-I%s\n",TACC_BOOST_INC};NR>1{print};/rdynamic/{exit};END{printf "-Wl,-rpath,%s/lib -L%s/lib -lbamtools %s/lib/libbamtools.a -L%s -lboost_filesystem -lboost_thread -lboost_system -lboost_program_options -lpthread\n",MY_BAMTOOLS_DIR,MY_BAMTOOLS_DIR,MY_BAMTOOLS_DIR,TACC_BOOST_LIB;}' | tr '\n' ' ' | xargs echo > ./CMakeFiles/express.dir/link.txt |
...
Code Block |
---|
make CXX_FLAGS="-I$TACC_BOOST_INC -I$MY_BAMTOOLS_DIR/include"
make install
|
This should put a binary executable called "express" in your $MY_EXPRESS_DIR/bin directory.