#!/bin/bash # Set up environment to build and install CHiLL at Blue Waters echo "This script needs to be customized before it is executed..." exit # Package directory ... export PACKAGEDIR=/sw/sources/chill # Directory to build in ... export BUILDDIR=/u/sciteam/rwheeler/scratch # Directory to install permanent files ... export INSTALLDIR=/sw/xe/chill # Install tools in seperate directories export AUTOCONFINSTALLDIR=$INSTALLDIR/autoconf export GCCINSTALLDIR=$INSTALLDIR/gcc export BOOSTINSTALLDIR=$INSTALLDIR/boost export ROSEINSTALLDIR=$INSTALLDIR/rose # Packages already installed export JAVA_HOME=/opt/java/jdk1.7.0_45 export PYTHON_INCDIR=/usr/include/python2.6 export PYTHON_LIBDIR=/usr/lib64 export PYTHON_VERSION=2.6 # Create toplevel build and installation directories if they do not already exist... if false; then mkdir -p $BUILDDIR mkdir -p $INSTALLDIR mkdir -p $INSTALLDIR/lib mkdir -p $INSTALLDIR/lib64 mkdir -p $INSTALLDIR/bin mkdir -p $AUTOCONFINSTALLDIR mkdir -p $GCCINSTALLDIR mkdir -p $BOOSTINSTALLDIR mkdir -p $ROSEINSTALLDIR fi export PATH=$INSTALLDIR/bin:$PATH # # Unpack needed items into the build area # if false; then cd $BUILDDIR for dir in autoconf/autoconf-2.69 gcc/gcc-4.4.7 boost/boost_1_45_0 rose/edg4x-rose chill/chill-0.2.1; do mkdir -p `dirname $dir`/build echo checking for `basename $dir` if [ ! -d $dir ]; then echo unpacking tar file `basename $dir`.tar.gz (cd `dirname $dir`; tar xzf $PACKAGEDIR/`basename $dir`.tar.gz) fi done fi # # Configure and build autoconf # if false; then echo Building autoconf cd $BUILDDIR/autoconf/build ../autoconf-2.69/configure --prefix=$AUTOCONFINSTALLDIR make -j`nproc` make -j`nproc` install fi export PATH=$AUTOCONFINSTALLDIR/bin:$PATH # # Configure and build gcc # if false; then echo Building gcc cd $BUILDDIR/gcc/build ../gcc-4.4.7/configure --prefix=$GCCINSTALLDIR make -j`nproc` make -j`nproc` install fi export PATH=$GCCINSTALLDIR/bin:$PATH export LD_LIBRARY_PATH=$GCCINSTALLDIR/lib64:$LD_LIBRARY_PATH export C_INCLUDE_PATH=$GCCINSTALLDIR/include:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH # # Configure and build boost # if false; then echo Building Boost export BOOSTLIBSNEEDED=date_time,filesystem,program_options,regex,system,thread,wave,iostreams cd $BUILDDIR/boost/boost_1_45_0 ./bootstrap.sh --prefix=$BOOSTINSTALLDIR --with-libraries=$BOOSTLIBSNEEDED ./bjam install --prefix=$BOOSTINSTALLDIR --build-dir=../build fi export LD_LIBRARY_PATH=$BOOSTINSTALLDIR/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=$BOOSTINSTALLDIR/include:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH # # Configure and build rose # if false; then echo Building Rose cd $BUILDDIR/rose/build ../edg4x-rose/configure --prefix=$ROSEINSTALLDIR --with-boost=$BOOSTINSTALLDIR make -j`nproc` make -j`nproc` install fi export LD_LIBRARY_PATH=$ROSEINSTALLDIR/lib:$JAVA_HOME/jre/lib/amd64/server:$LD_LIBRARY_PATH export C_INCLUDE_PATH=$ROSEINSTALLDIR/include:$ROSEINSTALLDIR/include/rose:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH # # Configure and build chill # if false; then echo Building CHiLL cd $BUILDDIR/chill/chill-0.2.1 ./configure --with-interface=python --prefix=$INSTALLDIR --with-rose=$ROSEINSTALLDIR --with-boost=$BOOSTINSTALLDIR make -j`nproc` make -j`nproc` install fi # # Test CHiLL # if false; then echo Testing CHiLL cd $BUILDDIR/chill/chill-0.2.1/test-chill ./runtests fi echo Remember to set your paths to... echo echo 'export PATH=$PATH:'$INSTALLDIR/bin echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'$ROSEINSTALLDIR/lib:$BOOSTINSTALLDIR/lib:$JAVA_HOME/jre/lib/amd64/server