sbsv2/raptor/notes/x86_initial.txt
author Mike Kinghan <mikek@symbian.org>
Wed, 01 Dec 2010 12:02:41 +0000
changeset 42 cf609178ac39
parent 28 b8fa7dfeeaa1
permissions -rw-r--r--
1) fix_tools_exports.pl need only be run on Windows hosts; was run unnecessarily on Linux too. 2) Need to export modload.pm on Linux as well as Windows hosts.
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