FreeCalypso > hg > freecalypso-tools
comparison INSTALL @ 58:cedd12ebf35a
doc/Compiling moved to INSTALL
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 26 Oct 2016 07:48:29 +0000 |
parents | doc/Compiling@4213cf6536fa |
children | 4022bfbaafd4 |
comparison
equal
deleted
inserted
replaced
57:7cc2f2360922 | 58:cedd12ebf35a |
---|---|
1 Building and installing FreeCalypso host tools | |
2 ============================================== | |
3 | |
4 Our FreeCalypso host tools are designed to be installed in the /opt/freecalypso | |
5 directory hierarchy on your system. The author of this software is very | |
6 old-fashioned and refuses to use autotools (sorry, we aren't GNU), hence | |
7 various hard-coded paths under /opt/freecalypso are sprinkled in bazillion | |
8 places - thus changing this fixed install location is deemed to be impractical. | |
9 | |
10 In order to compile and install our host tools, follow these steps: | |
11 | |
12 1: Run 'make' as a regular user (not root) to compile the software. | |
13 | |
14 2: Decide if you prefer to have the /opt/freecalypso directory and everything | |
15 under it to be owned by root or by your non-root uid. | |
16 | |
17 If you prefer /opt/freecalypso to be root-owned: | |
18 | |
19 3A: Run 'make install' as root; the install rule in the | |
20 Makefile will do mkdir -p /opt/freecalypso as its first step. | |
21 | |
22 4A: You are done! | |
23 | |
24 If you prefer /opt/freecalypso to be owned by your "regular" non-root uid: | |
25 | |
26 3A: Become root just to create the /opt/freecalypso directory and chown it | |
27 to your non-root uid. | |
28 | |
29 4A: Run 'make install' as your regular uid; it should succeed because you | |
30 should have made yourself the owner of /opt/freecalypso with full write | |
31 permission in the previous step. | |
32 | |
33 5A: You are done! | |
34 | |
35 The host tool binaries will be installed in /opt/freecalypso/bin; you can | |
36 either add this directory to your PATH or make symlinks from /usr/bin or | |
37 /usr/local/bin or wherever. | |
38 | |
39 Dependencies | |
40 ============ | |
41 | |
42 All FreeCalypso host tools are written in plain C, and with the exception of one | |
43 special hack-utility that has been excluded from the standard build set, they | |
44 have absolutely no library dependencies beyond libc. In other words, they are | |
45 very friendly to those who like bare bones minimalist systems. The only | |
46 exception is the fc-lcdemu hack which needs libX11 to compile and an X11 display | |
47 to run. It was a developer-only hack-utility to begin with, and the developer | |
48 setup of which it was a part never worked in a satisfactory manner, so it has | |
49 been retired. If you would like to play with it, you will need to compile it | |
50 separately, as it has been excluded from the top Makefile in order to have the | |
51 standard build set with no dependencies. | |
52 | |
53 The previous dependency on OpenSSL libraries for DES decryption of the factory | |
54 IMEI record on the Pirelli DP-L10 has been eliminated by incorporating our own | |
55 simple DES implementation (performance is not a concern for the one time | |
56 operation of retrieving the factory IMEI) into our rvinterf/etmsync source, and | |
57 the functions that require access to Pirelli's IMEI have now been integrated | |
58 into fc-fsio. | |
59 | |
60 Building and installing the ARM7 toolchain | |
61 ========================================== | |
62 | |
63 The current "official" GNU ARM toolchain for FreeCalypso consists of | |
64 binutils-2.21.1, gcc-4.5.4 and newlib-2.0.0 with a specific set of patches and | |
65 build configuration options. This toolchain is used to compile target-utils in | |
66 this package as well as our separately-maintained Citrine firmware. Build it | |
67 as follows: | |
68 | |
69 1. Download these 3 source tarballs for the standard GNU+newlib components: | |
70 | |
71 binutils-2.21.1a.tar.bz2 | |
72 gcc-core-4.5.4.tar.bz2 | |
73 newlib-2.0.0.tar.gz | |
74 | |
75 2. Run the build+install.sh script in the toolchain directory. Read the | |
76 comments in the script first for the usage instructions. | |
77 | |
78 The toolchain thus built will need to be in your PATH before you can compile | |
79 target-utils or Citrine. | |
80 | |
81 Please note: the toolchain that is prescribed for FreeCalypso as above is | |
82 *believed* to be equivalent to the one used by OsmocomBB, but there are no | |
83 guarantees. Use any other toolchain at your own risk. | |
84 | |
85 Compiling target-utils | |
86 ====================== | |
87 | |
88 Running 'make' in the target-utils tree with the ARM7 toolchain present in your | |
89 PATH will result in several target binaries being built, including compalstage | |
90 and loadagent which are needed in order to use FreeCalypso loadtools. Run | |
91 'make install' to install these target binaries in /opt/freecalypso/target-bin, | |
92 which is where loadtools will look for them. | |
93 | |
94 Run 'make all' in target-utils to build some additional target code pieces that | |
95 are needed only for development and only very rarely. |