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