Skip to content
Snippets Groups Projects
lofarinit.sh.in 5.04 KiB
Newer Older
Ger van Diepen's avatar
Ger van Diepen committed
#!/bin/echo Usage: .
#-----------------------------------------------------------------------------
# lofarinit.sh: Define the LOFAR environment for Bourne-like shells
#-----------------------------------------------------------------------------
#
# Copyright (C) 2005
Ger van Diepen's avatar
Ger van Diepen committed
# ASTRON (Netherlands Institute for Radio Astronomy)
# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
Ger van Diepen's avatar
Ger van Diepen committed
#
Ger van Diepen's avatar
Ger van Diepen committed
# This file is part of the LOFAR software suite.
# The LOFAR software suite is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
Ger van Diepen's avatar
Ger van Diepen committed
# (at your option) any later version.
#
Ger van Diepen's avatar
Ger van Diepen committed
# The LOFAR software suite is distributed in the hope that it will be useful,
Ger van Diepen's avatar
Ger van Diepen committed
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
Ger van Diepen's avatar
Ger van Diepen committed
# You should have received a copy of the GNU General Public License along
# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
Ger van Diepen's avatar
Ger van Diepen committed
#
# $Id$

Ger van Diepen's avatar
Ger van Diepen committed
# Define root here.
# This is a placeholder, so do NOT change the line.
# The actual value is filled in by make install (see Makefile.am).
Ger van Diepen's avatar
Ger van Diepen committed
lfr_libdir=@libdir@

# CMake does not define libdir, so we need to do things differently
if test "$lfr_libdir" = ""; then
  lfr_libdir=@CMAKE_INSTALL_PREFIX@/@LOFAR_LIBDIR@
fi

Ger van Diepen's avatar
Ger van Diepen committed
# Use only the basename of the the lib
lfr_libdir=`basename $lfr_libdir`
Ger van Diepen's avatar
Ger van Diepen committed

# Get directory for Python modules relative to install prefix.
lfr_pylibdir=@PYTHON_INSTALL_DIR@
lfr_pylibdir=${lfr_pylibdir#@CMAKE_INSTALL_PREFIX@/}
Ger van Diepen's avatar
Ger van Diepen committed

# First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, and PYTHONPATH.
Ger van Diepen's avatar
Ger van Diepen committed
# Take care that a possible . is preceeded by a backslash (for the later sed).
Ger van Diepen's avatar
Ger van Diepen committed
if [ "$LOFARROOT" != "" ]; then
Ger van Diepen's avatar
Ger van Diepen committed
    lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'`
Ger van Diepen's avatar
Ger van Diepen committed
    for lfr_bin in bin sbin
Ger van Diepen's avatar
Ger van Diepen committed
    do
Ger van Diepen's avatar
Ger van Diepen committed
      lfr_bin="$lfr_path/$lfr_bin"
Ger van Diepen's avatar
Ger van Diepen committed
      PATH=`echo $PATH | sed -e "s%:$lfr_bin:%:%g" -e "s%^$lfr_bin:%%"  -e "s%:$lfr_bin$%%" -e "s%^$lfr_bin$%%"`
      export PATH
    done
Ger van Diepen's avatar
Ger van Diepen committed
    lfr_lib="$lfr_path/$lfr_libdir"
Ger van Diepen's avatar
Ger van Diepen committed
    LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | sed -e "s%:$lfr_lib:%:%g" -e "s%^$lfr_lib:%%"  -e "s%:$lfr_lib$%%" -e "s%^$lfr_lib$%%"`
Ger van Diepen's avatar
Ger van Diepen committed
    export LD_LIBRARY_PATH
    if [ "$lfr_pylibdir" != "" ]; then
      lfr_pyt="$lfr_path/$lfr_pylibdir"
      PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%"  -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"`
      export PYTHONPATH
    fi
Ger van Diepen's avatar
Ger van Diepen committed
fi

Ger van Diepen's avatar
Ger van Diepen committed
# Now define the new LOFARROOT (if possible)
# Do it only if the bin directory exists.
Ger van Diepen's avatar
Ger van Diepen committed
lfr_nroot=`cd $lfr_root > /dev/null; pwd`      # make path absolute
if [ "$lfr_nroot" = "" -o ! -d $lfr_nroot ]; then
    echo "LOFAR root directory $lfr_nroot does not exist; keeping old LOFARROOT $LOFARROOT"
Ger van Diepen's avatar
Ger van Diepen committed
else
Ger van Diepen's avatar
Ger van Diepen committed
    LOFARROOT=$lfr_nroot
Ger van Diepen's avatar
Ger van Diepen committed
    export LOFARROOT
Ger van Diepen's avatar
Ger van Diepen committed

Ger van Diepen's avatar
Ger van Diepen committed
    # Also strip root from the current paths (in case it is contained).
Ger van Diepen's avatar
Ger van Diepen committed
    lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'`
Ger van Diepen's avatar
Ger van Diepen committed
    for lfr_bin in bin sbin
Ger van Diepen's avatar
Ger van Diepen committed
    do
Ger van Diepen's avatar
Ger van Diepen committed
      lfr_bin="$lfr_path/$lfr_bin"
Ger van Diepen's avatar
Ger van Diepen committed
      PATH=`echo $PATH | sed -e "s%:$lfr_bin:%:%g" -e "s%^$lfr_bin:%%"  -e "s%:$lfr_bin$%%" -e "s%^$lfr_bin$%%"`
      export PATH
    done
Ger van Diepen's avatar
Ger van Diepen committed
    lfr_lib="$lfr_path/$lfr_libdir"
Ger van Diepen's avatar
Ger van Diepen committed
    LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | sed -e "s%:$lfr_lib:%:%g" -e "s%^$lfr_lib:%%"  -e "s%:$lfr_lib$%%" -e "s%^$lfr_lib$%%"`
Ger van Diepen's avatar
Ger van Diepen committed
    export LD_LIBRARY_PATH
    if [ "$lfr_pylibdir" != "" ]; then
      lfr_pyt="$lfr_path/$lfr_pylibdir"
      PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%"  -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"`
      export PYTHONPATH
    fi
Ger van Diepen's avatar
Ger van Diepen committed
fi
Ger van Diepen's avatar
Ger van Diepen committed

# Add to the paths
if [ "$LOFARROOT" = "" -o ! -d $LOFARROOT ]; then
    echo "LOFARROOT is empty or does not point to a directory."
Ger van Diepen's avatar
Ger van Diepen committed
else
Ger van Diepen's avatar
Ger van Diepen committed
    # Add the path to the standard paths.
    if [ "$PATH" = "" ]; then
        PATH=$LOFARROOT/sbin:$LOFARROOT/bin
Ger van Diepen's avatar
Ger van Diepen committed
    else
        PATH=$LOFARROOT/sbin:$LOFARROOT/bin:$PATH
Ger van Diepen's avatar
Ger van Diepen committed
    fi
    export PATH
    if [ "$LD_LIBRARY_PATH" = "" ]; then
Ger van Diepen's avatar
Ger van Diepen committed
        LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir
Ger van Diepen's avatar
Ger van Diepen committed
    else
Ger van Diepen's avatar
Ger van Diepen committed
        LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH
Ger van Diepen's avatar
Ger van Diepen committed
    fi
    export LD_LIBRARY_PATH
    if [ "$lfr_pylibdir" != "" ]; then
      lfr_pyt="$LOFARROOT/$lfr_pylibdir"
      if [ "$PYTHONPATH" = "" ]; then
Ger van Diepen's avatar
Ger van Diepen committed
        PYTHONPATH=$lfr_pyt
Ger van Diepen's avatar
Ger van Diepen committed
        PYTHONPATH=$lfr_pyt:$PYTHONPATH
Ger van Diepen's avatar
Ger van Diepen committed
    fi
Ger van Diepen's avatar
Ger van Diepen committed
fi
Arthur Coolen's avatar
Arthur Coolen committed

Ger van Diepen's avatar
Ger van Diepen committed
# Now define the new LOFARDATAROOT (if possible).
# First try as data directory of the LOFAR install directory.
Ger van Diepen's avatar
Ger van Diepen committed
lfr_path=`echo $LOFARROOT | sed -e 's%/installed.*%%'`
if [ "$lfr_path" != ""  -a  -d $lfr_path/data ]; then
    LOFARDATAROOT=$lfr_path/data
Arthur Coolen's avatar
Arthur Coolen committed
    export LOFARDATAROOT
Ger van Diepen's avatar
Ger van Diepen committed
else
    # Try it as the LOFARDATA directory (part of the source tree).
Ger van Diepen's avatar
Ger van Diepen committed
    lfr_path=`echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'`
    if [ "$lfr_path" != ""  -a  -d ${lfr_path}DATA ]; then
        LOFARDATAROOT=${lfr_path}DATA
Ger van Diepen's avatar
Ger van Diepen committed
        export LOFARDATAROOT
Ger van Diepen's avatar
Ger van Diepen committed
    else
        LOFARDATAROOT=/opt/lofar/data
        export LOFARDATAROOT
Ger van Diepen's avatar
Ger van Diepen committed
    fi
Ger van Diepen's avatar
Ger van Diepen committed
fi
Ger van Diepen's avatar
Ger van Diepen committed

# Clean up
unset lfr_root lfr_nroot lfr_bin lfr_libdir lfr_lib lfr_pylibdir lfr_pyt lfr_path