u-boot中makefile文件有几处不明白的地方,特来请教
smdk2410_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
这个规则的命令 @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0,
这里可理解为 @./mkconfig sbc2410x arm arm920t sbc2410x NULL s3c24x0
请问这个 ./mkconfig sbc2410x 是什么格式,到底是遵循什么的语法
譬如:
main.o : main.c defs.h
cc -c main.c
这个规则的命令cc ,是shell 的gcc命令,那上面那个规则的mkconfig对应这里的cc,mkconfig是一个可执行文件吗
在mkconfig文件中,遵循什么样的语法,是makefile的语法,还是linux的语法
while [ $# -gt 0 ] ; do
case "$1" in
--) shift ; break ;;
-a) shift ; APPEND=yes ;;
-n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;
*)break ;;
esac
done
像这样的符号,我都找不到出处,不知道都代表什么意思 回复【楼主位】jujumao1202
-----------------------------------------------------------------------
推荐一本书
UNIX.Shell编程24学时教程 Makefile遵循的规则是:
目标:依赖
命令
那么@./mkconfig sbc2410x arm arm920t sbc2410x NULL s3c24x0 这句就相当于在命令行下执行./mkconfig sbc2410x arm arm920t sbc2410x NULL s3c24x0
Makefile有一本书专门讲《GNU make 项目管理》,不过很晦涩难懂。建议不要一下子全搞懂,通读一下需要时再翻。 楼主先学shell编程吧 楼主提的问题比较基础。
建议楼主去读《跟我一起学makefile》,写的不错
好像是这个文档名。楼主搜一下。 推荐的资料都不错,好好学习,天天向上 点击此处下载 ourdev_542837.pdf(文件大小:1.12M) (原文件名:跟我一起写Makefile.pdf)
楼主 我要把你要看的资料传上来了 mkconfig是linux 下的shell脚本;
规则:@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
实际上是调用了: ./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0
在mkconfig脚本中,参数smdk2410 arm arm920t smdk2410 NULL s3c24x0分别对应$1, $2, ... , $6,
$#是参数个数
这部分是shell脚本,语法按照shell要求。
而Makefile文件是按照make语法(目标:依赖,规则)写的。
页:
[1]