Chinaunix首页 | 论坛 | 博客
  • 博客访问: 958446
  • 博文数量: 109
  • 博客积分: 554
  • 博客等级: 中士
  • 技术积分: 2577
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-04 12:49
文章分类

全部博文(109)

文章存档

2019年(5)

2016年(7)

2015年(9)

2014年(1)

2013年(71)

2012年(16)

分类: 嵌入式

2013-06-24 17:53:01

以下脚本是根据cscope为内核生成索引文件方法
不为drivers生成索引是该文件夹内容太多,以后可根据自己需求添加


  1. #!/bin/bash
  2. KERNEL=$PWD
  3. echo "kernel dir: $KERNEL"
  4. # find 用法
  5. # 只查找某个目录
  6. # find . -p
  7. # 想要忽略一个完整的目录树,应当使用-prune 而不是检查目录树中所有的文件。例如:要跳过
  8. # 'src/emacs' 目录和其中所有的文件和子目录,把其他找到的文件打印出来,应当这样:
  9. # find . -path './src/emacs' -prune -o -print
  10. # -o : 逻辑或简写 expr1 -or expr2
  11. # !expr: 逻辑非 -not expr
  12. # generate the cscope.files
  13. # 添加arch/arm文件夹,根据自己的cpu架构修改
  14. # 排除/scripts, /drivers, /Documentation, /tmp

  15. # 注意net/* 和直接net*写法
  16. find "$KERNEL" \
  17.     -path "$KERNEL/arch/*" ! -path "$KERNEL/arch/arm*" -prune -o \
  18.     -path "$KERNEL/arch/arm/mach-*" ! -path "$KERNEL/arch/arm/mach-at91*" \
  19.     ! -path "$KERNEL/arch/arm/mach-s3c2440*" -prune -o \
  20.     -path "$KERNEL/arch/arm/plat-*" ! -path "$KERNEL/arch/arm/plat-s3c24xx*" -prune -o\
  21.     -path "$KERNEL/tmp*" -prune -o \
  22.     -path "$KERNEL/Documentation*" -prune -o \
  23.     -path "$KERNEL/scripts*" -prune -o \
  24.     -path "$KERNEL/drivers/*" ! -path "$KERNEL/drivers/tty*" -prune -o \
  25.     -path "$KERNEL/sound*" -prune -o \
  26.     -path "$KERNEL/crypto*" -prune -o \
  27.     -path "$KERNEL/tools*" -prune -o \
  28.     -path "$KERNEL/fs*" -prune -o \
  29.     -path "$KERNEL/net*" -prune -o \
  30.     -path "$KERNEL/security*" -prune -o \
  31.     -path "$KERNEL/samples*" -prune -o \
  32.     -name "*.[chxsS]" -print > $KERNEL/gtags.files

  33. echo "Generated gtags.file."
  34. # cscope -bkq -i $KERNEL/cscope.files
  35. gtags -f $KERNEL/gtags.files
  36. #generate the cppcomplete
  37. # ctags -n -f cppcomplete.tags --fields=+ai --C++-types=+p * -L $KERNEL/cscope.files
  38. #Try setting the $CSCOPE_DB environment variable to point to a Cscope database you create, so you won


执行该脚本后内核目录会生成一下文件:
GPATH  GRTAGS  GSYMS  GTAGS
然后emacs就可以通过xgtag很简单在函数间跳转,也可以完成自动补全功能



阅读(4966) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~