diff options
author | Andraž 'ruskie' Levstik | 2009-02-09 13:59:35 +0100 |
---|---|---|
committer | Andraž 'ruskie' Levstik | 2009-02-09 13:59:35 +0100 |
commit | 9319707a71efd2b0edb7cbc140d0ebfa022db362 (patch) | |
tree | 2a8f59d9c0688709e6342eebe2187a5e79fe9fc5 /glselect.function | |
parent | f42c7122a9c5ce953a54780bc54ed0d573b314ba (diff) |
glselect.function: updated to not need lists
Diffstat (limited to 'glselect.function')
-rwxr-xr-x | glselect.function | 154 |
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 |