xref: /OK3568_Linux_fs/external/libmali/scripts/parse_name.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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