mesa_vendor_select revision 970
5d92fff82718cd018f0b61a10b9ad4d2b8064c95rpluem#!/bin/ksh93
bf52162f2d05c1fb1a107c7ef108de73f739b3edpquerna#
4acb0cd5536553055c7c6996414cec00b0191e1djim# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
4acb0cd5536553055c7c6996414cec00b0191e1djim#
9f478b1ce1e6296ad7a244d9d2eaa6af79cfdfbfsf# Permission is hereby granted, free of charge, to any person obtaining a
9f478b1ce1e6296ad7a244d9d2eaa6af79cfdfbfsf# copy of this software and associated documentation files (the "Software"),
9f478b1ce1e6296ad7a244d9d2eaa6af79cfdfbfsf# to deal in the Software without restriction, including without limitation
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sf# the rights to use, copy, modify, merge, publish, distribute, sublicense,
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sf# and/or sell copies of the Software, and to permit persons to whom the
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sf# Software is furnished to do so, subject to the following conditions:
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrin#
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrin# The above copyright notice and this permission notice (including the next
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrin# paragraph) shall be included in all copies or substantial portions of the
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# Software.
33510984c759eb3da154ceb0db9b75fa0031d3b4sf#
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# DEALINGS IN THE SOFTWARE.
6b15044d54a096e6323ff1540f1a491e8de7622dsf#
6b15044d54a096e6323ff1540f1a491e8de7622dsf#
6b15044d54a096e6323ff1540f1a491e8de7622dsf
287b17b746df229d6211c624b8a3e1edda21cecdsfLINKDIR=/var/run/opengl
287b17b746df229d6211c624b8a3e1edda21cecdsf
287b17b746df229d6211c624b8a3e1edda21cecdsfPATH=/usr/bin:/usr/sbin
de2d327e43e0f17cdb64851beafecba96a0ed962sf
de2d327e43e0f17cdb64851beafecba96a0ed962sfARCH="$(uname -p)"
de2d327e43e0f17cdb64851beafecba96a0ed962sf
de2d327e43e0f17cdb64851beafecba96a0ed962sfcase "${ARCH}" in
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf sparc) DIR64="sparcv9" ;;
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf i386) DIR64="amd64" ;;
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf *) exit 1 ;; # Unknown architecture
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esfesac
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esfif [[ $# -eq 1 ]]; then
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf # If this is just a probe, identify ourself and leave.
b44565f239485673d9486068588a5fb3af008be9sf if [[ $1 == "identify" ]]; then
b44565f239485673d9486068588a5fb3af008be9sf if [[ "${ARCH}" == "i386" ]] ; then
b44565f239485673d9486068588a5fb3af008be9sf print "SUNWtext mesa"
b44565f239485673d9486068588a5fb3af008be9sf fi
bf99d597a964add76124fc185892e04733a02969sf # Already is the default fallback for all platforms
bf99d597a964add76124fc185892e04733a02969sf return 0
bf99d597a964add76124fc185892e04733a02969sf fi
876167dba234e2c7065895c87b77a8c57bdcf754sf # Build links under an alternate root if root=/path is passed
876167dba234e2c7065895c87b77a8c57bdcf754sf if [[ "$1" =~ root=.* ]] ; then
876167dba234e2c7065895c87b77a8c57bdcf754sf LINKDIR="${1#root=}${LINKDIR}"
9d4ce88bcd21b01619a31c53db11a51c2a1e9717sf fi
9d4ce88bcd21b01619a31c53db11a51c2a1e9717sffi
9d4ce88bcd21b01619a31c53db11a51c2a1e9717sf
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim# Make a directory. $1 is the pathname.
2792ea4d5c772a6bc19dece2e098b8125bf7184cjimfunction make_dir {
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim if [[ $# != 1 ]]; then
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim return
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin fi
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin if [[ ! -d $1 ]]; then
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin mkdir -p $1
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin fi
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin chmod 755 $1
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin}
b3e63c395d671f14a096d7e888dbfd2caf93a663sf
b3e63c395d671f14a096d7e888dbfd2caf93a663sf# Make a file link. $1 is the source path, $2 is the target path
b3e63c395d671f14a096d7e888dbfd2caf93a663sffunction make_link {
b3e63c395d671f14a096d7e888dbfd2caf93a663sf if [[ $# != 2 ]]; then
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf return
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf fi
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf if [[ -h $2 ]]; then
83c89da783ba8bdaef50ec1912443f7fad3556acjim rm -f $2
83c89da783ba8bdaef50ec1912443f7fad3556acjim fi
83c89da783ba8bdaef50ec1912443f7fad3556acjim ln -sf $1 $2
5152ceef718c8d39291557205cb2a98f436ce87frjung}
5152ceef718c8d39291557205cb2a98f436ce87frjung
4acb0cd5536553055c7c6996414cec00b0191e1djim# Create directories
9c67ffea79ab184351b5d554b57814e13285e758jimmake_dir ${LINKDIR}
9c67ffea79ab184351b5d554b57814e13285e758jimmake_dir ${LINKDIR}/lib
3eb3f27d2d93942bd4230c231aab4eb16a316384jimmake_dir ${LINKDIR}/lib/${DIR64}
3eb3f27d2d93942bd4230c231aab4eb16a316384jimmake_link ${DIR64} ${LINKDIR}/lib/64
3eb3f27d2d93942bd4230c231aab4eb16a316384jimmake_dir ${LINKDIR}/include
0a2424312d9f02479a38e96dcbb170a77c218852rjungmake_dir ${LINKDIR}/server
0a2424312d9f02479a38e96dcbb170a77c218852rjung
6137a8d5cdc62f1d4dad8cbf720feaa35f42a596covenerif [[ -d /usr/lib/mesa/modules/extensions/${DIR64} ]] ; then
6137a8d5cdc62f1d4dad8cbf720feaa35f42a596covener make_dir ${LINKDIR}/server/${DIR64}
6137a8d5cdc62f1d4dad8cbf720feaa35f42a596covenerfi
80a98c87d804ac7c0ea52d3f3b4676e559b49087igalic
80a98c87d804ac7c0ea52d3f3b4676e559b49087igalic# User libraries
80a98c87d804ac7c0ea52d3f3b4676e559b49087igalicmake_link ../../../../usr/lib/mesa/libGL.so.1 ${LINKDIR}/lib/libGL.so.1
925a6d92173ab96cdb0a8976c7aac13ef809e218trawickmake_link ../../../../../usr/lib/mesa/${DIR64}/libGL.so.1 \
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick ${LINKDIR}/lib/${DIR64}/libGL.so.1
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick# Server modules
e19d3a1e487aa73e0850658d3773f748aefba7f7sfmake_link ../../../../usr/lib/mesa/modules/extensions/libglx.so \
e19d3a1e487aa73e0850658d3773f748aefba7f7sf ${LINKDIR}/server/libglx.so
e19d3a1e487aa73e0850658d3773f748aefba7f7sfif [[ -d /usr/lib/mesa/modules/extensions/${DIR64} ]] ; then
e19d3a1e487aa73e0850658d3773f748aefba7f7sf make_link \
e19d3a1e487aa73e0850658d3773f748aefba7f7sf ../../../../../usr/lib/mesa/modules/extensions/${DIR64}/libglx.so \
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esf ${LINKDIR}/server/${DIR64}/libglx.so
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esffi
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esf
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esf# Includes
b1677ce80314e41b74bdd8d50c13ac159f3c09f4sfmake_link ../../../../usr/include/mesa/gl.h ${LINKDIR}/include/gl.h
b1677ce80314e41b74bdd8d50c13ac159f3c09f4sfmake_link ../../../../usr/include/mesa/glext.h ${LINKDIR}/include/glext.h
b1677ce80314e41b74bdd8d50c13ac159f3c09f4sfmake_link ../../../../usr/include/mesa/glx.h ${LINKDIR}/include/glx.h
c447f5d2f2a21e8f2df49a113c4637b7f59a6feftrawickmake_link ../../../../usr/include/mesa/glxext.h ${LINKDIR}/include/glxext.h
c447f5d2f2a21e8f2df49a113c4637b7f59a6feftrawick
31eeb74b832eea054c7a42081c1afdeccd987e5etrawickreturn 0
31eeb74b832eea054c7a42081c1afdeccd987e5etrawick