#!/bin/echo Usage: . #----------------------------------------------------------------------------- # lofarinit.sh: Define the LOFAR environment for Bourne-like shells #----------------------------------------------------------------------------- # # Copyright (C) 2005 # ASTRON (Netherlands Institute for Radio Astronomy) # P.O.Box 2, 7990 AA Dwingeloo, The Netherlands # # 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 # (at your option) any later version. # # The LOFAR software suite is distributed in the hope that it will be useful, # 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. # # 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/>. # # $Id$ # 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). lfr_root=@prefix@ 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 # Use only the basename of the the lib lfr_libdir=`basename $lfr_libdir` # Get directory for Python modules relative to install prefix. lfr_pylibdir=@PYTHON_INSTALL_DIR@ lfr_pylibdir=${lfr_pylibdir#@CMAKE_INSTALL_PREFIX@/} # First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, and PYTHONPATH. # Take care that a possible . is preceeded by a backslash (for the later sed). if [ "$LOFARROOT" != "" ]; then lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'` for lfr_bin in bin sbin do lfr_bin="$lfr_path/$lfr_bin" PATH=`echo $PATH | sed -e "s%:$lfr_bin:%:%g" -e "s%^$lfr_bin:%%" -e "s%:$lfr_bin$%%" -e "s%^$lfr_bin$%%"` export PATH done lfr_lib="$lfr_path/$lfr_libdir" 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$%%"` 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 fi # Now define the new LOFARROOT (if possible) # Do it only if the bin directory exists. 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" else LOFARROOT=$lfr_nroot export LOFARROOT # Also strip root from the current paths (in case it is contained). lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'` for lfr_bin in bin sbin do lfr_bin="$lfr_path/$lfr_bin" PATH=`echo $PATH | sed -e "s%:$lfr_bin:%:%g" -e "s%^$lfr_bin:%%" -e "s%:$lfr_bin$%%" -e "s%^$lfr_bin$%%"` export PATH done lfr_lib="$lfr_path/$lfr_libdir" 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$%%"` 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 fi # Add to the paths if [ "$LOFARROOT" = "" -o ! -d $LOFARROOT ]; then echo "LOFARROOT is empty or does not point to a directory." else # Add the path to the standard paths. if [ "$PATH" = "" ]; then PATH=$LOFARROOT/sbin:$LOFARROOT/bin else PATH=$LOFARROOT/sbin:$LOFARROOT/bin:$PATH fi export PATH if [ "$LD_LIBRARY_PATH" = "" ]; then LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir else LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH fi export LD_LIBRARY_PATH if [ "$lfr_pylibdir" != "" ]; then lfr_pyt="$LOFARROOT/$lfr_pylibdir" if [ "$PYTHONPATH" = "" ]; then PYTHONPATH=$lfr_pyt else PYTHONPATH=$lfr_pyt:$PYTHONPATH fi export PYTHONPATH fi fi # Now define the new LOFARDATAROOT (if possible). # First try as data directory of the LOFAR install directory. lfr_path=`echo $LOFARROOT | sed -e 's%/installed.*%%'` if [ "$lfr_path" != "" -a -d $lfr_path/data ]; then LOFARDATAROOT=$lfr_path/data export LOFARDATAROOT else # Try it as the LOFARDATA directory (part of the source tree). lfr_path=`echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'` if [ "$lfr_path" != "" -a -d ${lfr_path}DATA ]; then LOFARDATAROOT=${lfr_path}DATA export LOFARDATAROOT else LOFARDATAROOT=/opt/lofar/data export LOFARDATAROOT fi fi # Clean up unset lfr_root lfr_nroot lfr_bin lfr_libdir lfr_lib lfr_pylibdir lfr_pyt lfr_path