5172
|
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 ---
|