"SfR Fresh" - the SfR Freeware/Shareware Archive 
Member "freetype-2.3.7/docs/CUSTOMIZE" of archive freetype-2.3.7.tar.gz:
As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers.
Alternatively you can here view or download the uninterpreted source code file.
That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
1 How to customize the compilation of the library
2 ===============================================
3
4 FreeType is highly customizable to fit various needs, and this
5 document describes how it is possible to select options and
6 components at compilation time.
7
8
9 I. Configuration macros
10
11 The file found in `include/freetype/config/ftoption.h' contains a
12 list of commented configuration macros that can be toggled by
13 developers to indicate which features should be active while
14 building the library.
15
16 These options range from debug level to availability of certain
17 features, like native TrueType hinting through a bytecode
18 interpreter.
19
20 We invite you to read this file for more information. You can
21 change the file's content to suit your needs, or override it with
22 one of the techniques described below.
23
24
25 II. Modules list
26
27 If you use GNU make please edit the top-level file `modules.cfg'.
28 It contains a list of available FreeType modules and extensions to
29 be compiled. Change it to suit your own preferences. Be aware that
30 certain modules depend on others, as described in the file. GNU
31 make uses `modules.cfg' to generate `ftmodule.h' (in the object
32 directory).
33
34 If you don't use GNU make you have to manually edit the file
35 `include/freetype/config/ftmodule.h' (which is *not* used with if
36 compiled with GNU make) to add or remove the drivers and components
37 you want to compile into the library. See `INSTALL.ANY' for more
38 information.
39
40
41 III. System interface
42
43 FreeType's default interface to the system (i.e., the parts that
44 deal with memory management and i/o streams) is located in
45 `src/base/ftsystem.c'.
46
47 The current implementation uses standard C library calls to manage
48 memory and to read font files. It is however possible to write
49 custom implementations to suit specific systems.
50
51 To tell the GNU Make-based build system to use a custom system
52 interface, you have to define the environment variable FTSYS_SRC to
53 point to the relevant implementation:
54
55 on Unix:
56
57 ./configure <your options>
58 export FTSYS_SRC=foo/my_ftsystem.c
59 make
60 make install
61
62 on Windows:
63
64 make setup <compiler>
65 set FTSYS_SRC=foo/my_ftsystem.c
66 make
67
68
69 IV. Overriding default configuration and module headers
70
71 It is possible to override the default configuration and module
72 headers without changing the original files. There are three ways
73 to do that:
74
75
76 1. With GNU make
77
78 [This is actually a combination of method 2 and 3.]
79
80 Just put your custom `ftoption.h' file into the objects directory
81 (normally `<topdir>/objs'), which GNU make prefers over the
82 standard location. No action is needed for `ftmodule.h' because
83 it is generated automatically in the objects directory.
84
85
86 2. Using the C include path
87
88 Use the C include path to ensure that your own versions of the
89 files are used at compile time when the lines
90
91 #include FT_CONFIG_OPTIONS_H
92 #include FT_CONFIG_MODULES_H
93
94 are compiled. Their default values being
95 <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
96 can do something like:
97
98 custom/
99 freetype/
100 config/
101 ftoption.h => custom options header
102 ftmodule.h => custom modules list
103
104 include/ => normal FreeType 2 include
105 freetype/
106 ...
107
108 then change the C include path to always give the path to `custom'
109 before the FreeType 2 `include'.
110
111
112 3. Redefining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
113
114 Another way to do the same thing is to redefine the macros used to
115 name the configuration headers. To do so, you need a custom
116 `ft2build.h' whose content can be as simple as:
117
118 #ifndef __FT2_BUILD_MY_PLATFORM_H__
119 #define __FT2_BUILD_MY_PLATFORM_H__
120
121 #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
122 #define FT_CONFIG_MODULES_H <custom/my-ftmodule.h>
123
124 #include <freetype/config/ftheader.h>
125
126 #endif /* __FT2_BUILD_MY_PLATFORM_H__ */
127
128 Place those files in a separate directory, e.g.,
129
130 custom/
131 ft2build.h => custom version described above
132 my-ftoption.h => custom options header
133 my-ftmodule.h => custom modules list header
134
135 and change the C include path to ensure that `custom' is always
136 placed before the FT2 `include' during compilation.
137
138 ----------------------------------------------------------------------
139
140 Copyright 2003, 2005, 2006 by
141 David Turner, Robert Wilhelm, and Werner Lemberg.
142
143 This file is part of the FreeType project, and may only be used,
144 modified, and distributed under the terms of the FreeType project
145 license, LICENSE.TXT. By continuing to use, modify, or distribute
146 this file you indicate that you have read the license and understand
147 and accept it fully.
148
149
150 --- end of CUSTOMIZE ---