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移植(三)編譯目標程序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章