Edit

kc3-lang/freetype/docs/CUSTOMIZE

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2005-08-30 00:22:46
    Hash : a723526a
    Message : * include/freetype/freetype.h, include/freetype/ftchapters.h: Add a preliminary section with some explanations about user allocation. * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter): Don't abort if there are no data types, functions, etc., in a section. Print synopsis only if we have a data type, function, etc. * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE, docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX, docs/VERSION.DLL, docs/formats.txt: Revised, formatted.

  • docs/CUSTOMIZE
  • 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.
    
      Note that  you also  have to  rename the various  `*.mk' files  in the
      module directories  which you  want to exclude  so that  the extension
      isn't `.mk'  -- GNU make uses  a simple globbing  mechanism to include
      all those files.
    
    
    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. Redefining 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.
    
    ------------------------------------------------------------------------
    
    Copyright 2003, 2005 by
    David Turner, Robert Wilhelm, and Werner Lemberg.
    
    This  file is  part  of the  FreeType  project, and  may  only be  used,
    modified,  and  distributed under  the  terms  of  the FreeType  project
    license, LICENSE.TXT.  By continuing  to use, modify, or distribute this
    file  you indicate that  you have  read the  license and  understand and
    accept it fully.
    
    
    --- end of CUSTOMIZE ---