blob: 09d0d10fc04c87b25c09906a77ef5e78315a790a [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>
Werner Lemberg07791632005-12-12 07:40:58 +000041 src/base/ftgxval.c -- optional, see <freetype/ftgxval.h>
Werner Lembergf20a4d32005-08-10 13:24:51 +000042 src/base/ftmm.c -- optional, see <freetype/ftmm.h>
Werner Lemberg07791632005-12-12 07:40:58 +000043 src/base/ftotval.c -- optional, see <freetype/ftotval.h>
Werner Lembergf20a4d32005-08-10 13:24:51 +000044 src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
Werner Lemberg07791632005-12-12 07:40:58 +000045 src/base/ftstroke.c -- optional, see <freetype/ftstroke.h>
46 src/base/ftsynth.c -- optional, see <freetype/ftsynth.h>
47 src/base/fttype1.c -- optional, see <freetype/t1tables.h>
Werner Lemberga16c4a72003-04-21 13:30:27 +000048 src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
David Turner66cbc202003-03-20 07:04:40 +000049
Werner Lemberga16c4a72003-04-21 13:30:27 +000050 src/base/ftmac.c -- only on the Macintosh
David Turner66cbc202003-03-20 07:04:40 +000051
Werner Lemberg2b428d52005-10-15 05:49:31 +000052 -- font drivers (optional; at least one is needed)
Werner Lembergf20a4d32005-08-10 13:24:51 +000053
54 src/bdf/bdf.c -- BDF font driver
55 src/cff/cff.c -- CFF/OpenType font driver
56 src/cid/type1cid.c -- Type 1 CID-keyed font driver
57 src/pcf/pcf.c -- PCF font driver
58 src/pfr/pfr.c -- PFR/TrueDoc font driver
59 src/sfnt/sfnt.c -- SFNT files support
60 (TrueType & OpenType)
61 src/truetype/truetype.c -- TrueType font driver
62 src/type1/type1.c -- Type 1 font driver
63 src/type42/type42.c -- Type 42 font driver
Werner Lemberg8b560632006-01-19 08:30:58 +000064 src/winfonts/winfnt.c -- Windows FONT / FNT font driver
Werner Lembergf20a4d32005-08-10 13:24:51 +000065
Werner Lemberg2b428d52005-10-15 05:49:31 +000066 -- rasterizers (optional; at least one is needed for vector formats)
Werner Lembergf20a4d32005-08-10 13:24:51 +000067
Werner Lemberg2b428d52005-10-15 05:49:31 +000068 src/raster/raster.c -- monochrome rasterizer
Werner Lembergf20a4d32005-08-10 13:24:51 +000069 src/smooth/smooth.c -- anti-aliasing rasterizer
70
71 -- auxiliary modules (optional)
David Turner66cbc202003-03-20 07:04:40 +000072
Werner Lemberga37745b2005-03-23 16:45:24 +000073 src/autofit/autofit.c -- auto hinting module
Werner Lemberga16c4a72003-04-21 13:30:27 +000074 src/cache/ftcache.c -- cache sub-system (in beta)
Werner Lembergf20a4d32005-08-10 13:24:51 +000075 src/gzip/ftgzip.c -- support for compressed fonts (.gz)
76 src/lzw/ftlzw.c -- support for compressed fonts (.Z)
Suzuki, Toshiya (鈴木俊哉)a4386212005-08-24 04:31:31 +000077 src/gxvalid/gxvalid.c -- TrueTypeGX/AAT table validation
Werner Lembergf20a4d32005-08-10 13:24:51 +000078 src/otvalid/otvalid.c -- OpenType table validation
Werner Lemberga16c4a72003-04-21 13:30:27 +000079 src/psaux/psaux.c -- PostScript Type 1 parsing
Werner Lembergf20a4d32005-08-10 13:24:51 +000080 src/pshinter/pshinter.c -- PS hinting module
81 src/psnames/psnames.c -- PostScript glyph names support
82
David Turner66cbc202003-03-20 07:04:40 +000083
Werner Lemberga16c4a72003-04-21 13:30:27 +000084 Notes:
David Turner66cbc202003-03-20 07:04:40 +000085
Werner Lembergf20a4d32005-08-10 13:24:51 +000086 `cff.c' needs `sfnt.c', `pshinter.c', and `psnames.c'
David Turner66cbc202003-03-20 07:04:40 +000087 `truetype.c' needs `sfnt.c' and `psnames.c'
Werner Lembergf20a4d32005-08-10 13:24:51 +000088 `type1.c' needs `psaux.c' `pshinter.c', and `psnames.c'
89 `type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c'
90 `type42.c' needs `truetype.c'
David Turner66cbc202003-03-20 07:04:40 +000091
Werner Lemberga16c4a72003-04-21 13:30:27 +000092
Werner Lemberga7235262005-08-30 00:22:46 +000093 Read the file `CUSTOMIZE' in case you want to compile only a subset of
94 the drivers, renderers, and optional modules.
95
96 You are done. In case of problems, see the archives of the FreeType
Werner Lemberga16c4a72003-04-21 13:30:27 +000097 development mailing list.
David Turner66cbc202003-03-20 07:04:40 +000098
99
100II. Support for flat-directory compilation
101------------------------------------------
102
Werner Lemberga7235262005-08-30 00:22:46 +0000103 It is possible to put all FreeType 2 source files into a single
David Turner66cbc202003-03-20 07:04:40 +0000104 directory, with the *exception* of the `include' hierarchy.
105
Werner Lemberga16c4a72003-04-21 13:30:27 +0000106 1. Copy all files in current directory
David Turner66cbc202003-03-20 07:04:40 +0000107
Werner Lemberga16c4a72003-04-21 13:30:27 +0000108 cp freetype2/src/base/*.[hc] .
109 cp freetype2/src/raster1/*.[hc] .
110 cp freetype2/src/smooth/*.[hc] .
111 etc.
David Turner66cbc202003-03-20 07:04:40 +0000112
Werner Lemberga16c4a72003-04-21 13:30:27 +0000113 2. Compile sources
David Turner66cbc202003-03-20 07:04:40 +0000114
Werner Lemberga16c4a72003-04-21 13:30:27 +0000115 cc -c -Ifreetype2/include ftsystem.c
116 cc -c -Ifreetype2/include ftinit.c
117 cc -c -Ifreetype2/include ftdebug.c
118 cc -c -Ifreetype2/include ftbase.c
119 etc.
David Turner66cbc202003-03-20 07:04:40 +0000120
Werner Lemberga7235262005-08-30 00:22:46 +0000121 You don't need to define the FT_FLAT_COMPILATION macro (as this was
122 required in previous releases of FreeType 2).
David Turner66cbc202003-03-20 07:04:40 +0000123
Werner Lemberga7235262005-08-30 00:22:46 +0000124------------------------------------------------------------------------
Werner Lemberg56c368c2005-06-04 23:00:25 +0000125
Werner Lemberg8b560632006-01-19 08:30:58 +0000126Copyright 2003, 2005, 2006 by
Werner Lemberg56c368c2005-06-04 23:00:25 +0000127David Turner, Robert Wilhelm, and Werner Lemberg.
128
Werner Lemberga7235262005-08-30 00:22:46 +0000129This file is part of the FreeType project, and may only be used,
130modified, and distributed under the terms of the FreeType project
131license, LICENSE.TXT. By continuing to use, modify, or distribute this
132file you indicate that you have read the license and understand and
133accept it fully.
Werner Lemberg56c368c2005-06-04 23:00:25 +0000134
Werner Lemberga16c4a72003-04-21 13:30:27 +0000135
136--- end of INSTALL.ANY ---