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