parent
82a07e9378
commit
bfe872dad1
5 changed files with 200 additions and 3 deletions
@ -0,0 +1,135 @@ |
||||
This document contains instructions on how to cross-build the FreeType |
||||
library on Unix systems, for example, building binaries for Linux/MIPS |
||||
on FreeBSD/i386. Before reading this document, please consult |
||||
INSTALL.UNIX for required tools and the basic self-building procedure. |
||||
|
||||
|
||||
1. Required Tools |
||||
----------------- |
||||
|
||||
For self-building the FreeType library on a Unix system, GNU Make |
||||
3.78.1 or newer is required. INSTALL.UNIX contains hints how to |
||||
check the installed `make'. |
||||
|
||||
The GNU C compiler to cross-build the target system is required. |
||||
At present, using non-GNU cross compiler is not tested. The cross |
||||
compiler is expected to be installed with a system prefix. For |
||||
example, if your building system is FreeBSD/i386 and the target |
||||
system is Linux/MIPS, the cross compiler should be installed with |
||||
the name `mips-ip22-linuxelf-gcc'. |
||||
|
||||
A C compiler for a self-build is required also, to build a tool |
||||
that is executed during the building procedure. Non-GNU self |
||||
compilers are acceptable, but such a setup is not tested yet. |
||||
|
||||
|
||||
2. Configuration |
||||
---------------- |
||||
|
||||
2.1. Building and target system |
||||
|
||||
To configure for cross-build, the options `--host=<system>' and |
||||
`--build=<system>' must be passed to configure. For example, if |
||||
your building system is FreeBSD/i386 and the target system is |
||||
Linux/MIPS, say |
||||
|
||||
./configure \ |
||||
--build=i386-unknown-freebsd \ |
||||
--host=mips-ip22-linuxelf \ |
||||
[other options] |
||||
|
||||
It should be noted that `--host=<system>' specifies the system |
||||
where the built binaries will be executed, not the system where |
||||
the build actually happens. Older versions of GNU autoconf use |
||||
the option pair `--host=' and `--target='. This is broken and |
||||
doesn't work. Similarly, an explicit CC specification like |
||||
|
||||
env CC=mips-ip22-linux-gcc ./configure |
||||
|
||||
or |
||||
|
||||
env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure |
||||
|
||||
doesn't work either; such a configuration confuses the |
||||
`configure' script while trying to find the cross and native C |
||||
compilers. |
||||
|
||||
|
||||
2.2. The prefix to install FreeType2 |
||||
|
||||
Setting `--prefix=<prefix>' properly is important. The prefix |
||||
to install FreeType2 is written into the freetype-config script |
||||
and freetype2.pc configuration file. |
||||
|
||||
If the built FreeType 2 library is used as a part of the |
||||
cross-building system, the prefix is expected to be different |
||||
from the self-building system. For example, configuration with |
||||
`--prefix=/usr/local' installs binaries into the system wide |
||||
`/usr/local' directory which then can't be executed. This |
||||
causes confusion in configuration of all applications which use |
||||
FreeType2. Instead, use a prefix to install the cross-build |
||||
into a separate system tree, for example, |
||||
`--prefix=/usr/local/mips-ip22-linux/'. |
||||
|
||||
On the other hand, if the built FreeType2 is used as a part of |
||||
the target system, the prefix to install should reflect the file |
||||
system structure of the target system. |
||||
|
||||
|
||||
3. Building command |
||||
------------------- |
||||
|
||||
If the configuration finishes successfuly, invoking GNU make builds |
||||
FreeType2. Just say |
||||
|
||||
make |
||||
|
||||
or |
||||
|
||||
gmake |
||||
|
||||
depending on the name the GNU make binary actually has. |
||||
|
||||
|
||||
4. Installation |
||||
--------------- |
||||
|
||||
Saying |
||||
|
||||
make install |
||||
|
||||
as usual to install FreeType2 into the directory tree specified by |
||||
the argument of the `--prefix' option. |
||||
|
||||
As noted in section 2.2, FreeType2 is sometimes configured to be |
||||
installed into the system directory of the target system, and |
||||
should not be installed in the cross-building system. In such |
||||
cases, the make variable `DESTDIR' is useful to change the root |
||||
directory in the installation. For example, after |
||||
|
||||
make DESTDIR=/mnt/target_system_root/ install |
||||
|
||||
the built FreeType2 library files are installed into the directory |
||||
`/mnt/target_system_root/<prefix_in_configure>/lib'. |
||||
|
||||
|
||||
5. TODO |
||||
------- |
||||
|
||||
Cross building between Cygwin (or MSys) and Unix must be tested. |
||||
|
||||
|
||||
---------------------------------------------------------------------- |
||||
|
||||
Copyright 2006 by suzuki toshiya |
||||
David Turner, Robert Wilhelm, and Werner Lemberg. |
||||
|
||||
|
||||
This file is part of the FreeType project, and may only be used, |
||||
modified, and distributed under the terms of the FreeType project |
||||
license, LICENSE.TXT. By continuing to use, modify, or distribute |
||||
this file you indicate that you have read the license and understand |
||||
and accept it fully. |
||||
|
||||
|
||||
--- end of INSTALL.CROSS --- |
Loading…
Reference in new issue