blob: 23b66e46c83d4613efac374a218a3c78426a86dc [file] [log] [blame]
Werner Lemberga16c4a72003-04-21 13:30:27 +00001Instructions on how to build FreeType with your own build tool
2==============================================================
David Turner66cbc202003-03-20 07:04:40 +00003
Werner Lemberg59939242006-01-31 20:17:42 +00004See the file `CUSTOMIZE' to learn how to customize FreeType to
5specific environments.
David Turner66cbc202003-03-20 07:04:40 +00006
David Turner66cbc202003-03-20 07:04:40 +00007
Werner Lemberga16c4a72003-04-21 13:30:27 +00008I. Standard procedure
9---------------------
David Turner66cbc202003-03-20 07:04:40 +000010
Werner Lemberg59939242006-01-31 20:17:42 +000011 * DISABLE PRE-COMPILED HEADERS! This is very important for Visual
David Turner66cbc202003-03-20 07:04:40 +000012 C++, because FreeType uses lines like:
Werner Lemberg9b774e22007-01-16 06:11:27 +000013
Werner Lemberga16c4a72003-04-21 13:30:27 +000014 #include FT_FREETYPE_H
Werner Lemberg9b774e22007-01-16 06:11:27 +000015
Werner Lemberg59939242006-01-31 20:17:42 +000016 which are not correctly supported by this compiler while being ISO
17 C compliant!
David Turner66cbc202003-03-20 07:04:40 +000018
Werner Lemberg8502c982015-06-22 06:35:23 +020019 * You need to add the directory `include' to your include path when
20 compiling the library.
David Turner66cbc202003-03-20 07:04:40 +000021
Werner Lemberg59939242006-01-31 20:17:42 +000022 * FreeType 2 is made of several components; each of them is located
23 in a subdirectory of `freetype2/src'. For example,
Werner Lembergf20a4d32005-08-10 13:24:51 +000024 `freetype2/src/truetype/' contains the TrueType font driver.
David Turner66cbc202003-03-20 07:04:40 +000025
Werner Lemberg59939242006-01-31 20:17:42 +000026 * DO NOT COMPILE ALL C FILES! Rather, compile the following ones.
David Turner66cbc202003-03-20 07:04:40 +000027
Werner Lemberga16c4a72003-04-21 13:30:27 +000028 -- base components (required)
David Turner66cbc202003-03-20 07:04:40 +000029
Werner Lemberga16c4a72003-04-21 13:30:27 +000030 src/base/ftsystem.c
31 src/base/ftinit.c
32 src/base/ftdebug.c
Werner Lembergf20a4d32005-08-10 13:24:51 +000033
Werner Lemberga16c4a72003-04-21 13:30:27 +000034 src/base/ftbase.c
Werner Lembergf20a4d32005-08-10 13:24:51 +000035
Werner Lembergfae38202013-11-13 08:55:46 +010036 src/base/ftbbox.c -- recommended, see <ftbbox.h>
37 src/base/ftglyph.c -- recommended, see <ftglyph.h>
Werner Lembergf20a4d32005-08-10 13:24:51 +000038
Werner Lembergfae38202013-11-13 08:55:46 +010039 src/base/ftbdf.c -- optional, see <ftbdf.h>
40 src/base/ftbitmap.c -- optional, see <ftbitmap.h>
41 src/base/ftcid.c -- optional, see <ftcid.h>
Werner Lemberg06339952015-03-11 06:30:23 +010042 src/base/ftfntfmt.c -- optional, see <ftfntfmt.h>
Werner Lemberg5184ed62009-01-22 10:13:59 +000043 src/base/ftfstype.c -- optional
Werner Lembergfae38202013-11-13 08:55:46 +010044 src/base/ftgasp.c -- optional, see <ftgasp.h>
45 src/base/ftgxval.c -- optional, see <ftgxval.h>
46 src/base/ftlcdfil.c -- optional, see <ftlcdfil.h>
47 src/base/ftmm.c -- optional, see <ftmm.h>
48 src/base/ftotval.c -- optional, see <ftotval.h>
Werner Lemberg5184ed62009-01-22 10:13:59 +000049 src/base/ftpatent.c -- optional
Werner Lembergfae38202013-11-13 08:55:46 +010050 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>
David Turner66cbc202003-03-20 07:04:40 +000055
Werner Lemberga16c4a72003-04-21 13:30:27 +000056 src/base/ftmac.c -- only on the Macintosh
David Turner66cbc202003-03-20 07:04:40 +000057
Werner Lemberg2b428d52005-10-15 05:49:31 +000058 -- font drivers (optional; at least one is needed)
Werner Lembergf20a4d32005-08-10 13:24:51 +000059
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
Werner Lemberg8b560632006-01-19 08:30:58 +000070 src/winfonts/winfnt.c -- Windows FONT / FNT font driver
Werner Lembergf20a4d32005-08-10 13:24:51 +000071
Werner Lemberg5184ed62009-01-22 10:13:59 +000072 -- rasterizers (optional; at least one is needed for vector
73 formats)
Werner Lembergf20a4d32005-08-10 13:24:51 +000074
Werner Lemberg2b428d52005-10-15 05:49:31 +000075 src/raster/raster.c -- monochrome rasterizer
Werner Lembergf20a4d32005-08-10 13:24:51 +000076 src/smooth/smooth.c -- anti-aliasing rasterizer
77
78 -- auxiliary modules (optional)
David Turner66cbc202003-03-20 07:04:40 +000079
Werner Lemberga37745b2005-03-23 16:45:24 +000080 src/autofit/autofit.c -- auto hinting module
Werner Lemberga16c4a72003-04-21 13:30:27 +000081 src/cache/ftcache.c -- cache sub-system (in beta)
Werner Lembergf20a4d32005-08-10 13:24:51 +000082 src/gzip/ftgzip.c -- support for compressed fonts (.gz)
83 src/lzw/ftlzw.c -- support for compressed fonts (.Z)
Werner Lembergfe42a652010-12-31 17:47:09 +010084 src/bzip2/ftbzip2.c -- support for compressed fonts (.bz2)
Suzuki, Toshiya (鈴木俊哉)a4386212005-08-24 04:31:31 +000085 src/gxvalid/gxvalid.c -- TrueTypeGX/AAT table validation
Werner Lembergf20a4d32005-08-10 13:24:51 +000086 src/otvalid/otvalid.c -- OpenType table validation
Werner Lemberga16c4a72003-04-21 13:30:27 +000087 src/psaux/psaux.c -- PostScript Type 1 parsing
Werner Lembergf20a4d32005-08-10 13:24:51 +000088 src/pshinter/pshinter.c -- PS hinting module
89 src/psnames/psnames.c -- PostScript glyph names support
90
David Turner66cbc202003-03-20 07:04:40 +000091
Werner Lemberga16c4a72003-04-21 13:30:27 +000092 Notes:
David Turner66cbc202003-03-20 07:04:40 +000093
Werner Lemberg5184ed62009-01-22 10:13:59 +000094 `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
Werner Lembergf20a4d32005-08-10 13:24:51 +0000100 `cff.c' needs `sfnt.c', `pshinter.c', and `psnames.c'
David Turner66cbc202003-03-20 07:04:40 +0000101 `truetype.c' needs `sfnt.c' and `psnames.c'
Werner Lembergf20a4d32005-08-10 13:24:51 +0000102 `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'
David Turner66cbc202003-03-20 07:04:40 +0000105
Werner Lemberg392cf222015-06-25 13:04:57 +0200106 Please consult the central `include/freetype/config/ftoption.h'
Werner Lemberg9ada6692015-02-07 08:22:00 +0100107 configuration file for details on additional libraries necessary
108 for some optional features.
Werner Lembergfe42a652010-12-31 17:47:09 +0100109
Werner Lemberga16c4a72003-04-21 13:30:27 +0000110
Werner Lemberg59939242006-01-31 20:17:42 +0000111 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'.
Werner Lemberga7235262005-08-30 00:22:46 +0000115
Werner Lemberg59939242006-01-31 20:17:42 +0000116 You are done. In case of problems, see the archives of the FreeType
Werner Lemberga16c4a72003-04-21 13:30:27 +0000117 development mailing list.
David Turner66cbc202003-03-20 07:04:40 +0000118
119
120II. Support for flat-directory compilation
121------------------------------------------
122
Werner Lemberg59939242006-01-31 20:17:42 +0000123 It is possible to put all FreeType 2 source files into a single
David Turner66cbc202003-03-20 07:04:40 +0000124 directory, with the *exception* of the `include' hierarchy.
125
Werner Lemberga16c4a72003-04-21 13:30:27 +0000126 1. Copy all files in current directory
David Turner66cbc202003-03-20 07:04:40 +0000127
Werner Lemberga16c4a72003-04-21 13:30:27 +0000128 cp freetype2/src/base/*.[hc] .
129 cp freetype2/src/raster1/*.[hc] .
130 cp freetype2/src/smooth/*.[hc] .
131 etc.
David Turner66cbc202003-03-20 07:04:40 +0000132
Werner Lemberga16c4a72003-04-21 13:30:27 +0000133 2. Compile sources
David Turner66cbc202003-03-20 07:04:40 +0000134
Werner Lemberg8502c982015-06-22 06:35:23 +0200135 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
Werner Lemberga16c4a72003-04-21 13:30:27 +0000139 etc.
David Turner66cbc202003-03-20 07:04:40 +0000140
Werner Lemberg59939242006-01-31 20:17:42 +0000141 You don't need to define the FT_FLAT_COMPILATION macro (as this
142 was required in previous releases of FreeType 2).
David Turner66cbc202003-03-20 07:04:40 +0000143
Werner Lemberg59939242006-01-31 20:17:42 +0000144----------------------------------------------------------------------
Werner Lemberg56c368c2005-06-04 23:00:25 +0000145
Werner Lembergf57fc592015-01-17 20:41:43 +0100146Copyright 2003-2015 by
Werner Lemberg56c368c2005-06-04 23:00:25 +0000147David Turner, Robert Wilhelm, and Werner Lemberg.
148
Werner Lemberg59939242006-01-31 20:17:42 +0000149This 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.
Werner Lemberg56c368c2005-06-04 23:00:25 +0000154
Werner Lemberga16c4a72003-04-21 13:30:27 +0000155
156--- end of INSTALL.ANY ---