documentation/getting_started.pod
changeset 12 d0b16e01f384
parent 9 257450419d10
child 32 50af04b02d7d
equal deleted inserted replaced
11:8a3293f6c06f 12:d0b16e01f384
    12 #
    12 #
    13 
    13 
    14 
    14 
    15 __END__
    15 __END__
    16 
    16 
       
    17 =head1 Getting started with FShell
       
    18 
    17 =head1 Retreiving the FShell Source Code
    19 =head1 Retreiving the FShell Source Code
    18 
    20 
    19 I<Todo - add instructions for accessing the Mercurial repository.>
    21 I<Todo - add instructions for accessing the Mercurial repository.>
    20 
    22 
    21 =head1 Building FShell
    23 =head1 Building FShell
    30 
    32 
    31 =item * Nokia Symbian Timebox 9.2
    33 =item * Nokia Symbian Timebox 9.2
    32 
    34 
    33 =back
    35 =back
    34 
    36 
    35 Each of these platforms have a separate directory with F<\fshell\build>. In some platforms there may be further separate sub-directories for specific variants of the platform. You need to identify a suitable directory (that contains a file named F<bld.inf>) from which to build from. Open a command prompt and C<cd> to this directory.
    37 Each of these platforms have a separate directory with F<\fshell\build>. In some platforms there may be further separate sub-directories for specific variants of the platform. You need to identify a suitable directory (that contains a file named F<bld.inf>) from which to build from. For example to build for the Symbian^3 release you need to build from F<\fshell\build\sf\3>. Open a command prompt and C<cd> to this directory.
    36 
    38 
    37 You also need to identify the type of binaries you want to build. Common ones are:
    39 You also need to identify the type of binaries you want to build. Common ones are:
    38 
    40 
    39 =over 5
    41 =over 5
    40 
    42 
    46 
    48 
    47 Used for running fshell on either physical or simulated ARM hardware. Requires an installation of ARM's RVCT compiler. Version 2.2 is commonly used on current Symbian based handsets.
    49 Used for running fshell on either physical or simulated ARM hardware. Requires an installation of ARM's RVCT compiler. Version 2.2 is commonly used on current Symbian based handsets.
    48 
    50 
    49 =item * C<gcce>
    51 =item * C<gcce>
    50 
    52 
    51 Used for running fshell on either physical or simulated ARM hardware. Requires an installation of the GCC-E. I<Todo - does the SF provide builds of GCC-E?>
    53 Used for running fshell on either physical or simulated ARM hardware. Requires an installation of the GCC crosscompiler (for arm-none-symbianelf) - see here for more information: http://developer.symbian.org/wiki/index.php/The_GCCE_toolchain_initiative.
    52 
    54 
    53 =back
    55 =back
    54 
    56 
    55 Lastly, you need to identify the build variant you plan to use, either debug (C<udeb>) or release (C<urel>). Commonly, C<udeb> is used on the emulator whereas C<urel> is used on target hardward. For the purposes of this introduction we will assume that you will be building C<winscw udeb> and C<armv5 urel>.
    57 Lastly, you need to identify the build variant you plan to use, either debug (C<udeb>) or release (C<urel>). Commonly, C<udeb> is used on the emulator whereas C<urel> is used on target hardware. For the purposes of this introduction we will assume that you will be building C<winscw udeb> and C<armv5 urel>.
    56 
    58 
    57 =head2 SBSv1 (aka abld)
    59 =head2 SBSv1 (aka abld)
    58 
    60 
    59   M:\fshell\build\s60\3>bldmake bldfiles
    61   M:\fshell\build\s60\3>bldmake bldfiles
    60   M:\fshell\build\s60\3>abld build winscw udeb
    62   M:\fshell\build\s60\3>abld build winscw udeb
    61   M:\fshell\build\s60\3>abld build armv5 urel
    63   M:\fshell\build\s60\3>abld build armv5 urel
    62 
    64 
    63 =head2 SBSv2 (aka Raptor)
    65 =head2 SBSv2 (aka Raptor)
    64 
    66 
    65   M:\fshell\build\sf\2>sbs -c armv5_urel -c winscw_udeb
    67   M:\fshell\build\sf\2>sbs -c armv5_urel
       
    68   M:\fshell\build\sf\2>sbs -c winscw_udeb
       
    69 
       
    70 I<Note:> There are currently some concurrency issues in the build process that mean we don't recommend building multiple platforms in a single invocation of sbs. Ie do the above rather than C<sbs -c armv5_urel -c winscw_udeb>. In some cases you may even need to add the option C<-j 1> to sbs to have it run completely single-threaded. We'll fix this as soon as we can!
       
    71 
       
    72 =head2 Notes on building for GCC
       
    73 
       
    74 Fshell has only been tested to build with GCC-E 4.4.1, and the legacy 3.4.2.
       
    75 
       
    76 I<Note:> The SF website appears to be out of date with regards to how to build with GCC-E on Raptor - at the time of writing the way to build is as follows:
       
    77 
       
    78   S:\fshell\build\sf\3>set SBS_GCCE432BIN=Nothing
       
    79   S:\fshell\build\sf\3>set SBS_GCCE433BIN=Nothing
       
    80   S:\fshell\build\sf\3>set SBS_GCCE441BIN=c:/apps/gcce/bin
       
    81   S:\fshell\build\sf\3>sbs -c arm.v5.urel.gcce4_4_1
       
    82 
       
    83 You may also need to update the compiler support libraries - I had to unzip rt_3_1_bin.zip from \sf\os\kernelhwsrv\kernel\eka\compsupp from a different baseline. (Unzip over \epoc32\release\armv5). The working libraries I used had datestamp of 28/1/2009, the non-working ones were 1/1/2009.
       
    84 
       
    85 There's one final gotcha if you want to build with GCC-E - at the time of writing the makefiles produced by SBS for PIPS executables is incorrect, therefore you need to add C<#define FSHELL_NO_PIPS_SUPPORT> to \fshell\build\sf\platform_shared.mmh. Hopefully this is a temporary measure.
    66 
    86 
    67 =head1 Installation
    87 =head1 Installation
    68 
    88 
    69 Having performed a build, you should have a full set of binaries in your F<\epoc32> tree. If you want to run fshell on the emulator, no further action is necessary. If you want to run fshell on the simulator or target hardware, then the fshell binaries need to be either added to a ROM image or installed at runtime.
    89 Having performed a build, you should have a full set of binaries in your F<\epoc32> tree. If you want to run fshell on the emulator, no further action is necessary. If you want to run fshell on the simulator or target hardware, then the fshell binaries need to be either added to a ROM image or installed at runtime.
    70 
    90