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.80 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 successfully, 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, 2008 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 --- |