一、代码风格自动检查
scripts/checkpatch.pl -f directory / *.c
Gerrit可以对kernel git增加此自动检查功能,保证代码提交质量。
二、代码风格自动整理
1、使用开源软件astyle自动整理
http://sourceforge.net/projects/astyle/files/astyle/
下载最新linux版本astyle ,编译:
cd astyle/build/gcc
make release
#!/bin/sh
#./astyle --style=linux --indent=force-tab=8 --align-pointer=name --max-code-length=90 --break-after-logical -p -H -U ./*.c ./*.h
./astyle --style=linux --indent=force-tab=8 --align-pointer=name -p -H -U ./*.c ./*.h
2、使用kernel脚本indent自动整理
参考:
http://blog.youkuaiyun.com/lixianlin/article/details/7820753
3、注释风格C99自动转换C89
// comment 修改成风格/* comment */
sed -i '/\/\//s/$/\*\//g' epl8802.c
sed -i 's/\/\//\/\*/g' epl8802.c.
四、Auto format Linux kernel coding style
#!/bin/sh
#./astyle --style=linux --indent=force-tab=8 --align-pointer=name --max-code-length=90 --break-after-logical -p -H -U ./*.c ./*.h
./astyle --style=linux --indent=force-tab=8 --align-pointer=name -p -H -U ./*.c ./*.h
files=$(find . -name "*.c")
for f in ${files}
do
mv ${f} ${f}.org
#./cconvert ${f}.org > ${f}
sed -i '/\/\//s/$/\*\//g' ${f}.org
sed -i 's/\/\//\/\*/g' ${f}.org
done