Project:
Source Mage GNU/Linux
Code Location:
git://git.download.sourcemage.org/smgl/grimoire.gitmaster
glselect.function
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#--- ## glselect - select default libGL provider ## rewritten from smgl-gl_select ## ## this is run in FINAL and will always set the provider ## based on the final spell cast that calls this. ## If one wants to have this settable runtime then ## there's the smgl-gl_select tool to do so ## #--- function glselect(){ 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 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 rm_file in $file_list do rm -f $rm_file echo -n "." done echo -n "." echo "" message "Done." message "Setting up new GL provider $gl_lib..." case "$1" in 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/lib/xorg/modules/extensions/.[nvidia,ati,mesa]/lib{glx,dri}.so" message "/usr/include/GL/.[nvidia|ati|mesa]/gl{x,xext,ext}.h" message "" message "To:" message "/usr/lib/libGL.so" message "/usr/lib/xorg/modules/extensions/lib{glx,dri}.so" message "/usr/include/GL/gl{x,xext,ext}.h" message "" return 0 else message "Error ${INSTALL_ROOT}/usr/lib/libGL.so is not a symlink" message "unable to proceed!!!" message "Please recast:" message "mesalib, xorg-server and whatever GL driver you use." message "" message "If this continues to happen please file a bug." message "" return 1 fi }
