• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Instructions on how to build FreeType with your own build tool
2==============================================================
3
4See  the  file `CUSTOMIZE'  to  learn  how  to customize  FreeType  to
5specific environments.
6
7
8I. Standard procedure
9---------------------
10
11  * If you use macro names  for FreeType header files (while mandatory
12    in earlier versions,  this is now optional  since FreeType version
13    2.10.3) it  is necessary to disable pre-compiled headers.  This is
14    very important for Visual C++, because lines like
15
16      #include FT_FREETYPE_H
17
18    are not  correctly supported  by this compiler  while being  ISO C
19    compliant!
20
21  * You need to add the directory `include' to your  include path when
22    compiling the library.
23
24  * FreeType 2 is made of  several components; each of them is located
25    in    a   subdirectory    of   `freetype2/src'.     For   example,
26    `freetype2/src/truetype/' contains the TrueType font driver.
27
28  * DO NOT COMPILE ALL C FILES!  Rather, compile the following ones.
29
30    -- base components (required)
31
32      src/base/ftsystem.c
33      src/base/ftinit.c
34      src/base/ftdebug.c
35
36      src/base/ftbase.c
37
38      src/base/ftbbox.c       -- recommended, see <ftbbox.h>
39      src/base/ftglyph.c      -- recommended, see <ftglyph.h>
40
41      src/base/ftbdf.c        -- optional, see <ftbdf.h>
42      src/base/ftbitmap.c     -- optional, see <ftbitmap.h>
43      src/base/ftcid.c        -- optional, see <ftcid.h>
44      src/base/ftfstype.c     -- optional
45      src/base/ftgasp.c       -- optional, see <ftgasp.h>
46      src/base/ftgxval.c      -- optional, see <ftgxval.h>
47      src/base/ftmm.c         -- optional, see <ftmm.h>
48      src/base/ftotval.c      -- optional, see <ftotval.h>
49      src/base/ftpatent.c     -- optional
50      src/base/ftpfr.c        -- optional, see <ftpfr.h>
51      src/base/ftstroke.c     -- optional, see <ftstroke.h>
52      src/base/ftsynth.c      -- optional, see <ftsynth.h>
53      src/base/fttype1.c      -- optional, see <t1tables.h>
54      src/base/ftwinfnt.c     -- optional, see <ftwinfnt.h>
55
56      src/base/ftmac.c        -- only on the Macintosh
57
58    -- font drivers (optional; at least one is needed)
59
60      src/bdf/bdf.c           -- BDF font driver
61      src/cff/cff.c           -- CFF/OpenType font driver
62      src/cid/type1cid.c      -- Type 1 CID-keyed font driver
63      src/pcf/pcf.c           -- PCF font driver
64      src/pfr/pfr.c           -- PFR/TrueDoc font driver
65      src/sfnt/sfnt.c         -- SFNT files support
66                                 (TrueType & OpenType)
67      src/truetype/truetype.c -- TrueType font driver
68      src/type1/type1.c       -- Type 1 font driver
69      src/type42/type42.c     -- Type 42 font driver
70      src/winfonts/winfnt.c   -- Windows FONT / FNT font driver
71
72    -- rasterizers (optional; at least one is needed for vector
73       formats)
74
75      src/raster/raster.c     -- monochrome rasterizer
76      src/smooth/smooth.c     -- anti-aliasing rasterizer
77
78    -- auxiliary modules (optional)
79
80      src/autofit/autofit.c   -- auto hinting module
81      src/cache/ftcache.c     -- cache sub-system (in beta)
82      src/gzip/ftgzip.c       -- support for compressed fonts (.gz)
83      src/lzw/ftlzw.c         -- support for compressed fonts (.Z)
84      src/bzip2/ftbzip2.c     -- support for compressed fonts (.bz2)
85      src/gxvalid/gxvalid.c   -- TrueTypeGX/AAT table validation
86      src/otvalid/otvalid.c   -- OpenType table validation
87      src/psaux/psaux.c       -- PostScript Type 1 parsing
88      src/pshinter/pshinter.c -- PS hinting module
89      src/psnames/psnames.c   -- PostScript glyph names support
90
91
92    Notes:
93
94      `ftcache.c'  needs `ftglyph.c'
95      `ftfstype.c' needs `fttype1.c'
96      `ftglyph.c'  needs `ftbitmap.c'
97      `ftstroke.c' needs `ftglyph.c'
98      `ftsynth.c'  needs `ftbitmap.c'
99
100      `cff.c'      needs `sfnt.c', `pshinter.c', and `psnames.c'
101      `truetype.c' needs `sfnt.c' and `psnames.c'
102      `type1.c'    needs `psaux.c' `pshinter.c', and `psnames.c'
103      `type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c'
104      `type42.c'   needs `truetype.c'
105
106      Please consult the central  `include/freetype/config/ftoption.h'
107      configuration file for details on additional libraries necessary
108      for some optional features.
109
110
111  Read the file `CUSTOMIZE' in case  you want to compile only a subset
112  of  the  drivers,  renderers,   and  optional  modules;  a  detailed
113  description of the various base  extension is given in the top-level
114  file `modules.cfg'.
115
116  You are done.  In case of problems, see the archives of the FreeType
117  development mailing list.
118
119
120II. Support for flat-directory compilation
121------------------------------------------
122
123  It is  possible to  put all  FreeType 2 source  files into  a single
124  directory, with the *exception* of the `include' hierarchy.
125
126  1. Copy all files in current directory
127
128      cp freetype2/src/base/*.[hc] .
129      cp freetype2/src/raster1/*.[hc] .
130      cp freetype2/src/smooth/*.[hc] .
131      etc.
132
133  2. Compile sources
134
135      cc -c -Iinclude -DFT2_BUILD_LIBRARY ftsystem.c
136      cc -c -Iinclude -DFT2_BUILD_LIBRARY ftinit.c
137      cc -c -Iinclude -DFT2_BUILD_LIBRARY ftdebug.c
138      cc -c -Iinclude -DFT2_BUILD_LIBRARY ftbase.c
139      etc.
140
141    You don't  need to define  the FT_FLAT_COMPILATION macro  (as this
142    was required in previous releases of FreeType 2).
143
144----------------------------------------------------------------------
145
146Copyright (C) 2003-2020 by
147David Turner, Robert Wilhelm, and Werner Lemberg.
148
149This  file is  part of  the FreeType  project, and  may only  be used,
150modified,  and distributed  under the  terms of  the  FreeType project
151license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
152this file you  indicate that you have read  the license and understand
153and accept it fully.
154
155
156--- end of INSTALL.ANY ---
157