Instructions on how to build FreeType with your own build tool

==============================================================



See  the  file `CUSTOMIZE'  to  learn  how  to customize  FreeType  to

specific environments.





I. Standard procedure

---------------------



  * DISABLE PRE-COMPILED  HEADERS!  This is very  important for Visual

    C++, because FreeType uses lines like:



      #include FT_FREETYPE_H



    which are not correctly supported by this compiler while being ISO

    C compliant!



  * You  need  to  add  the directories  `freetype2/include'  to  your

    include path when compiling the library.



  * FreeType 2 is made of  several components; each of them is located

    in    a   subdirectory    of   `freetype2/src'.     For   example,

    `freetype2/src/truetype/' contains the TrueType font driver.



  * DO NOT COMPILE ALL C FILES!  Rather, compile the following ones.



    -- base components (required)



      src/base/ftsystem.c

      src/base/ftinit.c

      src/base/ftdebug.c



      src/base/ftbase.c



      src/base/ftbbox.c       -- recommended, see <freetype/ftbbox.h>

      src/base/ftglyph.c      -- recommended, see <freetype/ftglyph.h>



      src/base/ftbdf.c        -- optional, see <freetype/ftbdf.h>

      src/base/ftbitmap.c     -- optional, see <freetype/ftbitmap.h>

      src/base/ftcid.c        -- optional, see <freetype/ftcid.h>

      src/base/ftfstype.c     -- optional

      src/base/ftgasp.c       -- optional, see <freetype/ftgasp.h>

      src/base/ftgxval.c      -- optional, see <freetype/ftgxval.h>

      src/base/ftlcdfil.c     -- optional, see <freetype/ftlcdfil.h>

      src/base/ftmm.c         -- optional, see <freetype/ftmm.h>

      src/base/ftotval.c      -- optional, see <freetype/ftotval.h>

      src/base/ftpatent.c     -- optional

      src/base/ftpfr.c        -- optional, see <freetype/ftpfr.h>

      src/base/ftstroke.c     -- optional, see <freetype/ftstroke.h>

      src/base/ftsynth.c      -- optional, see <freetype/ftsynth.h>

      src/base/fttype1.c      -- optional, see <freetype/t1tables.h>

      src/base/ftwinfnt.c     -- optional, see <freetype/ftwinfnt.h>

      src/base/ftxf86.c       -- optional, see <freetype/ftxf86.h>



      src/base/ftmac.c        -- only on the Macintosh



    -- font drivers (optional; at least one is needed)



      src/bdf/bdf.c           -- BDF font driver

      src/cff/cff.c           -- CFF/OpenType font driver

      src/cid/type1cid.c      -- Type 1 CID-keyed font driver

      src/pcf/pcf.c           -- PCF font driver

      src/pfr/pfr.c           -- PFR/TrueDoc font driver

      src/sfnt/sfnt.c         -- SFNT files support

                                 (TrueType & OpenType)

      src/truetype/truetype.c -- TrueType font driver

      src/type1/type1.c       -- Type 1 font driver

      src/type42/type42.c     -- Type 42 font driver

      src/winfonts/winfnt.c   -- Windows FONT / FNT font driver



    -- rasterizers (optional; at least one is needed for vector

       formats)



      src/raster/raster.c     -- monochrome rasterizer

      src/smooth/smooth.c     -- anti-aliasing rasterizer



    -- auxiliary modules (optional)



      src/autofit/autofit.c   -- auto hinting module

      src/cache/ftcache.c     -- cache sub-system (in beta)

      src/gzip/ftgzip.c       -- support for compressed fonts (.gz)

      src/lzw/ftlzw.c         -- support for compressed fonts (.Z)

      src/gxvalid/gxvalid.c   -- TrueTypeGX/AAT table validation

      src/otvalid/otvalid.c   -- OpenType table validation

      src/psaux/psaux.c       -- PostScript Type 1 parsing

      src/pshinter/pshinter.c -- PS hinting module

      src/psnames/psnames.c   -- PostScript glyph names support





    Notes:



      `ftcache.c'  needs `ftglyph.c'

      `ftfstype.c' needs `fttype1.c'

      `ftglyph.c'  needs `ftbitmap.c'

      `ftstroke.c' needs `ftglyph.c'

      `ftsynth.c'  needs `ftbitmap.c'



      `cff.c'      needs `sfnt.c', `pshinter.c', and `psnames.c'

      `truetype.c' needs `sfnt.c' and `psnames.c'

      `type1.c'    needs `psaux.c' `pshinter.c', and `psnames.c'

      `type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c'

      `type42.c'   needs `truetype.c'





  Read the file `CUSTOMIZE' in case  you want to compile only a subset

  of  the  drivers,  renderers,   and  optional  modules;  a  detailed

  description of the various base  extension is given in the top-level

  file `modules.cfg'.



  You are done.  In case of problems, see the archives of the FreeType

  development mailing list.





II. Support for flat-directory compilation

------------------------------------------



  It is  possible to  put all  FreeType 2 source  files into  a single

  directory, with the *exception* of the `include' hierarchy.



  1. Copy all files in current directory



      cp freetype2/src/base/*.[hc] .

      cp freetype2/src/raster1/*.[hc] .

      cp freetype2/src/smooth/*.[hc] .

      etc.



  2. Compile sources



      cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftsystem.c

      cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftinit.c

      cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftdebug.c

      cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftbase.c

      etc.



    You don't  need to define  the FT_FLAT_COMPILATION macro  (as this

    was required in previous releases of FreeType 2).



----------------------------------------------------------------------



Copyright 2003, 2005, 2006, 2009, 2010 by

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

