Linux内核源代码可以使用make tags
来获取编辑器的标记。在脚本/tags.sh中,line7和line8说“使用以下环境变量:ARCH
、SUBARCH
、SRCARCH
、srctree
、src
、obj
”,我想问这些变量的含义是什么?
我已经读过这篇文章了,但它只提到了两个vairables,SRCARCH
和SUBARCH
。
发布于 2018-06-13 12:49:16
应该使用的变量
接下来的变量可以传递给tags.sh
(实际上您应该将它们传递给make tags cscope
命令,Makefile将为您将它们传递给tags.sh
)。
ARCH
:要索引的体系结构。只需在内核源代码树中执行ls -l arch/
,就可以看到所有的体系结构列表。SUBARCH
:这个变量的含义取决于您的体系结构:- if `ARCH=arm`, `SUBARCH` will be used to determine `arch/arm/mach-*` and `arch/arm/plat-*` directories, and these directories will be indexed
- if `ARCH=um`, use `SUBARCH` to specify which architecture you actually want to use in your User-Mode Linux (like `SUBARCH=arm` or `SUBARCH=x86`)
- for the rest of architectures, you can omit this variable
ALLSOURCE_ARCHS
:使用它来索引多个体系结构。比如ALLSOURCE_ARCHS="x86 mips arm"
或者ALLSOURCE_ARCHS="all"
。如果您只想索引一个体系结构,请省略这个变量,而使用ARCH
。COMPILED_SOURCE
:如果希望只对实际编译的源文件进行索引,则将此变量设置为1。如果要索引所有源文件,请省略设置此变量。O=
(这实际上是Makefile参数):使用绝对路径(如果您想要加载在内核目录之外创建的cscope/ctag索引文件,例如用于开发出树的内核模块,则非常有用)。如果您想使用相对路径(即只在内核dir中进行开发),只需省略该参数即可。你不需要触摸的变量
SRCARCH
:从Makefile中的ARCH
变量设置,然后传递给脚本。您可能不需要处理它,只需正确设置ARCH
变量即可。srctree
:内核源树路径。如果您通过make cscope tags
使用此脚本,这个变量将自动从Makefile传递。src
和obj
变量:这些变量不再被scripts/tags.sh
使用。它被替换为使用KBUILD_SRC
变量,当您向它提供O=...
参数时,它是自动从Makefile提供的。用法
基本上,我建议只通过scripts/tags.sh
调用make
。示例:
$ make O=. ARCH=arm SUBARCH=omap2 COMPILED_SOURCE=1 cscope tags
或
$ make ARCH=x86 cscope tags
https://stackoverflow.com/questions/50791012
复制