Helix移植(二)理解Helix构建系统

Helix采用了Ribosome工具。这是一组用Python语言写的构建工具,它提供接口从CVS库获取代码,并编译程序。Ribosome包含两个主要工具:

  • build 用于解析目标之间的依赖,获取源代码,并运行命令以正确的次序编译源代码
  • umake 一个跨平台的Makefile产生器,它可以独立于build使用,在build中会调用umake。

要使用build工具,首先需要设置环境变量BUILD_ROOT为build目录,Build系统命令都位于build/bin子目录下,所以需要将build/bin加入PATH环境变量。

 

7. 设置BUILD_ROOT. (假设目录为$HOME/helix/build)

export BUILD_ROOT=$HOME/helix/build

export PATH=$BUILD_ROOT/bin:$PATH

8. 设置SYSTEM_ID环境变量

    因为Helix支持多种平台,SYSTEM_ID用来告诉构建系统您所构建的目标平台,您可以进入$BUILD_ROOT/umakecf下查看cf文件,

ads12-arm.cf

aix-4.2-powerpc.cf

aix-4.3-powerpc.cf

android-1.0-arm.eabi-generic.cf

android-cupcake-arm.eabi.cf

...

 

wince-500-ppc.cf

win.cf

win-msvc.cf

win-nmake.cf

win-versioning.cf

wsdl.cf

    使用编辑器打开cf文件,可以看到里面主要定义了编译器、编译选项及宏定义,去掉.cf后缀,就是所要设置的SYSTEM_ID了。因为我是在Moto Linux平台上做移植,所以SYSTEM_ID为linux-2.2-libc6-armv5te-cross-gcc3.3-iwmmxt-softfloat。(注:虽然从名字上看是使用于linux2.2内核的,实际上和linux内核版本没有很大关系,Moto linux是2.4版本的内核)

export SYSTEM_ID=linux-2.2-libc6-armv5te-cross-gcc3.3-iwmmxt-softfloat

9. 创建.buildrc文件

    在HOME目录下创建.buildrc文件,至少需要包括如下几行(请注意将myusername替换为您的帐号):

AddMultiCVS("helix",":ext:[email protected]:/cvsroot/")

AddBIFPath("common", "[helix]/common/build/BIF")

AddBIFPath("client", "[helix]/client/build/BIF")

如果是restricted类型的帐号,拥有更多的权限,可以下载更多的源代码,还要添加如下两行:

AddBIFPath("common-restricted", "[helix]/common-restricted/build/BIF")

AddBIFPath("client-restricted", "[helix]/client-restricted/build/BIF")

10. 创建一个新的目录来存放Helix代码树,您可以在任意位置创建此目录.

mkdir $HOME/helix/src
cd $HOME/helix/src

11. 运行build脚本,这个脚本是使用Python语言编写的,以菜单的形式提供build选项。

build.py

Updating [common] BIF files...

cvs server: Updating common/build/BIF

U common/build/BIF/helix.bif

Build System Menu

-> Current Directory: ~/source/helix

[0] Set BIF branch (helix)

[1] Set Target(s) (splay_mp3)

[2] Set Profile (default)

[3] run: build

[4] Toggle make depend & makefiles (-e -n)

[5] Toggle release (-trelease)

[6] Toggle 'make clean' (-c)

[7] Toggle clobber (Dangerous!) (-C)

[8] Toggle halt-on-error (-p green)

[9] Toggle verbose mode (-v)

[10] Toggle static build (-tnodll)

[11] Checkout source for selected target now

[12] Set Tag/Branch/Timestamp

[13] Help Page (full help in build/doc/index.html)

[Q] Quit

Enter selection or flags:

出现选单后,即可选择3开始编译程序了,不过先别着急,还是先了解一下各选项的含义再动手,请参考下一篇文章:Helix移植(三)编译目标程序

你可能感兴趣的:(python,System,Build,工具,makefile,linux内核)