Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49490
  • 博文数量: 10
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 89
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-15 17:48
文章分类

全部博文(10)

文章存档

2014年(5)

2013年(5)

我的朋友

分类: 嵌入式

2014-02-25 18:08:52

MKCONFIG := $(SRCTREE)/mkconfig    源码树下面有一个mkconfig文件

smdk2410_config : unconfig
 @ $(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0             $ @ :以("$1""$2"...)的形式保存所有输入的命令行参数
                                                                                                                                   @@表示在make时不输出make的信息(类似Windows下的echooff)。
$@表示目标    mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0 做替换
                                 $0           $1         $2
$(SRCTREE)/mkconfig
while [ $# -gt 0 ] ; do                分析传进来的第一个参数
 case "$1" in
 --) shift ; break ;;
 -a) shift ; APPEND=yes ;;
 -n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;
 *) break ;;
 esac
done

[ "${BOARD_NAME}" ] || BOARD_NAME="$1"  如果条件成立,即已经定义了一个名字
BOARD_NAME = smdk2410 


[ $# -lt 4 ] && exit 1    表示它的参数,如果小于4大于6都会退出         $ # :保存程序命令行参数的数目
[ $# -gt 6 ] && exit 1

OBJTREE := $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR)) 如果定义了BUILD_DIR就等于BUILD_DIR 若未定义就等于当前目录
SRCTREE := $(CURDIR)
if [ "$SRCTREE" != "$OBJTREE" ]查看SRCTREE和OBJTREE是否相等,在Makefile中查看,即是否当前目录就是源码目录

 cd ./include
 rm -f asm
 ln -s asm-$2 asm        ln -s asm-arm asm  建立一个链接文件指向一个链接文件
例:#include----->#include


if [ -z "$6" -o "$6" = "NULL" ]  判断第六个参数是否为空
    ln -s ${LNPREFIX}arch-$3 asm-$2/arch   ln -s arch-s3c24x0  asm-arm/arch 
    ln -s ${LNPREFIX}proc-armv asm-$2/proc

#
# Create include file for Make
#
echo "ARCH = $2" > config.mk        >表示新建一个文件
echo "CPU = $3" >> config.mk        >>把内容追加过去
echo "BOARD = $4" >> config.mk
内容 ARCH = arm
        CPU =     arm920t 

[ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk   第5个参数存在且不为空,输出VENDOR
[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC = $6" >> config.mk        
在include目录下面输出cat config.mk则输出硬件信息

#
# Create board specific header file
#
if [ "$APPEND" = "yes" ] # Append to existing config file
then
 echo >> config.h
else
 > config.h # Create new config file
fi
echo "/* Automatically generated - do not edit */" >>config.h
echo "#include " >>config.h
config.h的内容:
/* Automatically generated - do not edit */
#include

include目录下含有config.h
/include/configs/smdk2410.h  



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