Chinaunix首页 | 论坛 | 博客
  • 博客访问: 399647
  • 博文数量: 83
  • 博客积分: 2011
  • 博客等级: 大尉
  • 技术积分: 741
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-04 22:51
文章分类

全部博文(83)

文章存档

2009年(83)

我的朋友

分类: LINUX

2009-08-08 16:59:51

 对于
mini2440_config :       unconfig
        @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0

实际执行:
./mkconfig mini2440 arm arm920t mini2440 NULL s3c24x0
 
以下分析mkconfig作用:
1. 确定开发板名称
11 APPEND=no       # Default: Create new config file
 12 BOARD_NAME=""   # Name to print in make output
 13
 14 while [ $# -gt 0 ] ; do
 15         case "$1" in
 16         --) shift ; break ;;
 17         -a) shift ; APPEND=yes ;;
 18         -n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;
 19         *)  break ;;
 20         esac
 21 done
 22
 23 [ "${BOARD_NAME}" ] || BOARD_NAME="$1"

$1 = mini2440, 参数中没有 -a, -n 等参数,所以14-21行没有执行.

BOARD_NAME = mini2440

2.创建发平台/开板头文件连接

 

 30 #
 31 # Create link to architecture specific headers
 32 #
 33 if [ "$SRCTREE" != "$OBJTREE" ] ; then
 34         mkdir -p ${OBJTREE}/include
 35         mkdir -p ${OBJTREE}/include2
 36         cd ${OBJTREE}/include2
 37         rm -f asm
 38         ln -s ${SRCTREE}/include/asm-$2 asm
 39         LNPREFIX="../../include2/asm/"
 40         cd ../include
 41         rm -rf asm-$2
 42         rm -f asm
 43         mkdir asm-$2
 44         ln -s asm-$2 asm
 45 else
 46         cd ./include
 47         rm -f asm
 48         ln -s asm-$2 asm
 49 fi

if [ "$SRCTREE" != "$OBJTREE" ] 判断源代码与目标文件目录是否一样,否则删除

/include/asm ,建立asm 连接到asm-arm.

51 rm -f asm-$2/arch
 52
 53 if [ -z "$6" -o "$6" = "NULL" ] ; then
 54         ln -s ${LNPREFIX}arch-$3 asm-$2/arch
 55 else
 56         ln -s ${LNPREFIX}arch-$6 asm-$2/arch
 57 fi
 58
 59 if [ "$2" = "arm" ] ; then
 60         rm -f asm-$2/proc
 61         ln -s ${LNPREFIX}proc-armv asm-$2/proc
 62 fi

执行ln -s arch-s3c24x0 asm-arm-arch, ln -s proc-armv asm-arm/proc

3.创建顶层Makefile 包含的头文件include/config.mk

65 # Create include file for Make
 66 #
 67 echo "ARCH   = $2" >  config.mk
 68 echo "CPU    = $3" >> config.mk
 69 echo "BOARD  = $4" >> config.mk
 70
 71 [ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk
 72
 73 [ "$6" ] && [ "$6" != "NULL" ] && echo "SOC    = $6" >> config.mk

执行后config.mk 内容如下:

ARCH = arm, CPU = arm920t, BOADR = mini2440, SOC = s3c24x0

 

 # Create board specific header file
 77 #
 78 if [ "$APPEND" = "yes" ]        # Append to existing config file
 79 then
 80         echo >> config.h
 81 else
 82         > config.h              # Create new config file
 83 fi
 84 echo "/* Automatically generated - do not edit */" >>config.h
 85 echo "#include " >>config.h

执行后config内容如下:

/* Automatically generated - do not edit */

#include

 



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