sbsv2/raptor/notes/x86_initial.txt
author Mike Kinghan <mikek@symbian.org>
Thu, 25 Nov 2010 13:59:07 +0000
changeset 40 68f68128601f
parent 28 b8fa7dfeeaa1
permissions -rw-r--r--
1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package. 2) Enhance romnibus.pl so that it generate the symbol file for the built rom when invoked by Raptor 3) Make the maksym.pl tool portable for Linux as well as Windows. 4) Remove the of armasm2as.pl from the e32tools component in favour of the copy now exported from sbsv1/e32util.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     1
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     2
Raptor now supports a basic x86 OS build on Windows given the installation
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     3
of an appropriate MinGW GCC toolchain (available separately).
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     4
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     5
This is very much a first cut of the core x86 support, and should be considered
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     6
alpha quality, but the fundamentals are now present to build EXE, DLL, IMPLIB
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     7
and LIB TARGETTYPEs, as well as most fixed export TARGETTYPEs.  Support for
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     8
functionality not directly related to a release build e.g. freezing, assembler
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     9
listing, single file compilation etc. is either not yet implemented or
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    10
untested, so should not be expected to work correctly.
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    11
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    12
In order to build components for an x86 configuration, an SBS_GCCX86BIN
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    13
environment variable must first be set, with a path as its value, pointing to
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    14
the "bin" directory of the MinGW installation intended for use in the build
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    15
e.g.:
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    16
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    17
SBS_GCCX86BIN=C:\apps\MinGW\bin
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    18
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    19
x86 build configurations should then be available for use as follows:
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    20
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    21
sbs -c x86
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    22
sbs -c x86_urel
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    23
sbs -c x86_udeb
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    24
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    25
A component supports a build using the above x86 configurations if its
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    26
bld.inf file has an empty or missing PRJ_PLATFORMS section or PRJ_PLATFORMS is
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    27
populated specifically with X86, DEFAULT, BASEDEFAULT or BASEUSERDEFAULT.
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    28
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    29
The above x86 group and aliases check that the GCC installation is version 3.4.5
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    30
but, other than that, it is the end user's responsibility to provide a toolchain
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    31
that is suitable for an x86 build; currently the x86 build requires a custom
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    32
GCC toolchain that differs from vanilla MinGW releases.
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    33
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    34
By default, and in common with other Raptor build configurations, x86 build
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    35
output locations are architecture rather than toolchain based, therefore the
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    36
following output folders are used:
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    37
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    38
%EPOCROOT%\epoc32\release\x86\lib
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    39
%EPOCROOT%\epoc32\release\x86\urel
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    40
%EPOCROOT%\epoc32\release\x86\udeb
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    41
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    42
An optional release_x86gcc variant is available if the output directories need
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    43
to differentiate based on the toolchain used.  This variant can be used as
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    44
follows:
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    45
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    46
sbs -c x86.release_x86gcc
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    47
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    48
...and will lead to the use of these output directories:
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    49
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    50
%EPOCROOT%\epoc32\release\x86gcc\lib
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    51
%EPOCROOT%\epoc32\release\x86gcc\urel
b8fa7dfeeaa1 Update Raptor to v2.15.2
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    52
%EPOCROOT%\epoc32\release\x86gcc\udeb