comparison doc/Compiling @ 463:aad742029813

doc/Compiling: everything except gsm-fw
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Tue, 24 Jun 2014 00:16:04 +0000
parents
children 4fa939eada22
comparison
equal deleted inserted replaced
462:6500e1817d9b 463:aad742029813
1 There are 3 parts to the complete FreeCalypso software suite which are built
2 independently of each other:
3
4 * The tools that run on a GNU/Linux PC or other host system are the most
5 straightforward: there is a top level Makefile (named Makefile.hosttools if
6 you looking at a development source snapshot, will be renamed to just
7 Makefile in packaged releases of the host tools) that coordinates building
8 and installing all of them.
9
10 * The gsm-fw tree, which will eventually become our main GSM firmware, needs to
11 be built with a GNU cross-compiler toolchain for ARM7. This firmware can be
12 built for several different target devices and with different feature
13 configurations, hence there is no singular build for it - it's more like the
14 Linux kernel in terms of its build configuration management.
15
16 * We also have a few utilities which need to be compiled to run on Calypso
17 targets, but which are not part of gsm-fw; they are gathered in the
18 target-utils tree. They are built with the same GNU toolchain for ARM7 as
19 gsm-fw, but don't have any fancy configuration system.
20
21 Building and installing FreeCalypso host tools
22 ==============================================
23
24 If you are working with a packaged FC host tools release, just run 'make', then
25 'make install' as root. If you are working with a development source snapshot,
26 do 'make -f Makefile.hosttools' instead.
27
28 The "standard" install directories are /usr/local/bin for binaries and
29 /usr/local/share/freecalypso for helper files. If you need to change these
30 paths to something else, you'll need to edit a bunch of individual component
31 Makefiles, and possibly also some source files like loadtools/defpath.c -
32 sorry, FreeCalypso is not GNU and does not use autotools.
33
34 Building and installing the ARM7 toolchain
35 ==========================================
36
37 The current "official" GNU ARM toolchain for FreeCalypso consists of
38 binutils-2.21.1, gcc-4.5.4 and newlib-2.0.0 with a specific set of patches and
39 build configuration options. Build it as follows:
40
41 1. Download these 3 source tarballs for the standard GNU+newlib components:
42
43 binutils-2.21.1a.tar.bz2
44 gcc-core-4.5.4.tar.bz2
45 newlib-2.0.0.tar.gz
46
47 2. Run the build+install.sh script in the toolchain directory. Read the
48 comments in the script first for the usage instructions.
49
50 The toolchain thus built will need to be in your PATH before you can compile
51 gsm-fw or target-utils.
52
53 Please note: the toolchain that is prescribed for FreeCalypso as above is
54 *believed* to be equivalent to the one used by OsmocomBB, but there are no
55 guarantees. Use any other toolchain at your own risk.
56
57 Compiling target-utils
58 ======================
59
60 Running 'make' in the target-utils tree with the ARM7 toolchain present in your
61 PATH will result in compalstage and loadagent being built; these are the two
62 components needed in order to use FreeCalypso loadtools. Run 'make install' to
63 install these target binaries in /usr/local/share/freecalypso, which is where
64 loadtools will look for them.
65
66 Run 'make all' in target-utils to build some other components that aren't
67 really needed.