sbsv2/raptor/notes/x86_initial.txt
changeset 625 a1925fb7753a
child 630 31ef8a13d4f4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/notes/x86_initial.txt	Thu Aug 12 09:00:16 2010 +0100
@@ -0,0 +1,54 @@
+
+Raptor now supports a basic x86 OS build on Windows given the installation
+of an appropriate MinGW GCC toolchain (available separately).
+
+This is very much a first cut of the core x86 support, and should be considered
+alpha quality, but the fundamentals are now present to build EXE, DLL, IMPLIB
+and LIB TARGETTYPEs, as well as most fixed export TARGETTYPEs.  Support for
+functionality not directly related to a release build e.g. freezing, assembler
+listing, single file compilation etc. is either not yet implemented or
+untested, so should not be expected to work correctly.
+
+In order to build components for an x86 configuration, an SBS_GCCX86BIN
+environment variable must first be set, with a path as its value, pointing to
+the "bin" directory of the MinGW installation intended for use in the build
+e.g.:
+
+SBS_GCCX86BIN=C:\apps\MinGW\bin
+
+x86 build configurations should then be available for use as follows:
+
+sbs -c x86
+sbs -c x86_urel
+sbs -c x86_udeb
+
+If a component supports a build for X86GCC or ARMV5 then it will support a
+build using Raptor's x86 support if requested i.e. if one of the above build
+configurations is used and, for example, the component's bld.inf file has an
+empty PRJ_PLATFORMS section or PRJ_PLATFORMS is populated with X86GCC, ARMV5,
+DEFAULT, BASEDEFAULT etc.
+
+The above x86 group and aliases check that the GCC installation is version 3.4.5
+but, other than that, it is the end user's responsibility to provide a toolchain
+that is suitable for an x86 build; currently the x86 build requires a custom
+GCC toolchain that differs from vanilla MinGW releases.
+
+By default, and in common with other Raptor build configurations, x86 build
+output locations are architecture rather than toolchain based, therefore the
+following output folders are used:
+
+%EPOCROOT%\epoc32\release\x86\lib
+%EPOCROOT%\epoc32\release\x86\urel
+%EPOCROOT%\epoc32\release\x86\udeb
+
+An optional release_x86gcc variant is available if the output directories need
+to differentiate based on the toolchain used.  This variant can be used as
+follows:
+
+sbs -c x86.release_x86gcc
+
+...and will lead to the use of these output directories:
+
+%EPOCROOT%\epoc32\release\x86gcc\lib
+%EPOCROOT%\epoc32\release\x86gcc\urel
+%EPOCROOT%\epoc32\release\x86gcc\udeb