Initialize Tizen 2.3
[framework/graphics/freetype.git] / docs / INSTALL.CROSS
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 ---