blob: 75e701a0c21c91bb6faebc70032468c74e540f15 [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 Lemberga7235262005-08-30 00:22:46 +00004See the file `CUSTOMIZE' to learn how to customize FreeType to specific
5environments.
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 Lemberga7235262005-08-30 00:22:46 +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:
13
Werner Lemberga16c4a72003-04-21 13:30:27 +000014 #include FT_FREETYPE_H
David Turner66cbc202003-03-20 07:04:40 +000015
Werner Lemberga7235262005-08-30 00:22:46 +000016 which are not correctly supported by this compiler while being ISO C
17 compliant!
David Turner66cbc202003-03-20 07:04:40 +000018
Werner Lemberga7235262005-08-30 00:22:46 +000019 * You need to add the directories `freetype2/include' to your include
20 path when compiling the library.
David Turner66cbc202003-03-20 07:04:40 +000021
Werner Lemberga7235262005-08-30 00:22:46 +000022 * FreeType 2 is made of several components; each of them is located in
23 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
26 * DO NOT COMPILE ALL C FILES! Rather, compile the following ones:
27
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
36 src/base/ftbbox.c -- recommended, see <freetype/ftbbox.h>
37 src/base/ftglyph.c -- recommended, see <freetype/ftglyph.h>
38
Werner Lemberga16c4a72003-04-21 13:30:27 +000039 src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
Werner Lembergf20a4d32005-08-10 13:24:51 +000040 src/base/ftbitmap.c -- optional, see <freetype/ftbitmap.h>
41 src/base/ftmm.c -- optional, see <freetype/ftmm.h>
42 src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
Werner Lemberga16c4a72003-04-21 13:30:27 +000043 src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
David Turner66cbc202003-03-20 07:04:40 +000044
Werner Lemberga16c4a72003-04-21 13:30:27 +000045 src/base/ftmac.c -- only on the Macintosh
David Turner66cbc202003-03-20 07:04:40 +000046
Werner Lembergf20a4d32005-08-10 13:24:51 +000047 -- font drivers (optional -- at least one is needed)
48
49 src/bdf/bdf.c -- BDF font driver
50 src/cff/cff.c -- CFF/OpenType font driver
51 src/cid/type1cid.c -- Type 1 CID-keyed font driver
52 src/pcf/pcf.c -- PCF font driver
53 src/pfr/pfr.c -- PFR/TrueDoc font driver
54 src/sfnt/sfnt.c -- SFNT files support
55 (TrueType & OpenType)
56 src/truetype/truetype.c -- TrueType font driver
57 src/type1/type1.c -- Type 1 font driver
58 src/type42/type42.c -- Type 42 font driver
59 src/winfonts/winfonts.c -- Windows FONT / FNT font driver
60
61 -- rasterizers (optional -- at least one is needed)
62
63 src/raster/raster.c -- monochrome rasterizer
64 src/smooth/smooth.c -- anti-aliasing rasterizer
65
66 -- auxiliary modules (optional)
David Turner66cbc202003-03-20 07:04:40 +000067
Werner Lemberga37745b2005-03-23 16:45:24 +000068 src/autofit/autofit.c -- auto hinting module
Werner Lemberga16c4a72003-04-21 13:30:27 +000069 src/cache/ftcache.c -- cache sub-system (in beta)
Werner Lembergf20a4d32005-08-10 13:24:51 +000070 src/gzip/ftgzip.c -- support for compressed fonts (.gz)
71 src/lzw/ftlzw.c -- support for compressed fonts (.Z)
Suzuki, Toshiya (鈴木俊哉)a4386212005-08-24 04:31:31 +000072 src/gxvalid/gxvalid.c -- TrueTypeGX/AAT table validation
Werner Lembergf20a4d32005-08-10 13:24:51 +000073 src/otvalid/otvalid.c -- OpenType table validation
Werner Lemberga16c4a72003-04-21 13:30:27 +000074 src/psaux/psaux.c -- PostScript Type 1 parsing
Werner Lembergf20a4d32005-08-10 13:24:51 +000075 src/pshinter/pshinter.c -- PS hinting module
76 src/psnames/psnames.c -- PostScript glyph names support
77
David Turner66cbc202003-03-20 07:04:40 +000078
Werner Lemberga16c4a72003-04-21 13:30:27 +000079 Notes:
David Turner66cbc202003-03-20 07:04:40 +000080
Werner Lembergf20a4d32005-08-10 13:24:51 +000081 `cff.c' needs `sfnt.c', `pshinter.c', and `psnames.c'
David Turner66cbc202003-03-20 07:04:40 +000082 `truetype.c' needs `sfnt.c' and `psnames.c'
Werner Lembergf20a4d32005-08-10 13:24:51 +000083 `type1.c' needs `psaux.c' `pshinter.c', and `psnames.c'
84 `type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c'
85 `type42.c' needs `truetype.c'
David Turner66cbc202003-03-20 07:04:40 +000086
Werner Lemberga16c4a72003-04-21 13:30:27 +000087
Werner Lemberga7235262005-08-30 00:22:46 +000088 Read the file `CUSTOMIZE' in case you want to compile only a subset of
89 the drivers, renderers, and optional modules.
90
91 You are done. In case of problems, see the archives of the FreeType
Werner Lemberga16c4a72003-04-21 13:30:27 +000092 development mailing list.
David Turner66cbc202003-03-20 07:04:40 +000093
94
95II. Support for flat-directory compilation
96------------------------------------------
97
Werner Lemberga7235262005-08-30 00:22:46 +000098 It is possible to put all FreeType 2 source files into a single
David Turner66cbc202003-03-20 07:04:40 +000099 directory, with the *exception* of the `include' hierarchy.
100
Werner Lemberga16c4a72003-04-21 13:30:27 +0000101 1. Copy all files in current directory
David Turner66cbc202003-03-20 07:04:40 +0000102
Werner Lemberga16c4a72003-04-21 13:30:27 +0000103 cp freetype2/src/base/*.[hc] .
104 cp freetype2/src/raster1/*.[hc] .
105 cp freetype2/src/smooth/*.[hc] .
106 etc.
David Turner66cbc202003-03-20 07:04:40 +0000107
Werner Lemberga16c4a72003-04-21 13:30:27 +0000108 2. Compile sources
David Turner66cbc202003-03-20 07:04:40 +0000109
Werner Lemberga16c4a72003-04-21 13:30:27 +0000110 cc -c -Ifreetype2/include ftsystem.c
111 cc -c -Ifreetype2/include ftinit.c
112 cc -c -Ifreetype2/include ftdebug.c
113 cc -c -Ifreetype2/include ftbase.c
114 etc.
David Turner66cbc202003-03-20 07:04:40 +0000115
Werner Lemberga7235262005-08-30 00:22:46 +0000116 You don't need to define the FT_FLAT_COMPILATION macro (as this was
117 required in previous releases of FreeType 2).
David Turner66cbc202003-03-20 07:04:40 +0000118
Werner Lemberga7235262005-08-30 00:22:46 +0000119------------------------------------------------------------------------
Werner Lemberg56c368c2005-06-04 23:00:25 +0000120
121Copyright 2003, 2005 by
122David Turner, Robert Wilhelm, and Werner Lemberg.
123
Werner Lemberga7235262005-08-30 00:22:46 +0000124This file is part of the FreeType project, and may only be used,
125modified, and distributed under the terms of the FreeType project
126license, LICENSE.TXT. By continuing to use, modify, or distribute this
127file you indicate that you have read the license and understand and
128accept it fully.
Werner Lemberg56c368c2005-06-04 23:00:25 +0000129
Werner Lemberga16c4a72003-04-21 13:30:27 +0000130
131--- end of INSTALL.ANY ---