misc/libfreetype/docs/INSTALL.CROSS
changeset 9372 915436ff64ab
parent 9371 f3840de881bd
child 9373 b769a8e38cbd
equal deleted inserted replaced
9371:f3840de881bd 9372:915436ff64ab
     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 ---