jujumao1202 发表于 2010-3-27 16:26:59

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

像这样的符号,我都找不到出处,不知道都代表什么意思

tnxn 发表于 2010-3-27 17:35:38

回复【楼主位】jujumao1202
-----------------------------------------------------------------------

推荐一本书
UNIX.Shell编程24学时教程

greatsnows 发表于 2010-3-27 20:05:27

Makefile遵循的规则是:

目标:依赖
    命令

那么@./mkconfig sbc2410x arm arm920t sbc2410x NULL s3c24x0 这句就相当于在命令行下执行./mkconfig sbc2410x arm arm920t sbc2410x NULL s3c24x0

Makefile有一本书专门讲《GNU make 项目管理》,不过很晦涩难懂。建议不要一下子全搞懂,通读一下需要时再翻。

Etual 发表于 2010-3-27 21:07:38

楼主先学shell编程吧

arm79 发表于 2010-3-28 22:23:04

楼主提的问题比较基础。
建议楼主去读《跟我一起学makefile》,写的不错
好像是这个文档名。楼主搜一下。

liouravr 发表于 2010-3-30 17:39:39

推荐的资料都不错,好好学习,天天向上

cnnbcza 发表于 2010-4-1 15:44:16

点击此处下载 ourdev_542837.pdf(文件大小:1.12M) (原文件名:跟我一起写Makefile.pdf)


楼主 我要把你要看的资料传上来了

baifeng 发表于 2010-10-27 14:14:47

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]
查看完整版本: u-boot中makefile文件有几处不明白的地方,特来请教