summaryrefslogtreecommitdiffstats
path: root/glselect.function
diff options
context:
space:
mode:
authorAndraž 'ruskie' Levstik2009-02-09 13:59:35 +0100
committerAndraž 'ruskie' Levstik2009-02-09 13:59:35 +0100
commit9319707a71efd2b0edb7cbc140d0ebfa022db362 (patch)
tree2a8f59d9c0688709e6342eebe2187a5e79fe9fc5 /glselect.function
parentf42c7122a9c5ce953a54780bc54ed0d573b314ba (diff)
glselect.function: updated to not need lists
Diffstat (limited to 'glselect.function')
-rwxr-xr-xglselect.function154
1 files changed, 68 insertions, 86 deletions
diff --git a/glselect.function b/glselect.function
index d075850043..6d5dcf77ff 100755
--- a/glselect.function
+++ b/glselect.function
@@ -10,116 +10,98 @@
#---
function glselect(){
- # get all available GL providers
- local gl_libs="$(ls -1 --color=none ${TRACK_ROOT}/usr/lib/*/libGL.so \
- | awk -F"/" '{print $4}' 2> /dev/null )"
- # where to store the filelists
- local gl_filelist_dir="$GRIMOIRE/.glselect"
- local orig_file new_file
+ local file_list="
+ /usr/lib/libGL.so
+ /usr/lib/libGL.so.*
+ /usr/lib/xorg/modules/extensions/libdri.la
+ /usr/lib/xorg/modules/extensions/libdri.so
+ /usr/lib/xorg/modules/extensions/libglx.la
+ /usr/lib/xorg/modules/extensions/libglx.so
+ /usr/include/GL/gl.h
+ /usr/include/GL/glext.h
+ /usr/include/GL/glx.h
+ /usr/include/GL/glxext.h
+ "
+ local dir_list=( \
+ "/usr/lib/ati" \
+ "/usr/lib/nvidia" \
+ "/usr/lib/mesa" \
+ "/usr/include/GL/ati" \
+ "/usr/include/GL/nvidia" \
+ "/usr/include/GL/mesa" \
+ "/usr/lib/xorg/modules/extensions/ati" \
+ "/usr/lib/xorg/modules/extensions/nvidia" \
+ "/usr/lib/xorg/modules/extensions/mesa" \
+ )
+ local rm_file orig_dir
local gl_lib=$1
- if ! grep -q "$gl_lib" <<< "$gl_libs"
- then
- message "Error $gl_lib is not a valid GL Library"
- exit 1
- fi
message "Selecting $gl_lib as the default system GL library"
if [[ -L ${INSTALL_ROOT}/usr/lib/libGL.so ]] ||
[[ ! -e ${INSTALL_ROOT}/usr/lib/libGL.so ]]
then
message "Cleaning all previous GL providers..."
- for orig_file in $(grep "/ati" $gl_filelist_dir/ati-filelist)
+ for rm_file in $file_list
do
- new_file=${orig_file/\/ati}
- rm -f $new_file
+ rm -f $rm_file
echo -n "."
done
echo -n "."
- orig_file=""
- for orig_file in $(grep "/mesa" $gl_filelist_dir/mesa-filelist)
- do
- new_file=${orig_file/\/mesa}
- rm -f $new_file
- echo -n "."
- done
- echo -n "."
- orig_file=""
- for orig_file in $(grep "/nvidia" $gl_filelist_dir/nvidia-filelist)
- do
- new_file=${orig_file/\/nvidia}
- rm -f $new_file
- echo -n "."
- done
- orig_file=""
echo ""
message "Done."
message "Setting up new GL provider $gl_lib..."
case "$1" in
- ati)
- for orig_file in $(grep "/mesa" $gl_filelist_dir/ati-filelist)
- do
- new_file=${orig_file/\/mesa}
- ln -sf ${INSTALL_ROOT}${orig_file} \
- ${INSTALL_ROOT}${new_file} 2>/dev/null
- echo -n "."
- done
- orig_file=""
- for orig_file in $(grep "/ati" $gl_filelist_dir/ati-filelist)
- do
- new_file=${orig_file/\/ati}
- ln -sf ${INSTALL_ROOT}${orig_file} \
- ${INSTALL_ROOT}${new_file} 2>/dev/null
- echo -n "."
- done
- ;;
- mesa)
- for orig_file in $(cat $gl_filelist_dir/mesa-filelist)
- do
- new_file=${orig_file/\/mesa}
- ln -sf ${INSTALL_ROOT}${orig_file} \
- ${INSTALL_ROOT}${new_file} 2>/dev/null
- echo -n "."
- done
- ;;
- nvidia)
- for orig_file in $(grep "/mesa" $gl_filelist_dir/nvidia-filelist)
- do
- new_file=${orig_file/\/mesa}
- ln -sf ${INSTALL_ROOT}${orig_file} \
- ${INSTALL_ROOT}${new_file} 2>/dev/null
- echo -n "."
- done
- orig_file=""
- for orig_file in $(grep "/nvidia" $gl_filelist_dir/nvidia-filelist)
- do
- new_file=${orig_file/\/nvidia}
- ln -sf ${INSTALL_ROOT}${orig_file} \
- ${INSTALL_ROOT}${new_file} 2>/dev/null
- echo -n "."
- done
- ;;
- *) message "Unknown secondary files so I only linked the libGL.so"
- for orig_file in $(cat $gl_filelist_dir/mesa-filelist)
- do
- new_file=${orig_file/\/mesa}
- ln -sf ${INSTALL_ROOT}${orig_file} \
- ${INSTALL_ROOT}${new_file} 2>/dev/null
- echo -n "."
- done
- ln -fs ${INSTALL_ROOT}/usr/lib/$gl_lib/libGL.so* \
- ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
- ;;
+ ati)
+ [[ -e ${INSTALL_ROOT}${dir_list[0]}/libGL.so ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[0]}/* \
+ ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
+ [[ -e ${INSTALL_ROOT}${dir_list[3]}/gl.h ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[3]}/* \
+ ${INSTALL_ROOT}/usr/include/GL/ 2>/dev/null
+ [[ -e ${INSTALL_ROOT}${dir_list[6]}/libglx.so ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[6]}/* \
+ ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/ 2>/dev/null
+ echo -n "."
+ ;;
+ mesa)
+ [[ -e ${INSTALL_ROOT}${dir_list[2]}/libGL.so ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[2]}/* \
+ ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
+ [[ -e ${INSTALL_ROOT}${dir_list[5]}/gl.h ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[5]}/* \
+ ${INSTALL_ROOT}/usr/include/GL/ 2>/dev/null
+ [[ -e ${INSTALL_ROOT}${dir_list[8]}/libglx.so ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[8]}/* \
+ ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/ 2>/dev/null
+ echo -n "."
+ ;;
+nvidia)
+ [[ -e ${INSTALL_ROOT}${dir_list[1]}/libGL.so ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[1]}/* \
+ ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
+ [[ -e ${INSTALL_ROOT}${dir_list[4]}/gl.h ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[4]}/* \
+ ${INSTALL_ROOT}/usr/include/GL/ 2>/dev/null
+ [[ -e ${INSTALL_ROOT}${dir_list[7]}/libglx.so ]] &&
+ ln -sf ${INSTALL_ROOT}${dir_list[7]}/* \
+ ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/ 2>/dev/null
+ echo -n "."
+ ;;
+ *) message "Unknown secondary files so I only linked the libGL.so"
+ ln -fs ${INSTALL_ROOT}/usr/lib/$gl_lib/libGL.so* \
+ ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
+ ;;
esac
echo -e "\nDone."
message "You can manage the libGL providers at runtime by using"
message "either smgl-gl_select or manually by symlinking the files"
message "from their respective directories i.e.:"
message "/usr/lib/[nvidia|ati|mesa]/libGL.so"
- message "/usr/xorg/modules/extensions/[nvidia,ati,mesa]/lib{glx,dri}.so"
+ message "/usr/lib/xorg/modules/extensions/[nvidia,ati,mesa]/lib{glx,dri}.so"
message "/usr/include/GL/[nvidia|mesa]/gl{x,xext,ext}.h"
message ""
message "To:"
message "/usr/lib/libGL.so"
- message "/usr/xorg/modules/extensions/lib{glx,dri}.so"
+ message "/usr/lib/xorg/modules/extensions/lib{glx,dri}.so"
message "/usr/include/GL/gl{x,xext,ext}.h"
message ""
return 0