Helix采用了Ribosome工具。这是一组用Python语言写的构建工具,它提供接口从CVS库获取代码,并编译程序。Ribosome包含两个主要工具:
要使用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移植(三)编译目标程序