公司有个c语言头文件转Asn.1的工具对宏定义很感冒,老是找不到一些复杂定义的宏值。正考虑用gcc来帮忙处理一下。
首先是一个递归copy被引用的头文件到工作目录下的脚本getAllHeader.sh
- #!/bin/bash
-
echo $1 | \
-
awk -F "/" '{
-
cmd = "\
-
if ! [ -e "$NF" ];\
-
then echo "$NF";\
-
cp "$0" ./;\
-
fi;\
-
";
-
system(cmd);
-
}'
-
cat $1 | \
-
grep \#include | \
-
#grep -v ^[\ \ ]*// | \
-
#grep -v ^[\ \ ]*/\* | \
-
#grep ^[\ \ ]\#include[\ \ ]*\".*\" | \
-
awk -F"\"" '{
-
cmd="find ./ -name "$2" -exec ./getAllHeader.sh {} \\; -quit";
-
system(cmd);
-
}'
第二个调用Gcc作处理pp.sh
- #!/bin/bash
-
./getAllHeader.sh $1
-
gcc -E -C -P $1 > result.h
就这么多啦!!
还有批处理功能和其它细节到公司针对实际情况再写!!!
阅读(546) | 评论(0) | 转发(0) |