--- old/opengl.eselect-1.3.1 2016-01-23 16:44:04.133527800 +0000 +++ old/opengl.eselect-1.3.1 2016-01-23 20:55:29.780793403 +0000 @@ -138,6 +138,41 @@ "${PREFIX#${ROOT}}/${libdir}/xorg/modules" ) fi + + # Check if opengl implementation directory exists + if [[ ! -d ${PREFIX}/${libdir}/opengl/${gl_implem}/lib ]] ; then + continue + fi + + # Clear up existing symlinks from /usr/lib to /usr/lib/opengl/*/lib/lib{EGL*,GL*,OpenVG,OpenGL}.{la,a,so*} + pushd ${PREFIX#${ROOT}}/${libdir} &>/dev/null + local avail_gl_implem + for avail_gl_implem in ${avail_implems}; do + local avail_gl_libdir="${PREFIX#${ROOT}}/${libdir}/opengl/${avail_gl_implem}/lib" + [[ ! -d ${avail_gl_libdir} ]] && continue + + for libfile in lib{EGL*,GL*,OpenVG,OpenGL}.{la,a,so*} ; do + if [[ ! -f ${libfile} ]] || [[ ! -h ${libfile} ]] ; then + continue + fi + + local target_dir="$(dirname $( readlink -q ${libfile} ) )" + if [[ "${target_dir}" == "${avail_gl_libdir}" ]]; then + rm -f "${libfile}" &>/dev/null + fi + done + popd &>/dev/null + done + + # Create symlinks from /usr/lib to /usr/lib/opengl//lib/lib{EGL*,GL*,OpenVG,OpenGL}.{la,a,so*} + pushd ${PREFIX#${ROOT}}/${libdir}/opengl/${gl_implem}/lib/ &>/dev/null + for libfile in lib{EGL*,GL*,OpenVG,OpenGL}.{la,a,so*} ; do + [[ ! -f ${libfile} ]] && continue + + local target_lib="$(basename $( readlink -qf ${libfile} ) )" + ln -sf ${PREFIX#${ROOT}}/${libdir}/opengl/${gl_implem}/lib/${target_lib} ${PREFIX#${ROOT}}/${libdir}/${libfile} + done + popd &>/dev/null done store_config ${ENV_FILE} LDPATH "${ldpath}"