Import marvel compiler to scratchbox

<!-- /* Font Definitions */ @font-face {font-family:Courier; panose-1:2 7 4 9 2 2 5 2 4 4; mso-font-charset:0; mso-generic-font-family:modern; mso-font-format:other; mso-font-pitch:fixed; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; line-height:12.0pt; mso-pagination:none; text-autospace:none; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-fareast-language:EN-US;} h1 {mso-style-next:正文; margin-top:6.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:36.0pt; text-indent:-36.0pt; line-height:12.0pt; mso-pagination:none; page-break-after:avoid; mso-outline-level:1; mso-list:l0 level1 lfo1; text-autospace:none; font-size:10.0pt; mso-bidi-font-size:12.0pt; font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-font-kerning:0pt; mso-fareast-language:EN-US;} h2 {mso-style-parent:"标题 1"; mso-style-next:正文; margin-top:6.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:36.0pt; text-indent:-36.0pt; line-height:12.0pt; mso-pagination:none; page-break-after:avoid; mso-outline-level:2; mso-list:l0 level2 lfo1; text-autospace:none; font-size:10.0pt; font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-fareast-language:EN-US;} h3 {mso-style-parent:"标题 1"; mso-style-next:正文; margin-top:6.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:57.3pt; text-indent:-36.0pt; line-height:12.0pt; mso-pagination:none; page-break-after:avoid; mso-outline-level:3; mso-list:l0 level3 lfo1; text-autospace:none; font-size:10.0pt; font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-fareast-language:EN-US; font-weight:normal; font-style:italic;} h4 {mso-style-parent:"标题 1"; mso-style-next:正文; margin-top:6.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:36.0pt; text-indent:-36.0pt; line-height:12.0pt; mso-pagination:none; page-break-after:avoid; mso-outline-level:4; mso-list:l0 level4 lfo1; text-autospace:none; font-size:10.0pt; font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-fareast-language:EN-US; font-weight:normal;} h5 {mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:144.0pt; text-indent:0cm; line-height:12.0pt; mso-pagination:none; mso-outline-level:5; mso-list:l0 level5 lfo1; text-autospace:none; font-size:11.0pt; font-family:"Times New Roman"; mso-fareast-language:EN-US; font-weight:normal;} h6 {mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:144.0pt; text-indent:0cm; line-height:12.0pt; mso-pagination:none; mso-outline-level:6; mso-list:l0 level6 lfo1; text-autospace:none; font-size:11.0pt; font-family:"Times New Roman"; mso-fareast-language:EN-US; font-weight:normal; font-style:italic;} p.MsoHeading7, li.MsoHeading7, div.MsoHeading7 {mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:144.0pt; text-indent:0cm; line-height:12.0pt; mso-pagination:none; mso-outline-level:7; mso-list:l0 level7 lfo1; text-autospace:none; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-fareast-language:EN-US;} p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 {mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:144.0pt; text-indent:0cm; line-height:12.0pt; mso-pagination:none; mso-outline-level:8; mso-list:l0 level8 lfo1; text-autospace:none; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-fareast-language:EN-US; font-style:italic;} p.MsoHeading9, li.MsoHeading9, div.MsoHeading9 {mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:144.0pt; text-indent:0cm; line-height:12.0pt; mso-pagination:none; mso-outline-level:9; mso-list:l0 level9 lfo1; text-autospace:none; font-size:9.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-fareast-language:EN-US; font-weight:bold; font-style:italic;} p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent {margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:13.5pt; margin-bottom:.0001pt; mso-pagination:none; text-autospace:none; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:14.0pt; mso-fareast-language:EN-US;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;} tt {mso-ansi-font-size:12.0pt; mso-bidi-font-size:12.0pt; font-family:宋体; mso-ascii-font-family:宋体; mso-fareast-font-family:宋体; mso-hansi-font-family:宋体; mso-bidi-font-family:宋体;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:-5; mso-list-template-ids:-1;} @list l0:level1 {mso-level-style-link:"标题 1"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:36.0pt; mso-level-legacy-space:7.2pt; text-indent:-36.0pt;} @list l0:level2 {mso-level-style-link:"标题 2"; mso-level-text:"%1/.%2"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:36.0pt; mso-level-legacy-space:7.2pt; margin-left:36.0pt; text-indent:-36.0pt;} @list l0:level3 {mso-level-style-link:"标题 3"; mso-level-text:"%1/.%2/.%3"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:36.0pt; mso-level-legacy-space:7.2pt; margin-left:57.3pt; text-indent:-36.0pt;} @list l0:level4 {mso-level-style-link:"标题 4"; mso-level-text:"%1/.%2/.%3/.%4"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:36.0pt; mso-level-legacy-space:7.2pt; margin-left:36.0pt; text-indent:-36.0pt;} @list l0:level5 {mso-level-style-link:"标题 5"; mso-level-text:"%1/.%2/.%3/.%4/.%5"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:0cm; mso-level-legacy-space:7.2pt; margin-left:0cm; text-indent:0cm;} @list l0:level6 {mso-level-style-link:"标题 6"; mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:0cm; mso-level-legacy-space:7.2pt; margin-left:0cm; text-indent:0cm;} @list l0:level7 {mso-level-style-link:"标题 7"; mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:0cm; mso-level-legacy-space:7.2pt; margin-left:0cm; text-indent:0cm;} @list l0:level8 {mso-level-style-link:"标题 8"; mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7/.%8"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:0cm; mso-level-legacy-space:7.2pt; margin-left:0cm; text-indent:0cm;} @list l0:level9 {mso-level-style-link:"标题 9"; mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7/.%8/.%9"; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:0cm; mso-level-legacy-space:7.2pt; margin-left:0cm; text-indent:0cm;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->

1.               Abstract

This document explains how to import a foreign compiler to scratchbox.

2.               Introduction

.      for compiling source code to marvle platform,we must import the marvel compiler to our scrathbox,then I began this work.

3.               import step

3.1        summary

for I donot want to pollute my previous scratchbox environment,then I create a new environment named SDK_MARVEL,if you do not know how please see doc —— How to setup empty scratchbox.doc.

3.2        get foreign compiler.

Extract the prebuilt toolchain to your COMPILER_DIR:eg.

 /scratchbox/compilers/ arm-linux-4.1.1  .

The COMPILER_DIR should probably now have subdirectories like bin , your-arch-name and lib .

For   the alien wrapper to work, you must have Scratchbox version 1.0.3 or newer (Apophis branch) and the compiler must work when invoked directly, eg.

       /scratchbox/compilers/ arm-linux-4.1.1 /bin/ arm-linux -gcc –version

3.3        get the sb-toolchain-extras

you should login you to your object platform,eg,SDK_MARVEL for me,by invoke

/some/directory/scratchbox/login

sb-conf select SDK_MARVEL

       then go to a directory that you have write privilege,eg,/scratchbox/output,invoke:

             

darcs get --set-scripts-executable http://scratchbox.org/repos/1.0/sb-toolchain-extras

(here the time decided by your network and your rp);

 

3.4        create your configure file.

Ofcourse you can write you own configure ,contains compiler related info and target platform characteristic,but you can use a simple script to help you to do this.

Go to the directory of you cool compiler ,eg /scratchbox/compiler/ arm-linux-4.1.1

Run the helper script:

~/ sb-toolchain-extras/confhelper/create_toolchain_conf.py >

~/ sb-toolchain-extras/meta/alien-tc/ arm-marvel .conf

(here ~ show that the sb-toolchain-extras is put to there)

You can edit that to fit for you.

3.5        Build the sb-toolchain-extras tools.

Go to the directory of sb-toolchain-extras,then invoke :

make CONFIG=meta/alien-tc/ arm-marvel .conf -C meta/alien-tc

all-sums (the time decided by your network and your rp)

make CONFIG=meta/alien-tc/yourconfig.conf -C meta/alien-t c

  (here you can meet some errors just ignored it)

 

 

3.6        Run sb-menu to setup compiler.

Run sb-menu >setup->SDK_MARMEL->arm-linux-4.1.1,then choose doctools,debian-etch,cputransp,perl,maemo3-tools,then choose a qemu,you can choose the qemu-arm-0.8.2-sb2,then ignore the rootstrap then choose install the files,after this,you can run gcc –v here you will see your new cool compiler has been install in the scratchbox.

 

4.               test helloworld.

You can write a helloworld program to test the gcc.the code can be like this:

int main(int argc,char **argv)

{

  Printf(“Hello cruel world/n”);

  Return 0;

}

Run gcc helloworld.c –o helloworld

If you qemu support the new compiler ,you can run the helloworld in the local machine,like this:

./helloworld

Or else you must copy your program to the object platform

If you  see the output:

Hello cruel world

Then you succeed!

 

5.               reference

[1]. How to setup empty scratchbox.doc.

[2]. http://www.scratchbox.org/wiki/ForeignToolchains

[3]. http://www.scratchbox.org/wiki/Toolchains

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值