FreeCalypso > hg > freecalypso-sw
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. |
