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