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