xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/ssv6xxx/parser-conf.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/bash
2*4882a593Smuzhiyun# Script to convert defines in compiler option in to C's defines
3*4882a593Smuzhiyun# Should be executed in make file and it take ccflags-y as the
4*4882a593Smuzhiyun# compiler options. The content will be redirected to the first arguement.
5*4882a593Smuzhiyun
6*4882a593Smuzhiyuntemp=$1_temp
7*4882a593Smuzhiyun
8*4882a593Smuzhiyunecho "#ifndef __SSV_CONF_PARSER_H__" > $temp
9*4882a593Smuzhiyunecho "#define __SSV_CONF_PARSER_H__" >> $temp
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunecho "char const *conf_parser[] = {" >> $temp
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunfor flag in ${ccflags-y}; do
14*4882a593Smuzhiyun	if [[ "$flag" =~ ^-D.* ]]; then
15*4882a593Smuzhiyun		def=${flag:2}
16*4882a593Smuzhiyun        if [[ "$def" =~ .= ]]; then
17*4882a593Smuzhiyun            def_1=${def/\=/_}
18*4882a593Smuzhiyun            echo "\"$def_1\"," >> $temp
19*4882a593Smuzhiyun        else
20*4882a593Smuzhiyun		    echo "\"$def\"," >> $temp
21*4882a593Smuzhiyun        fi
22*4882a593Smuzhiyun	fi
23*4882a593Smuzhiyundone
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunecho "\"\"};" >> $temp
26*4882a593Smuzhiyun
27*4882a593Smuzhiyunecho "#endif // __SSV_CONF_PARSER_H__" >> $temp
28*4882a593Smuzhiyunif [ -f $1 ];
29*4882a593Smuzhiyunthen
30*4882a593Smuzhiyun	DIFF=$(diff $1 $temp)
31*4882a593Smuzhiyun	if [ "$DIFF" == "" ]; then
32*4882a593Smuzhiyun    		rm $temp
33*4882a593Smuzhiyun	else
34*4882a593Smuzhiyun    		mv $temp $1
35*4882a593Smuzhiyun	fi
36*4882a593Smuzhiyunelse
37*4882a593Smuzhiyun	mv $temp $1
38*4882a593Smuzhiyunfi
39