sun_vendor_select revision 1152
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce#!/bin/ksh93
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce#
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce#
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Permission is hereby granted, free of charge, to any person obtaining a
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# copy of this software and associated documentation files (the "Software"),
3970098dcd2a7122541667b4b56cea8abce8ccf2Mark Andrews# to deal in the Software without restriction, including without limitation
fcc9f7f86c2fa2ceb8a5c16dc934fea7fa6887f2Andreas Gustafsson# the rights to use, copy, modify, merge, publish, distribute, sublicense,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# and/or sell copies of the Software, and to permit persons to whom the
fcc9f7f86c2fa2ceb8a5c16dc934fea7fa6887f2Andreas Gustafsson# Software is furnished to do so, subject to the following conditions:
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce#
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# The above copyright notice and this permission notice (including the next
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# paragraph) shall be included in all copies or substantial portions of the
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Software.
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce#
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
fcc9f7f86c2fa2ceb8a5c16dc934fea7fa6887f2Andreas Gustafsson# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# DEALINGS IN THE SOFTWARE.
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce#
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce#
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric LuceLINKDIR=/system/volatile/opengl
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
3970098dcd2a7122541667b4b56cea8abce8ccf2Mark AndrewsPATH=/usr/bin:/usr/sbin
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Do nothing if SUNWglrt is not present
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luceif [[ ! -d /usr/lib/SUNWgl ]] ; then
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce return 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucefi
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric LuceARCH="$(uname -p)"
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
fcc9f7f86c2fa2ceb8a5c16dc934fea7fa6887f2Andreas Gustafssoncase "${ARCH}" in
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce sparc) DIR64="sparcv9" ;;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce *) return 0 ;; # Unsupported architecture
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luceesac
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# If this is just a probe, identify ourself and leave.
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luceif [[ $# -eq 1 ]]; then
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce if [[ $1 = "identify" ]]; then
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce # Claim to support whatever the console fb is
3970098dcd2a7122541667b4b56cea8abce8ccf2Mark Andrews print "$(constype) sun"
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce return 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce fi
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucefi
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Make a directory. $1 is the pathname.
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucefunction make_dir {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce if [[ $# != 1 ]]; then
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce return
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce fi
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce if [[ ! -d $1 ]]; then
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce mkdir -p $1
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce fi
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce chmod 755 $1
3970098dcd2a7122541667b4b56cea8abce8ccf2Mark Andrews}
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Make a file link. $1 is the source path, $2 is the target path
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucefunction make_link {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce if [[ $# != 2 ]]; then
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce return
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce fi
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce if [[ -h $2 ]]; then
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce rm -f $2
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce fi
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce ln -sf $1 $2
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce}
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Create directories
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_dir ${LINKDIR}
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_dir ${LINKDIR}/lib
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_dir ${LINKDIR}/lib/${DIR64}
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_link ${DIR64} ${LINKDIR}/lib/64
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_dir ${LINKDIR}/include
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_dir ${LINKDIR}/server
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# User libraries
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_link /usr/lib/SUNWgl/libGL.so.1 ${LINKDIR}/lib/libGL.so.1
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_link /usr/lib/SUNWgl/${DIR64}/libGL.so.1 ${LINKDIR}/lib/${DIR64}/libGL.so.1
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Server libraries
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_link /usr/lib/xorg/modules/extensions/SUNWgl/libglx.so ${LINKDIR}/server/libglx.so
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce# Includes
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_link /usr/include/SUNWgl/gl.h ${LINKDIR}/include/gl.h
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_link /usr/include/SUNWgl/glext.h ${LINKDIR}/include/glext.h
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_link /usr/include/SUNWgl/glx.h ${LINKDIR}/include/glx.h
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucemake_link /usr/include/SUNWgl/glxext.h ${LINKDIR}/include/glxext.h
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Lucereturn 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce