source: branches/libc-0.6/doc/Build.txt@ 3753

Last change on this file since 3753 was 1356, checked in by bird, 21 years ago

Initial coding :-)

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.0 KB
Line 
1$Id: Build.txt 1356 2004-04-11 16:26:43Z bird $
2
3
41.0 Setting up the buildenvironment
5-----------------------------------
6
7The build environment is selfcontained with the exception of EMX. However,
8some of the components changes rather often because of LIBC updates so these
9components are kept in .zips which have to be unzipped in the /tools
10directory. Go to tools/ and do unzip -o packages/*.zip.
11
12The GCC is by default taken from tools/x86.os2/gcc/staged and you must put
13the latest build there for it to work. Installing the compiler to that
14directory is perhaps the best idea:
15 GCC-3.2.2-beta4.exe /unattended /directory=tools/x86.os2/gcc/staged
16
17The build environment is loaded into the current shell (4os2 or cmd) by
18invoking tools\env.cmd. This rexx script takes two options:
19 -disable-staged-gcc / -enable-staged-gcc:
20 Use the staged gcc or the gcc322 BuildEnv. For the latter you'll
21 have to put configure gcc322 using tools\buildenv.cmd if you haven't
22 already done so globally for another project.
23
24 -install / -uninstall:
25 Install or uninstall the GCC buildenvironment. Installing it is
26 naturally default. (Not sure how well -uninstall works actually.)
27
28The rexx script takes one optional argument:
29 RELEASE / DEBUG:
30 Specifies the build mode/type which is to be default for the
31 environment. Default is (of course) DEBUG.
32
33
34
352.0 Building
36------------
37
38The default for all is a simple build of all the components, no compiler
39bootstrapping. However we do a little LIBC bootstrapping underways, i.e.
40LIBC is build first and installed to a temporary location which figures
41before the GCC one in all the PATHs. Thus the LIBC we build will be used
42to build the rest. This will happen for the other libraries, tools,
43binutils and gcc as we go along.
44
45This build type is called 'quick'.
46
47
48There is another build type, which is used for the release builds, which
49is called double-quick. It performs the 'quick' build twice thus ensuring
50that even everything is built with the same level of tools that we deliver.
51
52Both 'quick' and 'double-quick' will log to obj/OS2/$(BUILD_MODE)/???.log,
53and will when all is built install it into bin/OS2/$(BUILD_MODE)/<reltag>.
54
55
562.1 Building parts
57------------------
58
59Individual components can be built, like for instance LIBC/EMX can be built
60from the src/emx directory. See help screen when invoking make there and the
61MoBuS documentation in src/emx/build.txt
62
63Binutils and GCC are normal GNU build system stuff, which mean they require
64their Configure scripts to be run. This normally should be done by the root
65Makefile to get it right. There are special gcc-configure, binutils-configure
66rules for this. The object directories are in obj/OS2/$(BUILD_MODE)/gcc or
67binutils.
68TODO: Add emx-shell, gcc-shell and binutils-shell rules which will take you
69to the right place.
70
71
723.0 Packing
73-----------
74
75There is a 'packing' rule. Just invoke this and packing will take place. To
76pack up the sources invoke the 'packing-src' rule. The 'installer' will only
77do the installer creation.
78
79
Note: See TracBrowser for help on using the repository browser.