diff options
Diffstat (limited to 'nx-X11/extras/freetype2/docs/CUSTOMIZE')
-rw-r--r-- | nx-X11/extras/freetype2/docs/CUSTOMIZE | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/nx-X11/extras/freetype2/docs/CUSTOMIZE b/nx-X11/extras/freetype2/docs/CUSTOMIZE new file mode 100644 index 000000000..8709b3dec --- /dev/null +++ b/nx-X11/extras/freetype2/docs/CUSTOMIZE @@ -0,0 +1,125 @@ +How to customize the compilation of the library: +================================================ + + FreeType is highly customizable to fit various needs, and this + document describes how it is possible to select options and components + at compilation time. + + +I. Configuration macros + + The file found in "include/freetype/config/ftoption.h" contains a list + of commented configuration macros that can be toggled by developers to + indicate which features should be active while building the library. + + These options range from debug level to availability of certain + features, like native TrueType hinting through a bytecode interpreter. + + We invite you to read this file for more information. You can change + the file's content to suit your needs, or override it with one of the + techniques described below. + + +II. Modules list + + The file found in "include/freetype/config/ftmodule.h" contains a list + of names corresponding to the modules and font drivers to be + statically compiled in the FreeType library during the build. + + You can change it to suit your own preferences. Be aware that certain + modules depend on others, as described by the file "modules.txt" in + this directory. + + You can modify the file's content to suit your needs, or override it + at compile time with one of the methods described below. + + +III. System interface + + FreeType's default interface to the system (i.e., the parts that deal + with memory management and i/o streams) is located in + "src/base/ftsystem.c". + + The current implementation uses standard C library calls to manage + memory and to read font files. It is however possible to write custom + implementations to suit specific systems. + + To tell the GNU Make-based build system to use a custom system + interface, you have to define the environment variable FTSYS_SRC to + point to the relevant implementation: + + on Unix: + + ./configure <your options> + export FTSYS_SRC=foo/my_ftsystem.c + make + make install + + on Windows: + + make setup <compiler> + set FTSYS_SRC=foo/my_ftsystem.c + make + + +IV. Overriding default configuration and module headers + + It is possible to override the default configuration and module + headers without changing the original files. There are two ways to do + that: + + + 1. Using the C include path + + Use the C include path to ensure that your own versions of the files + are used at compile time when the lines + + #include FT_CONFIG_OPTIONS_H + #include FT_CONFIG_MODULES_H + + are compiled. Their default values being + <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you + can do something like: + + custom/ + freetype/ + config/ + ftoption.h => custom options header + ftmodule.h => custom modules list + + include/ => normal FreeType 2 include + freetype/ + ... + + then change the C include path to always give the path to "custom" + before the FreeType 2 "include". + + + 2. Re-defining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H + + Another way to do the same thing is to redefine the macros used to + name the configuration headers. To do so, you need a custom + "ft2build.h" whose content can be as simple as: + + #ifndef __FT2_BUILD_MY_PLATFORM_H__ + #define __FT2_BUILD_MY_PLATFORM_H__ + + #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h> + #define FT_CONFIG_MODULES_H <custom/my-ftmodule.h> + + #include <freetype/config/ftheader.h> + + #endif /* __FT2_BUILD_MY_PLATFORM_H__ */ + + Place those files in a separate directory, e.g.: + + custom/ + ft2build.h => custom version described above + my-ftoption.h => custom options header + my-ftmodule.h => custom modules list header + + and change the C include path to ensure that "custom" is always + placed before the FT2 "include" during compilation. + + +--- end of CUSTOMIZE --- |