Skip to content
Snippets Groups Projects
Commit fe3e91e2 authored by Ger van Diepen's avatar Ger van Diepen
Browse files

bug 1421:

Use $libdir as subsitution in lofarinit to get the correct lib directory
parent a73ec1aa
No related branches found
No related tags found
No related merge requests found
...@@ -42,7 +42,7 @@ dist_template_DATA = templates/header.cc_template \ ...@@ -42,7 +42,7 @@ dist_template_DATA = templates/header.cc_template \
# They have to be sourced; fill in the correct path. # They have to be sourced; fill in the correct path.
install-data-local: install-data-local:
@for FIL in lofarinit.sh lofarinit.csh; do \ @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"; \ echo "$(INSTALL_DATA) $$FIL.tmp $(prefix)/$$FIL"; \
$(INSTALL_DATA) $$FIL.tmp $(prefix)/$$FIL; \ $(INSTALL_DATA) $$FIL.tmp $(prefix)/$$FIL; \
$(RM) $$FIL.tmp; \ $(RM) $$FIL.tmp; \
......
...@@ -26,59 +26,63 @@ ...@@ -26,59 +26,63 @@
# Define root here. # Define root here.
# This is a placeholder, so do NOT change the line. # This is a placeholder, so do NOT change the line.
# The actual value is filled in by make install (see Makefile.am). # 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. # Get python version.
set a_pyv=`python -V |& cat --` set lfr_pyv=`python -V |& cat --`
set a_pyvv=`echo $a_pyv | sed -e "s/Python \([0-9]\.[0-9]\).*/\1/"` 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 # Fall-back: if python cannot be found assume Python 2.4
if ("$a_pyv" == "$a_pyvv") then if ("$lfr_pyv" == "$lfr_pyvv") then
set a_pyvv=2.4 set lfr_pyvv=2.4
endif endif
# Only modify path variables if $a_root is an existing directory. # Only modify path variables if $lfr_root is an existing directory.
if (! (-d $a_root) ) then if (! (-d $lfr_root) ) then
echo "LOFAR root directory $a_root does not exist" echo "LOFAR root directory $lfr_root does not exist"
else else
# First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, PYTHONPATH. # First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, PYTHONPATH.
# Take care that a possible . is preceeded by a backslash. # Take care that a possible . is preceeded by a backslash.
if ($?LOFARROOT) then if ($?LOFARROOT) then
set a_path = `echo $LOFARROOT | sed -e 's/\./\\\./g'` set lfr_path = `echo $LOFARROOT | sed -e 's/\./\\\./g'`
if ($?PATH) then if ($?PATH) then
foreach bintp (bin sbin) foreach lfr_bin (bin sbin)
set a_bin = "$a_path/$bintp" set lfr_bin = "$lfr_path/$lfr_bin"
setenv PATH `echo $PATH | sed -e "s%:${a_bin}:%:%g" -e "s%^${a_bin}:%%" -e "s%:${a_bin}"'$%%' -e "s%^${a_bin}"'$%%'` setenv PATH `echo $PATH | sed -e "s%:${lfr_bin}:%:%g" -e "s%^${lfr_bin}:%%" -e "s%:${lfr_bin}"'$%%' -e "s%^${lfr_bin}"'$%%'`
end end
endif endif
if ($?LD_LIBRARY_PATH) then if ($?LD_LIBRARY_PATH) then
set a_lib = "$a_path/lib" set lfr_lib = "$lfr_path/$lfr_libdir"
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}"'$%%'` 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 endif
if ($?PYTHONPATH) then if ($?PYTHONPATH) then
set a_pyt = "$a_path/lib/python$a_pyvv/site-packages" set lfr_pyt = "$lfr_path/$lfr_libdir/python$lfr_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}"'$%%'` setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${lfr_pyt}:%:%g" -e "s%^${lfr_pyt}:%%" -e "s%:${lfr_pyt}"'$%%' -e "s%^${lfr_pyt}"'$%%'`
endif endif
endif endif
# Now define the new LOFARROOT # 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 # Also strip this path from the current paths (in case it is contained in
# it). # it).
set a_path = `echo $LOFARROOT | sed -e 's/\./\\\./g'` set lfr_path = `echo $LOFARROOT | sed -e 's/\./\\\./g'`
if ($?PATH) then if ($?PATH) then
foreach bintp (bin sbin) foreach lfr_bin (bin sbin)
set a_bin = "$a_path/$bintp" set lfr_bin = "$lfr_path/$lfr_bin"
setenv PATH `echo $PATH | sed -e "s%:${a_bin}:%:%g" -e "s%^${a_bin}:%%" -e "s%:${a_bin}"'$%%' -e "s%^${a_bin}"'$%%'` setenv PATH `echo $PATH | sed -e "s%:${lfr_bin}:%:%g" -e "s%^${lfr_bin}:%%" -e "s%:${lfr_bin}"'$%%' -e "s%^${lfr_bin}"'$%%'`
end end
endif endif
if ($?LD_LIBRARY_PATH) then if ($?LD_LIBRARY_PATH) then
set a_lib = "$a_path/lib" set lfr_lib = "$lfr_path/$lfr_libdir"
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}"'$%%'` 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 endif
if ($?PYTHONPATH) then if ($?PYTHONPATH) then
set a_pyt = "$a_path/lib/python$a_pyvv/site-packages" set lfr_pyt = "$lfr_path/$lfr_libdir/python$lfr_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}"'$%%'` setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${lfr_pyt}:%:%g" -e "s%^${lfr_pyt}:%%" -e "s%:${lfr_pyt}"'$%%' -e "s%^${lfr_pyt}"'$%%'`
endif endif
# Add the path to the standard paths. # Add the path to the standard paths.
...@@ -88,37 +92,32 @@ else ...@@ -88,37 +92,32 @@ else
setenv PATH $LOFARROOT/bin:$LOFARROOT/sbin:$PATH setenv PATH $LOFARROOT/bin:$LOFARROOT/sbin:$PATH
endif endif
if (! $?LD_LIBRARY_PATH) then if (! $?LD_LIBRARY_PATH) then
setenv LD_LIBRARY_PATH $LOFARROOT/lib setenv LD_LIBRARY_PATH $LOFARROOT/$lfr_libdir
else else
setenv LD_LIBRARY_PATH $LOFARROOT/lib:$LD_LIBRARY_PATH setenv LD_LIBRARY_PATH $LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH
endif 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 if (! $?PYTHONPATH) then
setenv PYTHONPATH $a_pyt setenv PYTHONPATH $lfr_pyt
else else
setenv PYTHONPATH ${a_pyt}:$PYTHONPATH setenv PYTHONPATH ${lfr_pyt}:$PYTHONPATH
endif endif
# Now define the new LOFARDATAROOT (if possible). # Now define the new LOFARDATAROOT (if possible).
# First try as data directory of the LOFAR install directory. # First try as data directory of the LOFAR install directory.
set data_path = `echo $LOFARROOT | sed -e 's%/installed.*%%'` set lfr_path = `echo $LOFARROOT | sed -e 's%/installed.*%%'`
if ( "$data_path" != "" && -d $data_path/data ) then if ( "$lfr_path" != "" && -d $lfr_path/data ) then
setenv LOFARDATAROOT $data_path/data setenv LOFARDATAROOT $lfr_path/data
else else
# Try it as the LOFARDATA directory (part of the source tree). # Try it as the LOFARDATA directory (part of the source tree).
set data_path = `echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'` set lfr_path = `echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'`
if ( "$data_path" != "" && -d ${data_path}DATA ) then if ( "$lfr_path" != "" && -d ${lfr_path}DATA ) then
setenv LOFARDATAROOT ${data_path}DATA setenv LOFARDATAROOT ${lfr_path}DATA
else else
setenv LOFARDATAROOT /opt/lofar/data setenv LOFARDATAROOT /opt/lofar/data
endif endif
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 endif
unset lfr_root lfr_bin lfr_libdir lfr_lib lfr_pyt lfr_pyv lfr_pyvv lfr_path
...@@ -27,29 +27,33 @@ ...@@ -27,29 +27,33 @@
# This is a placeholder, so do NOT change the line. # This is a placeholder, so do NOT change the line.
# The actual value is filled in by make install (see Makefile.am). # The actual value is filled in by make install (see Makefile.am).
lfr_root=@prefix@ # lfr_root=@CMAKE_INSTALL_PREFIX@ 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. # Get python version.
a_pyv=`python -V 2>&1` lfr_pyv=`python -V 2>&1`
a_pyvv=`echo $a_pyv | sed -e "s/Python \([0-9]\.[0-9]\).*/\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 # Fall-back: if python cannot be found assume Python 2.4
if test "$a_pyv" = "$a_pyvv"; then if test "$lfr_pyv" = "$lfr_pyvv"; then
a_pyvv=2.4 lfr_pyvv=2.4
fi fi
# First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, and PYTHONPATH. # 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). # Take care that a possible . is preceeded by a backslash (for the later sed).
if [ "$LOFARROOT" != "" ]; then if [ "$LOFARROOT" != "" ]; then
lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'` lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'`
for bintp in bin sbin for lfr_bin in bin sbin
do 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$%%"` PATH=`echo $PATH | sed -e "s%:$lfr_bin:%:%g" -e "s%^$lfr_bin:%%" -e "s%:$lfr_bin$%%" -e "s%^$lfr_bin$%%"`
export PATH export PATH
done 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$%%"` 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 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$%%"` PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"`
export PYTHONPATH export PYTHONPATH
fi fi
...@@ -65,16 +69,16 @@ else ...@@ -65,16 +69,16 @@ else
# Also strip root from the current paths (in case it is contained). # Also strip root from the current paths (in case it is contained).
lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'` lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'`
for bintp in bin sbin for lfr_bin in bin sbin
do 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$%%"` PATH=`echo $PATH | sed -e "s%:$lfr_bin:%:%g" -e "s%^$lfr_bin:%%" -e "s%:$lfr_bin$%%" -e "s%^$lfr_bin$%%"`
export PATH export PATH
done 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$%%"` 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 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$%%"` PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"`
export PYTHONPATH export PYTHONPATH
fi fi
...@@ -91,31 +95,31 @@ else ...@@ -91,31 +95,31 @@ else
fi fi
export PATH export PATH
if [ "$LD_LIBRARY_PATH" = "" ]; then if [ "$LD_LIBRARY_PATH" = "" ]; then
LD_LIBRARY_PATH=$LOFARROOT/lib LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir
else else
LD_LIBRARY_PATH=$LOFARROOT/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH
fi fi
export LD_LIBRARY_PATH 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 if [ "$PYTHONPATH" = "" ]; then
PYTHONPATH=$a_pyt PYTHONPATH=$lfr_pyt
else else
PYTHONPATH=$a_pyt:$PYTHONPATH PYTHONPATH=$lfr_pyt:$PYTHONPATH
fi fi
export PYTHONPATH export PYTHONPATH
fi fi
# Now define the new LOFARDATAROOT (if possible). # Now define the new LOFARDATAROOT (if possible).
# First try as data directory of the LOFAR install directory. # First try as data directory of the LOFAR install directory.
data_path=`echo $LOFARROOT | sed -e 's%/installed.*%%'` lfr_path=`echo $LOFARROOT | sed -e 's%/installed.*%%'`
if [ "$data_path" != "" -a -d $data_path/data ]; then if [ "$lfr_path" != "" -a -d $lfr_path/data ]; then
LOFARDATAROOT=$data_path/data LOFARDATAROOT=$lfr_path/data
export LOFARDATAROOT export LOFARDATAROOT
else else
# Try it as the LOFARDATA directory (part of the source tree). # Try it as the LOFARDATA directory (part of the source tree).
data_path=`echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'` lfr_path=`echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'`
if [ "$data_path" != "" -a -d ${data_path}DATA ]; then if [ "$lfr_path" != "" -a -d ${lfr_path}DATA ]; then
LOFARDATAROOT=${data_path}DATA LOFARDATAROOT=${lfr_path}DATA
export LOFARDATAROOT export LOFARDATAROOT
else else
LOFARDATAROOT=/opt/lofar/data LOFARDATAROOT=/opt/lofar/data
...@@ -123,12 +127,5 @@ else ...@@ -123,12 +127,5 @@ else
fi fi
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 # 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment