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