1 This document contains instructions on how to cross-build the FreeType |
|
2 library on Unix systems, for example, building binaries for Linux/MIPS |
|
3 on FreeBSD/i386. Before reading this document, please consult |
|
4 INSTALL.UNIX for required tools and the basic self-building procedure. |
|
5 |
|
6 |
|
7 1. Required Tools |
|
8 ----------------- |
|
9 |
|
10 For self-building the FreeType library on a Unix system, GNU Make |
|
11 3.80 or newer is required. INSTALL.UNIX contains hints how to |
|
12 check the installed `make'. |
|
13 |
|
14 The GNU C compiler to cross-build the target system is required. |
|
15 At present, using non-GNU cross compiler is not tested. The cross |
|
16 compiler is expected to be installed with a system prefix. For |
|
17 example, if your building system is FreeBSD/i386 and the target |
|
18 system is Linux/MIPS, the cross compiler should be installed with |
|
19 the name `mips-ip22-linuxelf-gcc'. |
|
20 |
|
21 A C compiler for a self-build is required also, to build a tool |
|
22 that is executed during the building procedure. Non-GNU self |
|
23 compilers are acceptable, but such a setup is not tested yet. |
|
24 |
|
25 |
|
26 2. Configuration |
|
27 ---------------- |
|
28 |
|
29 2.1. Building and target system |
|
30 |
|
31 To configure for cross-build, the options `--host=<system>' and |
|
32 `--build=<system>' must be passed to configure. For example, if |
|
33 your building system is FreeBSD/i386 and the target system is |
|
34 Linux/MIPS, say |
|
35 |
|
36 ./configure \ |
|
37 --build=i386-unknown-freebsd \ |
|
38 --host=mips-ip22-linuxelf \ |
|
39 [other options] |
|
40 |
|
41 It should be noted that `--host=<system>' specifies the system |
|
42 where the built binaries will be executed, not the system where |
|
43 the build actually happens. Older versions of GNU autoconf use |
|
44 the option pair `--host=' and `--target='. This is broken and |
|
45 doesn't work. Similarly, an explicit CC specification like |
|
46 |
|
47 env CC=mips-ip22-linux-gcc ./configure |
|
48 |
|
49 or |
|
50 |
|
51 env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure |
|
52 |
|
53 doesn't work either; such a configuration confuses the |
|
54 `configure' script while trying to find the cross and native C |
|
55 compilers. |
|
56 |
|
57 |
|
58 2.2. The prefix to install FreeType2 |
|
59 |
|
60 Setting `--prefix=<prefix>' properly is important. The prefix |
|
61 to install FreeType2 is written into the freetype-config script |
|
62 and freetype2.pc configuration file. |
|
63 |
|
64 If the built FreeType 2 library is used as a part of the |
|
65 cross-building system, the prefix is expected to be different |
|
66 from the self-building system. For example, configuration with |
|
67 `--prefix=/usr/local' installs binaries into the system wide |
|
68 `/usr/local' directory which then can't be executed. This |
|
69 causes confusion in configuration of all applications which use |
|
70 FreeType2. Instead, use a prefix to install the cross-build |
|
71 into a separate system tree, for example, |
|
72 `--prefix=/usr/local/mips-ip22-linux/'. |
|
73 |
|
74 On the other hand, if the built FreeType2 is used as a part of |
|
75 the target system, the prefix to install should reflect the file |
|
76 system structure of the target system. |
|
77 |
|
78 |
|
79 3. Building command |
|
80 ------------------- |
|
81 |
|
82 If the configuration finishes successfully, invoking GNU make |
|
83 builds FreeType2. Just say |
|
84 |
|
85 make |
|
86 |
|
87 or |
|
88 |
|
89 gmake |
|
90 |
|
91 depending on the name the GNU make binary actually has. |
|
92 |
|
93 |
|
94 4. Installation |
|
95 --------------- |
|
96 |
|
97 Saying |
|
98 |
|
99 make install |
|
100 |
|
101 as usual to install FreeType2 into the directory tree specified by |
|
102 the argument of the `--prefix' option. |
|
103 |
|
104 As noted in section 2.2, FreeType2 is sometimes configured to be |
|
105 installed into the system directory of the target system, and |
|
106 should not be installed in the cross-building system. In such |
|
107 cases, the make variable `DESTDIR' is useful to change the root |
|
108 directory in the installation. For example, after |
|
109 |
|
110 make DESTDIR=/mnt/target_system_root/ install |
|
111 |
|
112 the built FreeType2 library files are installed into the directory |
|
113 `/mnt/target_system_root/<prefix_in_configure>/lib'. |
|
114 |
|
115 |
|
116 5. TODO |
|
117 ------- |
|
118 |
|
119 Cross building between Cygwin (or MSys) and Unix must be tested. |
|
120 |
|
121 |
|
122 ---------------------------------------------------------------------- |
|
123 |
|
124 Copyright 2006, 2008 by suzuki toshiya |
|
125 David Turner, Robert Wilhelm, and Werner Lemberg. |
|
126 |
|
127 |
|
128 This file is part of the FreeType project, and may only be used, |
|
129 modified, and distributed under the terms of the FreeType project |
|
130 license, LICENSE.TXT. By continuing to use, modify, or distribute |
|
131 this file you indicate that you have read the license and understand |
|
132 and accept it fully. |
|
133 |
|
134 |
|
135 --- end of INSTALL.CROSS --- |
|