1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunPRINT_GPU=false 4*4882a593SmuzhiyunPRINT_VERSION=false 5*4882a593SmuzhiyunPRINT_SUBVERSION=false 6*4882a593SmuzhiyunPRINT_PLATFORM=false 7*4882a593SmuzhiyunPRINT_FORMAT=false 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunPLATFORMS="only-cl|without-cl|vulkan|dummy|x11|wayland|gbm" 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun# Normalize platform variable 12*4882a593Smuzhiyunnormalize_platform() { 13*4882a593Smuzhiyun PLATFORM="$@" 14*4882a593Smuzhiyun for platform in $(echo $PLATFORMS|xargs -d'|'); do 15*4882a593Smuzhiyun echo $PLATFORM|grep -ow $platform|uniq 16*4882a593Smuzhiyun done 17*4882a593Smuzhiyun} 18*4882a593Smuzhiyun 19*4882a593Smuzhiyunparse_name() { 20*4882a593Smuzhiyun FILE="$@" 21*4882a593Smuzhiyun LIB=${FILE##*/} 22*4882a593Smuzhiyun LIB=${LIB%.so} 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun [ -z "$LIB" ] && return 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun GPU=$(echo $LIB|cut -sd'-' -f'2,3') 27*4882a593Smuzhiyun VERSION=$(echo $LIB|cut -sd'-' -f4) 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun PLATFORM=$(echo $LIB|grep -owE "$PLATFORMS"|paste -sd'-') 30*4882a593Smuzhiyun [ -z "$PLATFORM" ] && PLATFORM=x11 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun SUBVERSION=$(echo ${LIB%-$PLATFORM}|cut -sd'-' -f'5-') 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun # Fixup GBM platform 35*4882a593Smuzhiyun if readelf -s "$FILE" 2>/dev/null | grep -wq gbm_create_device; then 36*4882a593Smuzhiyun PLATFORM=${PLATFORM}-gbm 37*4882a593Smuzhiyun fi 38*4882a593Smuzhiyun PLATFORM=$(normalize_platform $PLATFORM|paste -sd'-') 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun if $PRINT_GPU;then 41*4882a593Smuzhiyun echo $GPU 42*4882a593Smuzhiyun elif $PRINT_VERSION;then 43*4882a593Smuzhiyun echo $VERSION 44*4882a593Smuzhiyun elif $PRINT_SUBVERSION;then 45*4882a593Smuzhiyun echo $SUBVERSION 46*4882a593Smuzhiyun elif $PRINT_PLATFORM;then 47*4882a593Smuzhiyun echo $PLATFORM 48*4882a593Smuzhiyun elif $PRINT_FORMAT;then 49*4882a593Smuzhiyun echo libmali-$GPU-$VERSION${SUBVERSION:+-$SUBVERSION}-$PLATFORM.so 50*4882a593Smuzhiyun else 51*4882a593Smuzhiyun echo name=$LIB 52*4882a593Smuzhiyun echo gpu=$GPU 53*4882a593Smuzhiyun echo version=$VERSION 54*4882a593Smuzhiyun echo subversion=$SUBVERSION 55*4882a593Smuzhiyun echo platform=$PLATFORM 56*4882a593Smuzhiyun fi 57*4882a593Smuzhiyun} 58*4882a593Smuzhiyun 59*4882a593Smuzhiyuncase "$1" in 60*4882a593Smuzhiyun --gpu) 61*4882a593Smuzhiyun PRINT_GPU=true 62*4882a593Smuzhiyun shift 63*4882a593Smuzhiyun ;; 64*4882a593Smuzhiyun --version) 65*4882a593Smuzhiyun PRINT_VERSION=true 66*4882a593Smuzhiyun shift 67*4882a593Smuzhiyun ;; 68*4882a593Smuzhiyun --subversion) 69*4882a593Smuzhiyun PRINT_SUBVERSION=true 70*4882a593Smuzhiyun shift 71*4882a593Smuzhiyun ;; 72*4882a593Smuzhiyun --platform) 73*4882a593Smuzhiyun PRINT_PLATFORM=true 74*4882a593Smuzhiyun shift 75*4882a593Smuzhiyun ;; 76*4882a593Smuzhiyun --format) 77*4882a593Smuzhiyun PRINT_FORMAT=true 78*4882a593Smuzhiyun shift 79*4882a593Smuzhiyun ;; 80*4882a593Smuzhiyunesac 81*4882a593Smuzhiyun 82*4882a593Smuzhiyunfor lib in "$@";do 83*4882a593Smuzhiyun parse_name $lib 84*4882a593Smuzhiyundone 85*4882a593Smuzhiyun 86*4882a593Smuzhiyunexit 0 87