diff --git a/LCS/Tools/src/Makefile.am b/LCS/Tools/src/Makefile.am index a41174f60e9a8b9fd0582ed1fe1713b8fb156725..01d2cd9cf3f182e6fee2bde7737231d95d62e4bd 100644 --- a/LCS/Tools/src/Makefile.am +++ b/LCS/Tools/src/Makefile.am @@ -42,7 +42,7 @@ dist_template_DATA = templates/header.cc_template \ # They have to be sourced; fill in the correct path. install-data-local: @for FIL in lofarinit.sh lofarinit.csh; do \ - sed -e "s%[@]prefix[@]%$(prefix)%" $(srcdir)/$$FIL.in > $$FIL.tmp; \ + sed -e "s%[@]prefix[@]%$(prefix)%" -e "s%[@]libdir[@]%$(libdir)%" $(srcdir)/$$FIL.in > $$FIL.tmp; \ echo "$(INSTALL_DATA) $$FIL.tmp $(prefix)/$$FIL"; \ $(INSTALL_DATA) $$FIL.tmp $(prefix)/$$FIL; \ $(RM) $$FIL.tmp; \ diff --git a/LCS/Tools/src/lofarinit.csh.in b/LCS/Tools/src/lofarinit.csh.in index bbf9534a827c1f74e5a86e3d0eea24de135b177e..2967242822459d750b55bfb926c73c5c58ecae07 100644 --- a/LCS/Tools/src/lofarinit.csh.in +++ b/LCS/Tools/src/lofarinit.csh.in @@ -26,59 +26,63 @@ # 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). -set a_root=@prefix@ # lfr_root=@CMAKE_INSTALL_PREFIX@ +set lfr_root=@prefix@ # lfr_root=@CMAKE_INSTALL_PREFIX@ +set lfr_libdir=@libdir@ + +# Use only the basename of the the lib +set lfr_libdir=`basename $lfr_libdir` # Get python version. -set a_pyv=`python -V |& cat --` -set a_pyvv=`echo $a_pyv | sed -e "s/Python \([0-9]\.[0-9]\).*/\1/"` +set lfr_pyv=`python -V |& cat --` +set lfr_pyvv=`echo $lfr_pyv | sed -e "s/Python \([0-9]\.[0-9]\).*/\1/"` # Fall-back: if python cannot be found assume Python 2.4 -if ("$a_pyv" == "$a_pyvv") then - set a_pyvv=2.4 +if ("$lfr_pyv" == "$lfr_pyvv") then + set lfr_pyvv=2.4 endif -# Only modify path variables if $a_root is an existing directory. -if (! (-d $a_root) ) then - echo "LOFAR root directory $a_root does not exist" +# Only modify path variables if $lfr_root is an existing directory. +if (! (-d $lfr_root) ) then + echo "LOFAR root directory $lfr_root does not exist" else # First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, PYTHONPATH. # Take care that a possible . is preceeded by a backslash. if ($?LOFARROOT) then - set a_path = `echo $LOFARROOT | sed -e 's/\./\\\./g'` + set lfr_path = `echo $LOFARROOT | sed -e 's/\./\\\./g'` if ($?PATH) then - foreach bintp (bin sbin) - set a_bin = "$a_path/$bintp" - setenv PATH `echo $PATH | sed -e "s%:${a_bin}:%:%g" -e "s%^${a_bin}:%%" -e "s%:${a_bin}"'$%%' -e "s%^${a_bin}"'$%%'` + foreach lfr_bin (bin sbin) + set lfr_bin = "$lfr_path/$lfr_bin" + setenv PATH `echo $PATH | sed -e "s%:${lfr_bin}:%:%g" -e "s%^${lfr_bin}:%%" -e "s%:${lfr_bin}"'$%%' -e "s%^${lfr_bin}"'$%%'` end endif if ($?LD_LIBRARY_PATH) then - set a_lib = "$a_path/lib" - setenv LD_LIBRARY_PATH `echo $LD_LIBRARY_PATH | sed -e "s%:${a_lib}:%:%g" -e "s%^${a_lib}:%%" -e "s%:${a_lib}"'$%%' -e "s%^${a_lib}"'$%%'` + set lfr_lib = "$lfr_path/$lfr_libdir" + setenv 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}"'$%%'` endif if ($?PYTHONPATH) then - set a_pyt = "$a_path/lib/python$a_pyvv/site-packages" - setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${a_pyt}:%:%g" -e "s%^${a_pyt}:%%" -e "s%:${a_pyt}"'$%%' -e "s%^${a_pyt}"'$%%'` + set lfr_pyt = "$lfr_path/$lfr_libdir/python$lfr_pyvv/site-packages" + setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${lfr_pyt}:%:%g" -e "s%^${lfr_pyt}:%%" -e "s%:${lfr_pyt}"'$%%' -e "s%^${lfr_pyt}"'$%%'` endif endif # Now define the new LOFARROOT - setenv LOFARROOT `cd >/dev/null $a_root; pwd` # make path absolute + setenv LOFARROOT `cd >/dev/null $lfr_root; pwd` # make path absolute # Also strip this path from the current paths (in case it is contained in # it). - set a_path = `echo $LOFARROOT | sed -e 's/\./\\\./g'` + set lfr_path = `echo $LOFARROOT | sed -e 's/\./\\\./g'` if ($?PATH) then - foreach bintp (bin sbin) - set a_bin = "$a_path/$bintp" - setenv PATH `echo $PATH | sed -e "s%:${a_bin}:%:%g" -e "s%^${a_bin}:%%" -e "s%:${a_bin}"'$%%' -e "s%^${a_bin}"'$%%'` + foreach lfr_bin (bin sbin) + set lfr_bin = "$lfr_path/$lfr_bin" + setenv PATH `echo $PATH | sed -e "s%:${lfr_bin}:%:%g" -e "s%^${lfr_bin}:%%" -e "s%:${lfr_bin}"'$%%' -e "s%^${lfr_bin}"'$%%'` end endif if ($?LD_LIBRARY_PATH) then - set a_lib = "$a_path/lib" - setenv LD_LIBRARY_PATH `echo $LD_LIBRARY_PATH | sed -e "s%:${a_lib}:%:%g" -e "s%^${a_lib}:%%" -e "s%:${a_lib}"'$%%' -e "s%^${a_lib}"'$%%'` + set lfr_lib = "$lfr_path/$lfr_libdir" + setenv 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}"'$%%'` endif if ($?PYTHONPATH) then - set a_pyt = "$a_path/lib/python$a_pyvv/site-packages" - setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${a_pyt}:%:%g" -e "s%^${a_pyt}:%%" -e "s%:${a_pyt}"'$%%' -e "s%^${a_pyt}"'$%%'` + set lfr_pyt = "$lfr_path/$lfr_libdir/python$lfr_pyvv/site-packages" + setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${lfr_pyt}:%:%g" -e "s%^${lfr_pyt}:%%" -e "s%:${lfr_pyt}"'$%%' -e "s%^${lfr_pyt}"'$%%'` endif # Add the path to the standard paths. @@ -88,37 +92,32 @@ else setenv PATH $LOFARROOT/bin:$LOFARROOT/sbin:$PATH endif if (! $?LD_LIBRARY_PATH) then - setenv LD_LIBRARY_PATH $LOFARROOT/lib + setenv LD_LIBRARY_PATH $LOFARROOT/$lfr_libdir else - setenv LD_LIBRARY_PATH $LOFARROOT/lib:$LD_LIBRARY_PATH + setenv LD_LIBRARY_PATH $LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH endif - set a_pyt = "$LOFARROOT/lib/python$a_pyvv/site-packages" + set lfr_pyt = "$LOFARROOT/$lfr_libdir/python$lfr_pyvv/site-packages" if (! $?PYTHONPATH) then - setenv PYTHONPATH $a_pyt + setenv PYTHONPATH $lfr_pyt else - setenv PYTHONPATH ${a_pyt}:$PYTHONPATH + setenv PYTHONPATH ${lfr_pyt}:$PYTHONPATH endif # Now define the new LOFARDATAROOT (if possible). # First try as data directory of the LOFAR install directory. - set data_path = `echo $LOFARROOT | sed -e 's%/installed.*%%'` - if ( "$data_path" != "" && -d $data_path/data ) then - setenv LOFARDATAROOT $data_path/data + set lfr_path = `echo $LOFARROOT | sed -e 's%/installed.*%%'` + if ( "$lfr_path" != "" && -d $lfr_path/data ) then + setenv LOFARDATAROOT $lfr_path/data else # Try it as the LOFARDATA directory (part of the source tree). - set data_path = `echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'` - if ( "$data_path" != "" && -d ${data_path}DATA ) then - setenv LOFARDATAROOT ${data_path}DATA + set lfr_path = `echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'` + if ( "$lfr_path" != "" && -d ${lfr_path}DATA ) then + setenv LOFARDATAROOT ${lfr_path}DATA else setenv LOFARDATAROOT /opt/lofar/data endif endif - # Create a .glishrc.post in the HOME directory to append - # the LOFAR libexec to the glish path. - if ( -f $HOME/.glishrc.post ) then - mv $HOME/.glishrc.post $HOME/.glishrc.post-old - endif - echo "system.path.include := [system.path.include, '$LOFARROOT/libexec/glish']" > $HOME/.glishrc.post - endif + +unset lfr_root lfr_bin lfr_libdir lfr_lib lfr_pyt lfr_pyv lfr_pyvv lfr_path diff --git a/LCS/Tools/src/lofarinit.sh.in b/LCS/Tools/src/lofarinit.sh.in index 50306a1f62e7ebf159fd04125ee383d7a7b034b5..9a0fea5915a3dbd7e67cbea6cb17abfe0bd529b2 100644 --- a/LCS/Tools/src/lofarinit.sh.in +++ b/LCS/Tools/src/lofarinit.sh.in @@ -27,29 +27,33 @@ # 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_root=@CMAKE_INSTALL_PREFIX@ +lfr_libdir=@libdir@ + +# Use only the basename of the the lib +lfr_libdir=`basename $lfr_libdir` # Get python version. -a_pyv=`python -V 2>&1` -a_pyvv=`echo $a_pyv | sed -e "s/Python \([0-9]\.[0-9]\).*/\1/"` +lfr_pyv=`python -V 2>&1` +lfr_pyvv=`echo $lfr_pyv | sed -e "s/Python \([0-9]\.[0-9]\).*/\1/"` # Fall-back: if python cannot be found assume Python 2.4 -if test "$a_pyv" = "$a_pyvv"; then - a_pyvv=2.4 +if test "$lfr_pyv" = "$lfr_pyvv"; then + lfr_pyvv=2.4 fi # 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 bintp in bin sbin + for lfr_bin in bin sbin do - lfr_bin="$lfr_path/$bintp" + 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/lib" + 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 - lfr_pyt="$lfr_path/lib/python$a_pyvv/site-packages" + lfr_pyt="$lfr_path/$lfr_libdir/python$lfr_pyvv/site-packages" PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"` export PYTHONPATH fi @@ -65,16 +69,16 @@ else # Also strip root from the current paths (in case it is contained). lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'` - for bintp in bin sbin + for lfr_bin in bin sbin do - lfr_bin="$lfr_path/$bintp" + 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/lib" + 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 - lfr_pyt="$lfr_path/lib/python$a_pyvv/site-packages" + lfr_pyt="$lfr_path/$lfr_libdir/python$lfr_pyvv/site-packages" PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"` export PYTHONPATH fi @@ -91,31 +95,31 @@ else fi export PATH if [ "$LD_LIBRARY_PATH" = "" ]; then - LD_LIBRARY_PATH=$LOFARROOT/lib + LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir else - LD_LIBRARY_PATH=$LOFARROOT/lib:$LD_LIBRARY_PATH + LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH fi export LD_LIBRARY_PATH - a_pyt=$LOFARROOT/lib/python$a_pyvv/site-packages + lfr_pyt=$LOFARROOT/$lfr_libdir/python$lfr_pyvv/site-packages if [ "$PYTHONPATH" = "" ]; then - PYTHONPATH=$a_pyt + PYTHONPATH=$lfr_pyt else - PYTHONPATH=$a_pyt:$PYTHONPATH + PYTHONPATH=$lfr_pyt:$PYTHONPATH fi export PYTHONPATH fi # Now define the new LOFARDATAROOT (if possible). # First try as data directory of the LOFAR install directory. -data_path=`echo $LOFARROOT | sed -e 's%/installed.*%%'` -if [ "$data_path" != "" -a -d $data_path/data ]; then - LOFARDATAROOT=$data_path/data +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). - data_path=`echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'` - if [ "$data_path" != "" -a -d ${data_path}DATA ]; then - LOFARDATAROOT=${data_path}DATA + 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 @@ -123,12 +127,5 @@ else fi fi -# Create a .glishrc.post in the HOME directory to append -# the LOFAR libexec to the glish path. -if [ -f $HOME/.glishrc.post ]; then - mv $HOME/.glishrc.post $HOME/.glishrc.post-old -fi -echo "system.path.include := [system.path.include, '$LOFARROOT/libexec/glish']" > $HOME/.glishrc.post - # Clean up -unset lfr_root lfr_nroot lfr_bin lfr_lib lfr_pyt a_pyv a_pyvv lfr_path +unset lfr_root lfr_nroot lfr_bin lfr_libdir lfr_lib lfr_pyt lfr_pyv lfr_pyvv lfr_path