shithub: freetype+ttf2subf

Download patch

ref: d3c8e064a5587e924f83913e5eae38586b50840c
parent: bac727a41b1f6e0f83dc95eba6e853592ae997ac
author: David Turner <[email protected]>
date: Mon Dec 4 17:53:55 EST 2000

- updating the header inclusion scheme to use <ft2build.h> by
  default..

- created "builds/devel" to hold developer builds options
  for both Win32 and Unix

- fixed a bug in the winfonts driver, where the glyph image format
  wasn't set correctly..

git/fs: mount .git/fs: mount/attach disallowed
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,13 @@
+LATEST CHANGES
+
+    - changed the library header files inclusion scheme. Right now,
+      a client application can do something like this:
+      
+         #include <ft2build.h>   -- include build and setup configuration file
+         #include FT_FREETYPE_H  -- main API file
+         #include FT_GLYPH_H     -- abstract glyph image handling, etc..
+
+=========================================================================
 LATEST CHANGES BETWEEN 2.0.1 and 2.0:
 
   2.0.1 introduces a few changes:
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2000-12-04  David Turner  <[email protected]>
+
+	* builds/unix/install.mk, builds/unix/ft2unix.h: the file "ft2unix.h"
+	is now installed as <ft2build.h> for Unix systems. Note that we still
+	use the "freetype2/freetype" installation path for now..
+
+	* many files: now using <ft2build.h> as the default build and setup
+	configuration file in all public headers. Internal source files still
+	need some changes though..
+
+	* builds/devel/ft2build.h, builds/devel/ftoption.h: created a new
+	directory to hold all development options for both the Unix and
+	Win32 developer builds..
+
+	* builds/win32/detect.mk, builds/win32/w32-bccd.mk,
+	builds/win32/w32-dev.mk: changed the developer build targets to
+	"devel-gcc" and "devel-bcc" in order to be able to develop with
+	the Borland C++ compiler.
+
 2000-12-01  David Turner  <[email protected]>
 
 	* Version 2.0.1 released.
--- a/builds/compiler/bcc-dev.mk
+++ b/builds/compiler/bcc-dev.mk
@@ -61,7 +61,7 @@
 #   ANSI compliance.
 #
 ifndef CFLAGS
-  CFLAGS := -c -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
+  CFLAGS := -q -c -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
 endif
 
 # ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
--- a/builds/freetype.mk
+++ b/builds/freetype.mk
@@ -91,6 +91,15 @@
 #
 BASE_DIR := $(SRC)$(SEP)base
 
+# The build header file used to define all public header file names
+# as macro
+#
+ifndef FT_BUILD_H
+FT_BUILD_H  := $(TOP)$(SEP)include$(SEP)ft2build.h
+FTBUILD_CMD :=
+else
+FTBUILD_CMD = $DFT_BUILD_H=$(FT_BUILD_H)
+endif
 
 # A few short-cuts in order to avoid typing $(SEP) all the time for the
 # directory separator.
--- a/builds/unix/devel/freetype/config/ftoption.h
+++ /dev/null
@@ -1,400 +1,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftoption.h                                                             */
-/*                                                                         */
-/*    User-selectable configuration macros (specification only).           */
-/*                                                                         */
-/*  Copyright 1996-2000 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.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTOPTION_H__
-#define __FTOPTION_H__
-
-
-#ifdef __cplusplus
-  extern "C" {
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                 USER-SELECTABLE CONFIGURATION MACROS                  */
-  /*                                                                       */
-  /* These macros can be toggled by developers to enable or disable        */
-  /* certain aspects of FreeType.  This is a default file, where all major */
-  /* options are enabled.                                                  */
-  /*                                                                       */
-  /* Note that if some modifications are required for your build, we       */
-  /* advise you to put a modified copy of this file in your build          */
-  /* directory, rather than modifying it in-place.                         */
-  /*                                                                       */
-  /* The build directory is normally `freetype/builds/<system>' and        */
-  /* contains build or system-specific files that are included in          */
-  /* priority when building the library.                                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /**** G E N E R A L   F R E E T Y P E   2   C O N F I G U R A T I O N ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Convenience functions support                                         */
-  /*                                                                       */
-  /*   Some functions of the FreeType 2 API are provided as a convenience  */
-  /*   for client applications and developers. However,  they are not      */
-  /*   required to build and run the library itself.                       */
-  /*                                                                       */
-  /*   By defining this configuration macro, you'll disable the            */
-  /*   compilation of these functions at build time.  This can be useful   */
-  /*   to reduce the library's code size when you don't need any of        */
-  /*   these functions.                                                    */
-  /*                                                                       */
-  /*   All convenience functions are declared as such in their             */
-  /*   documentation.                                                      */
-  /*                                                                       */
-#undef FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Alternate Glyph Image Format support                                  */
-  /*                                                                       */
-  /*   By default, the glyph images returned by the FreeType glyph loader  */
-  /*   can either be a pixmap or a vectorial outline defined through       */
-  /*   Bezier control points.  When defining the following configuration   */
-  /*   macro, some font drivers will be able to register alternate         */
-  /*   glyph image formats.                                                */
-  /*                                                                       */
-  /*   Unset this macro if you are sure that you will never use a font     */
-  /*   driver with an alternate glyph format; this will reduce the size of */
-  /*   the base layer code.                                                */
-  /*                                                                       */
-  /*   Note that a few Type 1 fonts, as well as Windows `vector' fonts     */
-  /*   use a vector `plotter' format that isn't supported when this        */
-  /*   macro is undefined.                                                 */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Glyph Postscript Names handling                                       */
-  /*                                                                       */
-  /*   By default, FreeType 2 is compiled with the `PSNames' module.  This */
-  /*   This module is in charge of converting a glyph name string into a   */
-  /*   Unicode value, or return a Macintosh standard glyph name for the    */
-  /*   use with the TrueType `post' table.                                 */
-  /*                                                                       */
-  /*   Undefine this macro if you do not want `PSNames' compiled in your   */
-  /*   build of FreeType.  This has the following effects:                 */
-  /*                                                                       */
-  /*   - The TrueType driver will provide its own set of glyph names,      */
-  /*     if you build it to support postscript names in the TrueType       */
-  /*     `post' table.                                                     */
-  /*                                                                       */
-  /*   - The Type 1 driver will not be able to synthetize a Unicode        */
-  /*     charmap out of the glyphs found in the fonts.                     */
-  /*                                                                       */
-  /*   You would normally undefine this configuration macro when building  */
-  /*   a version of FreeType that doesn't contain a Type 1 or CFF driver.  */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Postscript Names to Unicode Values support                            */
-  /*                                                                       */
-  /*   By default, FreeType 2 is built with the `PSNames' module compiled  */
-  /*   in.  Among other things, the module is used to convert a glyph name */
-  /*   into a Unicode value.  This is especially useful in order to        */
-  /*   synthetize on the fly a Unicode charmap from the CFF/Type 1 driver  */
-  /*   through a big table named the `Adobe Glyph List' (AGL).             */
-  /*                                                                       */
-  /*   Undefine this macro if you do not want the Adobe Glyph List         */
-  /*   compiled in your `PSNames' module.  The Type 1 driver will not be   */
-  /*   able to synthetize a Unicode charmap out of the glyphs found in the */
-  /*   fonts.                                                              */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Many compilers provide the non-ANSI `long long' 64-bit type.  You can */
-  /* activate it by defining the FTCALC_USE_LONG_LONG macro.  Note that    */
-  /* this will produce many -ansi warnings during library compilation, and */
-  /* that in many cases the generated code will not be smaller or faster!  */
-  /*                                                                       */
-#undef FTCALC_USE_LONG_LONG
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DLL export compilation                                                */
-  /*                                                                       */
-  /*   When compiling FreeType as a DLL, some systems/compilers need a     */
-  /*   special keyword in front OR after the return type of function       */
-  /*   declarations.                                                       */
-  /*                                                                       */
-  /*   Two macros are used within the FreeType source code to define       */
-  /*   exported library functions: FT_EXPORT and FT_EXPORT_DEF.            */
-  /*                                                                       */
-  /*     FT_EXPORT( return_type )                                          */
-  /*                                                                       */
-  /*       is used in a function declaration, as in                        */
-  /*                                                                       */
-  /*         FT_EXPORT( FT_Error )                                         */
-  /*         FT_Init_FreeType( FT_Library*  alibrary );                    */
-  /*                                                                       */
-  /*                                                                       */
-  /*     FT_EXPORT_DEF( return_type )                                      */
-  /*                                                                       */
-  /*       is used in a function definition, as in                         */
-  /*                                                                       */
-  /*         FT_EXPORT_DEF( FT_Error )                                     */
-  /*         FT_Init_FreeType( FT_Library*  alibrary )                     */
-  /*         {                                                             */
-  /*           ... some code ...                                           */
-  /*           return FT_Err_Ok;                                           */
-  /*         }                                                             */
-  /*                                                                       */
-  /*   You can provide your own implementation of FT_EXPORT and            */
-  /*   FT_EXPORT_DEF here if you want.  If you leave them undefined, they  */
-  /*   will be later automatically defined as `extern return_type' to      */
-  /*   allow normal compilation.                                           */
-  /*                                                                       */
-#undef FT_EXPORT
-#undef FT_EXPORT_DEF
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Debug level                                                           */
-  /*                                                                       */
-  /*   FreeType can be compiled in debug or trace mode.  In debug mode,    */
-  /*   errors are reported through the `ftdebug' component.  In trace      */
-  /*   mode, additional messages are sent to the standard output during    */
-  /*   execution.                                                          */
-  /*                                                                       */
-  /*   Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode.     */
-  /*   Define FT_DEBUG_LEVEL_TRACE to build it in trace mode.              */
-  /*                                                                       */
-  /*   Don't define any of these macros to compile in `release' mode!      */
-  /*                                                                       */
-#define FT_DEBUG_LEVEL_ERROR
-#define FT_DEBUG_LEVEL_TRACE
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Computation Algorithms                                                */
-  /*                                                                       */
-  /*   Used for debugging, this configuration macro should disappear       */
-  /*   soon.                                                               */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_OLD_CALCS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The size in bytes of the render pool used by the scan-line converter  */
-  /* to do all of its work.                                                */
-  /*                                                                       */
-  /* This must be greater than 4kByte.                                     */
-  /*                                                                       */
-#define FT_RENDER_POOL_SIZE  16384
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FT_MAX_MODULES                                                        */
-  /*                                                                       */
-  /*   The maximum number of modules that can be registered in a single    */
-  /*   FreeType library object.  16 is the default.                        */
-  /*                                                                       */
-#define FT_MAX_MODULES  16
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FT_MAX_EXTENSIONS                                                     */
-  /*                                                                       */
-  /*   The maximum number of extensions that can be registered in a single */
-  /*   font driver.  8 is the default.                                     */
-  /*                                                                       */
-  /*   If you don't know what this means, you certainly do not need to     */
-  /*   change this value.                                                  */
-  /*                                                                       */
-#define FT_MAX_EXTENSIONS  8
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****        S F N T   D R I V E R    C O N F I G U R A T I O N       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support       */
-  /* embedded bitmaps in all formats using the SFNT module (namely         */
-  /* TrueType & OpenType).                                                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to    */
-  /* load and enumerate the glyph Postscript names in a TrueType or        */
-  /* OpenType file.                                                        */
-  /*                                                                       */
-  /* Note that when you do not compile the `PSNames' module by undefining  */
-  /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will   */
-  /* contain additional code used to read the PS Names table from a font.  */
-  /*                                                                       */
-  /* (By default, the module uses `PSNames' to extract glyph names.)       */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to       */
-  /* access the internal name table in a SFNT-based format like TrueType   */
-  /* or OpenType.  The name table contains various strings used to         */
-  /* describe the font, like family name, copyright, version, etc.  It     */
-  /* does not contain any glyph name though.                               */
-  /*                                                                       */
-  /* Accessing SFNT names is done through the functions declared in        */
-  /* `freetype/ftnames.h'.                                                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_SFNT_NAMES
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****    T R U E T Y P E   D R I V E R    C O N F I G U R A T I O N   ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile   */
-  /* a bytecode interpreter in the TrueType driver.  Note that there are   */
-  /* important patent issues related to the use of the interpreter.        */
-  /*                                                                       */
-  /* By undefining this, you will only compile the code necessary to load  */
-  /* TrueType glyphs without hinting.                                      */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType    */
-  /* bytecode interpreter with a huge switch statement, rather than a call */
-  /* table.  This results in smaller and faster code for a number of       */
-  /* architectures.                                                        */
-  /*                                                                       */
-  /* Note however that on some compiler/processor combinations, undefining */
-  /* this macro will generate faster, though larger, code.                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****      T Y P E 1   D R I V E R    C O N F I G U R A T I O N       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and       */
-  /* arrays in the Type 1 stream (see t1load.c).  A minimum of 4 is        */
-  /* required.                                                             */
-  /*                                                                       */
-#define T1_MAX_DICT_DEPTH  5
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine   */
-  /* calls during glyph loading.                                           */
-  /*                                                                       */
-#define T1_MAX_SUBRS_CALLS  16
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity.  A     */
-  /* minimum of 16 is required.                                            */
-  /*                                                                       */
-  /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */
-  /*                                                                       */
-#define T1_MAX_CHARSTRINGS_OPERANDS  256
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define T1_CONFIG_OPTION_DISABLE_HINTER if you want to generate a      */
-  /* driver with no hinter.  This can be useful to debug the parser.       */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_DISABLE_HINTER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this configuration macro if you want to prevent the            */
-  /* compilation of `t1afm', which is in charge of reading Type 1 AFM      */
-  /* files into an existing face.  Note that if set, the T1 driver will be */
-  /* unable to produce kerning distances.                                  */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_NO_AFM
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this configuration macro if you want to prevent the            */
-  /* compilation of the Multiple Masters font support in the Type 1        */
-  /* driver.                                                               */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
-
-
-#ifdef __cplusplus
-  }
-#endif
-
-
-#endif /* __FTOPTION_H__ */
-
-
-/* END */
--- /dev/null
+++ b/builds/unix/ft2unix.h
@@ -1,0 +1,34 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ft2build.h                                                             */
+/*                                                                         */
+/*    Build macros of the FreeType 2 library.                              */
+/*                                                                         */
+/*  Copyright 1996-2000 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.                                        */
+/*                                                                         */
+/*                                                                         */
+/*  This is a Unix-specific version of <ft2build.h> that should be         */
+/*  used exclusively _once_ the library has been installed on the          */
+/*  system.                                                                */
+/*                                                                         */
+/*  currently, the FreeType 2 root is at "freetype2/freetype", though      */
+/*  it will change to a simple "freetype2" in the near future..            */
+/*                                                                         */
+/***************************************************************************/
+
+#ifndef __FT2_BUILD_UNIX_H__
+#define __FT2_BUILD_UNIX_H__
+
+#define   FT2_ROOT   freetype2/freetype
+#include  <FT2_ROOT/config/ft2build.h>
+
+#endif /* __FT2_BUILD_UNIX_H__ */
+
+/* END */
--- a/builds/unix/install.mk
+++ b/builds/unix/install.mk
@@ -33,6 +33,7 @@
 	-for P in $(CACHE_H) ; do                                      \
           $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype/cache ; \
         done
+	$(INSTALL_DATA) $(BUILD)/ft2unix.h $(includedir)/ft2build.h
 	$(INSTALL_SCRIPT) -m 755 $(BUILD)/freetype-config \
           $(bindir)/freetype-config
 
--- a/builds/unix/unix-dev.mk
+++ b/builds/unix/unix-dev.mk
@@ -17,6 +17,8 @@
 
 
 include $(TOP)/builds/unix/unixddef.mk
+BUILD := $(TOP)/builds/devel
+
 include $(TOP)/builds/compiler/gcc-dev.mk
 include $(TOP)/builds/link_std.mk
 
--- a/builds/unix/unixddef.mk
+++ b/builds/unix/unixddef.mk
@@ -22,8 +22,10 @@
 DELETE   := rm -f
 SEP      := /
 HOSTSEP  := $(SEP)
+
 # we use a special devel ftoption.h
-BUILD    := $(TOP)/builds/unix/devel
+BUILD    := $(TOP)/builds/devel
+
 # do not set the platform to `unix', or libtool will trick you
 PLATFORM := unixdev
 
--- a/builds/win32/detect.mk
+++ b/builds/win32/detect.mk
@@ -96,7 +96,14 @@
       bcc32: setup
     endif
 
-    ifneq ($(findstring devel,$(MAKECMDGOALS)),)       # development target
+    ifneq ($(findstring devel-bcc,$(MAKECMDGOALS)),)   # development target
+      CONFIG_FILE := w32-bccd.mk
+      CC          := bcc32
+      SEP         := /
+      devel: setup
+    endif
+
+    ifneq ($(findstring devel-gcc,$(MAKECMDGOALS)),)   # development target
       CONFIG_FILE := w32-dev.mk
       CC          := gcc
       SEP         := /
--- a/builds/win32/devel/freetype/config/ftoption.h
+++ /dev/null
@@ -1,400 +1,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftoption.h                                                             */
-/*                                                                         */
-/*    User-selectable configuration macros (specification only).           */
-/*                                                                         */
-/*  Copyright 1996-2000 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.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTOPTION_H__
-#define __FTOPTION_H__
-
-
-#ifdef __cplusplus
-  extern "C" {
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                 USER-SELECTABLE CONFIGURATION MACROS                  */
-  /*                                                                       */
-  /* These macros can be toggled by developers to enable or disable        */
-  /* certain aspects of FreeType.  This is a default file, where all major */
-  /* options are enabled.                                                  */
-  /*                                                                       */
-  /* Note that if some modifications are required for your build, we       */
-  /* advise you to put a modified copy of this file in your build          */
-  /* directory, rather than modifying it in-place.                         */
-  /*                                                                       */
-  /* The build directory is normally `freetype/builds/<system>' and        */
-  /* contains build or system-specific files that are included in          */
-  /* priority when building the library.                                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /**** G E N E R A L   F R E E T Y P E   2   C O N F I G U R A T I O N ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Convenience functions support                                         */
-  /*                                                                       */
-  /*   Some functions of the FreeType 2 API are provided as a convenience  */
-  /*   for client applications and developers. However,  they are not      */
-  /*   required to build and run the library itself.                       */
-  /*                                                                       */
-  /*   By defining this configuration macro, you'll disable the            */
-  /*   compilation of these functions at build time.  This can be useful   */
-  /*   to reduce the library's code size when you don't need any of        */
-  /*   these functions.                                                    */
-  /*                                                                       */
-  /*   All convenience functions are declared as such in their             */
-  /*   documentation.                                                      */
-  /*                                                                       */
-#undef FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Alternate Glyph Image Format support                                  */
-  /*                                                                       */
-  /*   By default, the glyph images returned by the FreeType glyph loader  */
-  /*   can either be a pixmap or a vectorial outline defined through       */
-  /*   Bezier control points.  When defining the following configuration   */
-  /*   macro, some font drivers will be able to register alternate         */
-  /*   glyph image formats.                                                */
-  /*                                                                       */
-  /*   Unset this macro if you are sure that you will never use a font     */
-  /*   driver with an alternate glyph format; this will reduce the size of */
-  /*   the base layer code.                                                */
-  /*                                                                       */
-  /*   Note that a few Type 1 fonts, as well as Windows `vector' fonts     */
-  /*   use a vector `plotter' format that isn't supported when this        */
-  /*   macro is undefined.                                                 */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Glyph Postscript Names handling                                       */
-  /*                                                                       */
-  /*   By default, FreeType 2 is compiled with the `PSNames' module.  This */
-  /*   This module is in charge of converting a glyph name string into a   */
-  /*   Unicode value, or return a Macintosh standard glyph name for the    */
-  /*   use with the TrueType `post' table.                                 */
-  /*                                                                       */
-  /*   Undefine this macro if you do not want `PSNames' compiled in your   */
-  /*   build of FreeType.  This has the following effects:                 */
-  /*                                                                       */
-  /*   - The TrueType driver will provide its own set of glyph names,      */
-  /*     if you build it to support postscript names in the TrueType       */
-  /*     `post' table.                                                     */
-  /*                                                                       */
-  /*   - The Type 1 driver will not be able to synthetize a Unicode        */
-  /*     charmap out of the glyphs found in the fonts.                     */
-  /*                                                                       */
-  /*   You would normally undefine this configuration macro when building  */
-  /*   a version of FreeType that doesn't contain a Type 1 or CFF driver.  */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Postscript Names to Unicode Values support                            */
-  /*                                                                       */
-  /*   By default, FreeType 2 is built with the `PSNames' module compiled  */
-  /*   in.  Among other things, the module is used to convert a glyph name */
-  /*   into a Unicode value.  This is especially useful in order to        */
-  /*   synthetize on the fly a Unicode charmap from the CFF/Type 1 driver  */
-  /*   through a big table named the `Adobe Glyph List' (AGL).             */
-  /*                                                                       */
-  /*   Undefine this macro if you do not want the Adobe Glyph List         */
-  /*   compiled in your `PSNames' module.  The Type 1 driver will not be   */
-  /*   able to synthetize a Unicode charmap out of the glyphs found in the */
-  /*   fonts.                                                              */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Many compilers provide the non-ANSI `long long' 64-bit type.  You can */
-  /* activate it by defining the FTCALC_USE_LONG_LONG macro.  Note that    */
-  /* this will produce many -ansi warnings during library compilation, and */
-  /* that in many cases the generated code will not be smaller or faster!  */
-  /*                                                                       */
-#undef FTCALC_USE_LONG_LONG
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DLL export compilation                                                */
-  /*                                                                       */
-  /*   When compiling FreeType as a DLL, some systems/compilers need a     */
-  /*   special keyword in front OR after the return type of function       */
-  /*   declarations.                                                       */
-  /*                                                                       */
-  /*   Two macros are used within the FreeType source code to define       */
-  /*   exported library functions: FT_EXPORT and FT_EXPORT_DEF.            */
-  /*                                                                       */
-  /*     FT_EXPORT( return_type )                                          */
-  /*                                                                       */
-  /*       is used in a function declaration, as in                        */
-  /*                                                                       */
-  /*         FT_EXPORT( FT_Error )                                         */
-  /*         FT_Init_FreeType( FT_Library*  alibrary );                    */
-  /*                                                                       */
-  /*                                                                       */
-  /*     FT_EXPORT_DEF( return_type )                                      */
-  /*                                                                       */
-  /*       is used in a function definition, as in                         */
-  /*                                                                       */
-  /*         FT_EXPORT_DEF( FT_Error )                                     */
-  /*         FT_Init_FreeType( FT_Library*  alibrary )                     */
-  /*         {                                                             */
-  /*           ... some code ...                                           */
-  /*           return FT_Err_Ok;                                           */
-  /*         }                                                             */
-  /*                                                                       */
-  /*   You can provide your own implementation of FT_EXPORT and            */
-  /*   FT_EXPORT_DEF here if you want.  If you leave them undefined, they  */
-  /*   will be later automatically defined as `extern return_type' to      */
-  /*   allow normal compilation.                                           */
-  /*                                                                       */
-#undef FT_EXPORT
-#undef FT_EXPORT_DEF
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Debug level                                                           */
-  /*                                                                       */
-  /*   FreeType can be compiled in debug or trace mode.  In debug mode,    */
-  /*   errors are reported through the `ftdebug' component.  In trace      */
-  /*   mode, additional messages are sent to the standard output during    */
-  /*   execution.                                                          */
-  /*                                                                       */
-  /*   Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode.     */
-  /*   Define FT_DEBUG_LEVEL_TRACE to build it in trace mode.              */
-  /*                                                                       */
-  /*   Don't define any of these macros to compile in `release' mode!      */
-  /*                                                                       */
-#define FT_DEBUG_LEVEL_ERROR
-#define FT_DEBUG_LEVEL_TRACE
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Computation Algorithms                                                */
-  /*                                                                       */
-  /*   Used for debugging, this configuration macro should disappear       */
-  /*   soon.                                                               */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_OLD_CALCS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The size in bytes of the render pool used by the scan-line converter  */
-  /* to do all of its work.                                                */
-  /*                                                                       */
-  /* This must be greater than 4kByte.                                     */
-  /*                                                                       */
-#define FT_RENDER_POOL_SIZE  16384
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FT_MAX_MODULES                                                        */
-  /*                                                                       */
-  /*   The maximum number of modules that can be registered in a single    */
-  /*   FreeType library object.  16 is the default.                        */
-  /*                                                                       */
-#define FT_MAX_MODULES  16
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FT_MAX_EXTENSIONS                                                     */
-  /*                                                                       */
-  /*   The maximum number of extensions that can be registered in a single */
-  /*   font driver.  8 is the default.                                     */
-  /*                                                                       */
-  /*   If you don't know what this means, you certainly do not need to     */
-  /*   change this value.                                                  */
-  /*                                                                       */
-#define FT_MAX_EXTENSIONS  8
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****        S F N T   D R I V E R    C O N F I G U R A T I O N       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support       */
-  /* embedded bitmaps in all formats using the SFNT module (namely         */
-  /* TrueType & OpenType).                                                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to    */
-  /* load and enumerate the glyph Postscript names in a TrueType or        */
-  /* OpenType file.                                                        */
-  /*                                                                       */
-  /* Note that when you do not compile the `PSNames' module by undefining  */
-  /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will   */
-  /* contain additional code used to read the PS Names table from a font.  */
-  /*                                                                       */
-  /* (By default, the module uses `PSNames' to extract glyph names.)       */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to       */
-  /* access the internal name table in a SFNT-based format like TrueType   */
-  /* or OpenType.  The name table contains various strings used to         */
-  /* describe the font, like family name, copyright, version, etc.  It     */
-  /* does not contain any glyph name though.                               */
-  /*                                                                       */
-  /* Accessing SFNT names is done through the functions declared in        */
-  /* `freetype/ftnames.h'.                                                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_SFNT_NAMES
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****    T R U E T Y P E   D R I V E R    C O N F I G U R A T I O N   ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile   */
-  /* a bytecode interpreter in the TrueType driver.  Note that there are   */
-  /* important patent issues related to the use of the interpreter.        */
-  /*                                                                       */
-  /* By undefining this, you will only compile the code necessary to load  */
-  /* TrueType glyphs without hinting.                                      */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType    */
-  /* bytecode interpreter with a huge switch statement, rather than a call */
-  /* table.  This results in smaller and faster code for a number of       */
-  /* architectures.                                                        */
-  /*                                                                       */
-  /* Note however that on some compiler/processor combinations, undefining */
-  /* this macro will generate faster, though larger, code.                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****      T Y P E 1   D R I V E R    C O N F I G U R A T I O N       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and       */
-  /* arrays in the Type 1 stream (see t1load.c).  A minimum of 4 is        */
-  /* required.                                                             */
-  /*                                                                       */
-#define T1_MAX_DICT_DEPTH  5
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine   */
-  /* calls during glyph loading.                                           */
-  /*                                                                       */
-#define T1_MAX_SUBRS_CALLS  16
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity.  A     */
-  /* minimum of 16 is required.                                            */
-  /*                                                                       */
-  /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */
-  /*                                                                       */
-#define T1_MAX_CHARSTRINGS_OPERANDS  256
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define T1_CONFIG_OPTION_DISABLE_HINTER if you want to generate a      */
-  /* driver with no hinter.  This can be useful to debug the parser.       */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_DISABLE_HINTER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this configuration macro if you want to prevent the            */
-  /* compilation of `t1afm', which is in charge of reading Type 1 AFM      */
-  /* files into an existing face.  Note that if set, the T1 driver will be */
-  /* unable to produce kerning distances.                                  */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_NO_AFM
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this configuration macro if you want to prevent the            */
-  /* compilation of the Multiple Masters font support in the Type 1        */
-  /* driver.                                                               */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
-
-
-#ifdef __cplusplus
-  }
-#endif
-
-
-#endif /* __FTOPTION_H__ */
-
-
-/* END */
--- a/builds/win32/w32-bccd.mk
+++ b/builds/win32/w32-bccd.mk
@@ -13,8 +13,11 @@
 # fully.
 
 
-SEP := /
+SEP   := /
+
 include $(TOP)/builds/win32/win32-def.mk
+BUILD := $(TOP)/builds/devel
+
 include $(TOP)/builds/compiler/bcc-dev.mk
 
 # include linking instructions
--- a/builds/win32/w32-dev.mk
+++ b/builds/win32/w32-dev.mk
@@ -24,12 +24,15 @@
 endif
 
 SEP   := /
-BUILD := $(TOP)/builds/win32/devel
 
 include $(TOP)/builds/win32/win32-def.mk
+BUILD := $(TOP)/builds/devel
+
 include $(TOP)/builds/compiler/gcc-dev.mk
 
 # include linking instructions
 include $(TOP)/builds/link_dos.mk
+
+
 
 # EOF
--- a/include/freetype/cache/ftcchunk.h
+++ b/include/freetype/cache/ftcchunk.h
@@ -45,12 +45,9 @@
 #ifndef __FTCCHUNK_H__
 #define __FTCCHUNK_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
-#include   FT_CACHE_H
-#include   FT_CACHE_MANAGER_H
+#include <ft2build.h>
+#include FT_CACHE_H
+#include FT_CACHE_MANAGER_H
 
 FT_BEGIN_HEADER
 
--- a/include/freetype/cache/ftcglyph.h
+++ b/include/freetype/cache/ftcglyph.h
@@ -53,10 +53,7 @@
 #ifndef __FTCGLYPH_H__
 #define __FTCGLYPH_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_CACHE_H
 #include   FT_CACHE_MANAGER_H
 #include   <stddef.h>
--- a/include/freetype/cache/ftcimage.h
+++ b/include/freetype/cache/ftcimage.h
@@ -26,10 +26,7 @@
 #ifndef __FTCIMAGE_H__
 #define __FTCIMAGE_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_CACHE_H
 #include   FT_CACHE_INTERNAL_GLYPH_H
 
--- a/include/freetype/cache/ftcmanag.h
+++ b/include/freetype/cache/ftcmanag.h
@@ -62,10 +62,7 @@
 #ifndef __FTCMANAG_H__
 #define __FTCMANAG_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_CACHE_H
 #include   FT_CACHE_INTERNAL_LRU_H
 
--- a/include/freetype/cache/ftcsbits.h
+++ b/include/freetype/cache/ftcsbits.h
@@ -19,10 +19,7 @@
 #ifndef __FTCSBITS_H__
 #define __FTCSBITS_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_CACHE_H
 #include   FT_CACHE_INTERNAL_CHUNK_H
 #include   FT_CACHE_IMAGE_H
--- a/include/freetype/cache/ftlru.h
+++ b/include/freetype/cache/ftlru.h
@@ -58,10 +58,7 @@
 #ifndef __FTLRU_H__
 #define __FTLRU_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- /dev/null
+++ b/include/freetype/config/ft2build.h
@@ -1,0 +1,229 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ft2build.h                                                             */
+/*                                                                         */
+/*    Build macros of the FreeType 2 library.                              */
+/*                                                                         */
+/*  Copyright 1996-2000 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.                                        */
+/*                                                                         */
+/*                                                                         */
+/*  This file corresponds to the default "ft2build.h" file for             */
+/*  FreeType 2. It uses the "freetype" include root.                       */
+/*                                                                         */
+/*  Note that specific platforms might use a different configurations.     */
+/*  For example, on Unix, the "freetype2" include root is used, with       */
+/*  a specific "ft2build.h" used to take care of this. The latter          */
+/*  looks like the following:                                              */
+/*                                                                         */
+/*                                                                         */
+/*     #ifndef __FT_BUILD_UNIX_H__                                         */
+/*     #define __FT_BUILD_UNIX_H__                                         */
+/*                                                                         */
+/*     #define  FT_ROOT  freetype2                                         */
+/*     #include <FT_ROOT/config/ft2build.h>                                */
+/*                                                                         */
+/*     #endif // __FT_BUILD_UNIX_H__                                       */
+/*                                                                         */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef __FT2_BUILD_H__
+#define __FT2_BUILD_H__
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT2_ROOT is used to define the root of all public header    */
+  /* files for FreeType 2.  By default, it is set to "freetype", which     */
+  /* means that all public files should be included with a line like:      */
+  /*                                                                       */
+  /*   #include <freetype/...>                                             */
+  /*                                                                       */
+  /* Redefine it to something different if necessary, depending where the  */
+  /* library is installed on the particular system.                        */
+  /*                                                                       */
+#ifndef FT2_ROOT
+#define FT2_ROOT  freetype
+#endif
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT2_CONFIG_ROOT is used to define the root of all           */
+  /* configuration header files for FreeType 2.  By default, it is set to  */
+  /* "freetype/config", which means that all config files should be        */
+  /* include with a line like:                                             */
+  /*                                                                       */
+  /*   #include <freetype/config/...>                                      */
+  /*                                                                       */
+  /* Redefine it to something different, depending where the library is    */
+  /* installed on the particular system.                                   */
+  /*                                                                       */
+#ifndef FT2_CONFIG_ROOT
+#define FT2_CONFIG_ROOT  FT2_ROOT/config
+#endif
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT2_PUBLIC_FILE is used to include a FreeType 2 public file.*/
+  /* Its parameter is the file pathname, relative to the public root of a  */
+  /* given header file.                                                    */
+  /*                                                                       */
+#define FT2_PUBLIC_FILE( x )  <FT2_ROOT/x>
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT2_CONFIG_FILE is used to include a FreeType 2 config file.*/
+  /* Its parameter is the file pathname, relative to the configuration     */
+  /* root directory of a given header file.                                */
+  /*                                                                       */
+#define FT2_CONFIG_FILE( x )  <FT2_CONFIG_ROOT/x>
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT2_INTERNAL_FILE is used to include a FreeType 2 internal  */
+  /* file.  Its parameter is the file pathname, relative to the            */
+  /* configuration root directory of a given header file.                  */
+  /*                                                                       */
+#define FT2_INTERNAL_FILE( x )  <FT2_ROOT/internal/x>
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT2_COMPONENT_FILE is used to include a given FreeType 2    */
+  /* component source file (be it a header, a C source file, or an         */
+  /* included file).                                                       */
+  /*                                                                       */
+  /* Its first argument is the component/module's directory according to   */
+  /* the normal FreeType 2 source directory hierarchy, and the second one  */
+  /* the file name.                                                        */
+  /*                                                                       */
+  /* Note that you can also put all library source files in a single       */
+  /* directory and compile them normally by defining the macro             */
+  /* FT_FLAT_COMPILATION.                                                  */
+  /*                                                                       */
+#define FT2_COMPONENT_FILE( d, x )  <FT2_ROOT/d/x>
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT2_SOURCE_FILE is used to include a given FreeType 2       */
+  /* component source file (be it a header, a C source file, or an         */
+  /* included file).                                                       */
+  /*                                                                       */
+  /* Its first argument is the component/module's directory according to   */
+  /* the normal FreeType 2 source directory hierarchy, and the second one  */
+  /* the file name.                                                        */
+  /*                                                                       */
+  /* Note that you can also put all library source files in a single       */
+  /* directory and compile them normally by defining the macro             */
+  /* FT_FLAT_COMPILATION.                                                  */
+  /*                                                                       */
+#ifdef  FT2_FLAT_COMPILATION
+#define FT2_SOURCE_FILE( d, x )  <d/x>
+#else
+#define FT2_SOURCE_FILE( d, x )  "x"
+#endif
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Macro>                                                               */
+  /*    FT_BEGIN_HEADER                                                    */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    This macro is used in association with @FT_END_HEADER in header    */
+  /*    files to ensure that the declarations within are properly          */
+  /*    encapsulated in an `extern "C" { .. }' block when included from a  */
+  /*    C++ compiler.                                                      */
+  /*                                                                       */
+#ifdef __cplusplus
+#define FT_BEGIN_HEADER  extern "C" {
+#else
+#define FT_BEGIN_HEADER  /* nothing */
+#endif
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Macro>                                                               */
+  /*    FT_END_HEADER                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    This macro is used in association with @FT_BEGIN_HEADER in header  */
+  /*    files to ensure that the declarations within are properly          */
+  /*    encapsulated in an `extern "C" { .. }' block when included from a  */
+  /*    C++ compiler.                                                      */
+  /*                                                                       */
+#ifdef __cplusplus
+#define FT_END_HEADER  }
+#else
+#define FT_END_HEADER  /* nothing */
+#endif
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* Aliases for the FreeType 2 public and configuration files.            */
+  /*                                                                       */
+  /*************************************************************************/
+
+  /* don't add spaces around arguments to FT_CONFIG_FILE! */
+
+  /* configuration files */
+#ifndef   FT_CONFIG_CONFIG_H
+#  define FT_CONFIG_CONFIG_H     FT2_CONFIG_FILE(ftconfig.h)
+#endif
+
+#ifndef   FT_CONFIG_OPTIONS_H
+#  define FT_CONFIG_OPTIONS_H    FT2_CONFIG_FILE(ftoption.h)
+#endif
+
+#ifndef   FT_CONFIG_MODULES_H
+#  define FT_CONFIG_MODULES_H    FT2_CONFIG_FILE(ftmodule.h)
+#endif
+
+  /* public headers */
+#define FT_ERRORS_H            FT2_PUBLIC_FILE(fterrors.h)
+#define FT_SYSTEM_H            FT2_PUBLIC_FILE(ftsystem.h)
+#define FT_IMAGE_H             FT2_PUBLIC_FILE(ftimage.h)
+
+#define FT_TYPES_H             FT2_PUBLIC_FILE(fttypes.h)
+
+#define FT_FREETYPE_H          FT2_PUBLIC_FILE(freetype.h)
+#define FT_GLYPH_H             FT2_PUBLIC_FILE(ftglyph.h)
+#define FT_BBOX_H              FT2_PUBLIC_FILE(ftbbox.h)
+#define FT_CACHE_H             FT2_PUBLIC_FILE(ftcache.h)
+#define FT_LIST_H              FT2_PUBLIC_FILE(ftlist.h)
+#define FT_MAC_H               FT2_PUBLIC_FILE(ftmac.h)
+#define FT_MULTIPLE_MASTERS_H  FT2_PUBLIC_FILE(ftmm.h)
+#define FT_MODULE_H            FT2_PUBLIC_FILE(ftmodule.h)
+#define FT_NAMES_H             FT2_PUBLIC_FILE(ftnames.h)
+#define FT_OUTLINE_H           FT2_PUBLIC_FILE(ftoutln.h)
+#define FT_RENDER_H            FT2_PUBLIC_FILE(ftrender.h)
+#define FT_SYNTHESIS_H         FT2_PUBLIC_FILE(ftsynth.h)
+#define FT_TYPE1_TABLES_H      FT2_PUBLIC_FILE(t1tables.h)
+#define FT_TRUETYPE_NAMES_H    FT2_PUBLIC_FILE(ttnameid.h)
+#define FT_TRUETYPE_TABLES_H   FT2_PUBLIC_FILE(tttables.h)
+#define FT_TRUETYPE_TAGS_H     FT2_PUBLIC_FILE(tttags.h)
+
+
+  /* now include internal headers definitions from <freetype/internal/...> */
+#include FT2_PUBLIC_FILE(internal/internal.h)
+
+
+#endif /* __FT2_BUILD_H__ */
+
+
+/* END */
--- a/include/freetype/config/ftbuild.h
+++ /dev/null
@@ -1,210 +1,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftbuild.h                                                              */
-/*                                                                         */
-/*    Build macros of the FreeType 2 library.                              */
-/*                                                                         */
-/*  Copyright 1996-2000 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.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FT_BUILD_H__
-#define __FT_BUILD_H__
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_ROOT is used to define the root of all public header     */
-  /* files for FreeType 2.  By default, it is set to "freetype", which     */
-  /* means that all public files should be included with a line like:      */
-  /*                                                                       */
-  /*   #include <freetype/...>                                             */
-  /*                                                                       */
-  /* Redefine it to something different if necessary, depending where the  */
-  /* library is installed on the particular system.                        */
-  /*                                                                       */
-#ifndef FT_ROOT
-#define FT_ROOT  freetype
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_CONFIG_ROOT is used to define the root of all            */
-  /* configuration header files for FreeType 2.  By default, it is set to  */
-  /* "freetype/config", which means that all config files should be        */
-  /* include with a line like:                                             */
-  /*                                                                       */
-  /*   #include <freetype/config/...>                                      */
-  /*                                                                       */
-  /* Redefine it to something different, depending where the library is    */
-  /* installed on the particular system.                                   */
-  /*                                                                       */
-#ifndef FT_CONFIG_ROOT
-#define FT_CONFIG_ROOT  FT_ROOT/config
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_PUBLIC_FILE is used to include a FreeType 2 public file. */
-  /* Its parameter is the file pathname, relative to the public root of a  */
-  /* given header file.                                                    */
-  /*                                                                       */
-#define FT_PUBLIC_FILE( x )  <FT_ROOT/x>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_CONFIG_FILE is used to include a FreeType 2 config file. */
-  /* Its parameter is the file pathname, relative to the configuration     */
-  /* root directory of a given header file.                                */
-  /*                                                                       */
-#define FT_CONFIG_FILE( x )  <FT_CONFIG_ROOT/x>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_INTERNAL_FILE is used to include a FreeType 2 internal   */
-  /* file.  Its parameter is the file pathname, relative to the            */
-  /* configuration root directory of a given header file.                  */
-  /*                                                                       */
-#define FT_INTERNAL_FILE( x )  <FT_ROOT/internal/x>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT_FILE is used to include a given FreeType 2     */
-  /* component source file (be it a header, a C source file, or an         */
-  /* included file).                                                       */
-  /*                                                                       */
-  /* Its first argument is the component/module's directory according to   */
-  /* the normal FreeType 2 source directory hierarchy, and the second one  */
-  /* the file name.                                                        */
-  /*                                                                       */
-  /* Note that you can also put all library source files in a single       */
-  /* directory and compile them normally by defining the macro             */
-  /* FT_FLAT_COMPILATION.                                                  */
-  /*                                                                       */
-#define FT_COMPONENT_FILE( d, x )  <FT_ROOT/d/x>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_SOURCE_FILE is used to include a given FreeType 2        */
-  /* component source file (be it a header, a C source file, or an         */
-  /* included file).                                                       */
-  /*                                                                       */
-  /* Its first argument is the component/module's directory according to   */
-  /* the normal FreeType 2 source directory hierarchy, and the second one  */
-  /* the file name.                                                        */
-  /*                                                                       */
-  /* Note that you can also put all library source files in a single       */
-  /* directory and compile them normally by defining the macro             */
-  /* FT_FLAT_COMPILATION.                                                  */
-  /*                                                                       */
-#ifdef  FT_FLAT_COMPILATION
-#define FT_SOURCE_FILE( d, x )  <d/x>
-#else
-#define FT_SOURCE_FILE( d, x )  "x"
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Macro>                                                               */
-  /*    FT_BEGIN_HEADER                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This macro is used in association with @FT_END_HEADER in header    */
-  /*    files to ensure that the declarations within are properly          */
-  /*    encapsulated in an `extern "C" { .. }' block when included from a  */
-  /*    C++ compiler.                                                      */
-  /*                                                                       */
-#ifdef __cplusplus
-#define FT_BEGIN_HEADER  extern "C" {
-#else
-#define FT_BEGIN_HEADER  /* nothing */
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Macro>                                                               */
-  /*    FT_END_HEADER                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This macro is used in association with @FT_BEGIN_HEADER in header  */
-  /*    files to ensure that the declarations within are properly          */
-  /*    encapsulated in an `extern "C" { .. }' block when included from a  */
-  /*    C++ compiler.                                                      */
-  /*                                                                       */
-#ifdef __cplusplus
-#define FT_END_HEADER  }
-#else
-#define FT_END_HEADER  /* nothing */
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Aliases for the FreeType 2 public and configuration files.            */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /* don't add spaces around arguments to FT_CONFIG_FILE! */
-
-  /* configuration files */
-#ifndef   FT_CONFIG_CONFIG_H
-#  define FT_CONFIG_CONFIG_H     FT_CONFIG_FILE(ftconfig.h)
-#endif
-
-#ifndef   FT_CONFIG_OPTIONS_H
-#  define FT_CONFIG_OPTIONS_H    FT_CONFIG_FILE(ftoption.h)
-#endif
-
-#ifndef   FT_CONFIG_MODULES_H
-#  define FT_CONFIG_MODULES_H    FT_CONFIG_FILE(ftmodule.h)
-#endif
-
-  /* public headers */
-#define FT_ERRORS_H            FT_PUBLIC_FILE(fterrors.h)
-#define FT_SYSTEM_H            FT_PUBLIC_FILE(ftsystem.h)
-#define FT_IMAGE_H             FT_PUBLIC_FILE(ftimage.h)
-
-#define FT_TYPES_H             FT_PUBLIC_FILE(fttypes.h)
-
-#define FT_FREETYPE_H          FT_PUBLIC_FILE(freetype.h)
-#define FT_GLYPH_H             FT_PUBLIC_FILE(ftglyph.h)
-#define FT_BBOX_H              FT_PUBLIC_FILE(ftbbox.h)
-#define FT_CACHE_H             FT_PUBLIC_FILE(ftcache.h)
-#define FT_LIST_H              FT_PUBLIC_FILE(ftlist.h)
-#define FT_MAC_H               FT_PUBLIC_FILE(ftmac.h)
-#define FT_MULTIPLE_MASTERS_H  FT_PUBLIC_FILE(ftmm.h)
-#define FT_MODULE_H            FT_PUBLIC_FILE(ftmodule.h)
-#define FT_NAMES_H             FT_PUBLIC_FILE(ftnames.h)
-#define FT_OUTLINE_H           FT_PUBLIC_FILE(ftoutln.h)
-#define FT_RENDER_H            FT_PUBLIC_FILE(ftrender.h)
-#define FT_SYNTHESIS_H         FT_PUBLIC_FILE(ftsynth.h)
-#define FT_TYPE1_TABLES_H      FT_PUBLIC_FILE(t1tables.h)
-#define FT_TRUETYPE_NAMES_H    FT_PUBLIC_FILE(ttnameid.h)
-#define FT_TRUETYPE_TABLES_H   FT_PUBLIC_FILE(tttables.h)
-#define FT_TRUETYPE_TAGS_H     FT_PUBLIC_FILE(tttags.h)
-
-
-  /* now include internal headers definitions from <freetype/internal/...> */
-#include FT_PUBLIC_FILE(internal/internal.h)
-
-
-#endif /* __FT_BUILD_H__ */
-
-
-/* END */
--- a/include/freetype/config/ftconfig.h
+++ b/include/freetype/config/ftconfig.h
@@ -39,12 +39,7 @@
 #ifndef __FTCONFIG_H__
 #define __FTCONFIG_H__
 
-  /* Include the header file containing all developer build options */
-#ifndef   FT_BUILD_H
-#define   FT_BUILD_H   <freetype/config/ftbuild.h>
-#endif
-
-#include  FT_BUILD_H
+#include  <ft2build.h>
 #include  FT_CONFIG_OPTIONS_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -19,12 +19,6 @@
 #ifndef __FREETYPE_H__
 #define __FREETYPE_H__
 
-/* include potentially build-specific directives and macros */
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
-
   /*************************************************************************/
   /*                                                                       */
   /* The `raster' component duplicates some of the declarations in         */
@@ -43,6 +37,7 @@
 #define FREETYPE_MINOR 0
 
 
+#include <ft2build.h>
 #include FT_CONFIG_CONFIG_H
 #include FT_ERRORS_H
 #include FT_TYPES_H
--- a/include/freetype/ftbbox.h
+++ b/include/freetype/ftbbox.h
@@ -30,10 +30,7 @@
 #ifndef FTBBOX_H
 #define FTBBOX_H
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/ftcache.h
+++ b/include/freetype/ftcache.h
@@ -34,21 +34,18 @@
 #ifndef __FTCACHE_H__
 #define __FTCACHE_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_GLYPH_H
 
 FT_BEGIN_HEADER
 
-#define  FT_CACHE_MANAGER_H               FT_PUBLIC_FILE(cache/ftcmanag.h)
-#define  FT_CACHE_IMAGE_H                 FT_PUBLIC_FILE(cache/ftcimage.h)
-#define  FT_CACHE_SMALL_BITMAPS_H         FT_PUBLIC_FILE(cache/ftcsbits.h)
+#define  FT_CACHE_MANAGER_H               FT2_PUBLIC_FILE(cache/ftcmanag.h)
+#define  FT_CACHE_IMAGE_H                 FT2_PUBLIC_FILE(cache/ftcimage.h)
+#define  FT_CACHE_SMALL_BITMAPS_H         FT2_PUBLIC_FILE(cache/ftcsbits.h)
 
-#define  FT_CACHE_INTERNAL_LRU_H          FT_PUBLIC_FILE(cache/ftlru.h)
-#define  FT_CACHE_INTERNAL_GLYPH_H        FT_PUBLIC_FILE(cache/ftcglyph.h)
-#define  FT_CACHE_INTERNAL_CHUNK_H        FT_PUBLIC_FILE(cache/ftcchunk.h)
+#define  FT_CACHE_INTERNAL_LRU_H          FT2_PUBLIC_FILE(cache/ftlru.h)
+#define  FT_CACHE_INTERNAL_GLYPH_H        FT2_PUBLIC_FILE(cache/ftcglyph.h)
+#define  FT_CACHE_INTERNAL_CHUNK_H        FT2_PUBLIC_FILE(cache/ftcchunk.h)
 
 
   /*************************************************************************/
--- a/include/freetype/ftglyph.h
+++ b/include/freetype/ftglyph.h
@@ -32,10 +32,7 @@
 #ifndef __FTGLYPH_H__
 #define __FTGLYPH_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/ftimage.h
+++ b/include/freetype/ftimage.h
@@ -28,10 +28,7 @@
 #define __FTIMAGE_H__
 
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include <ft2build.h>
 
 FT_BEGIN_HEADER
 
--- a/include/freetype/ftlist.h
+++ b/include/freetype/ftlist.h
@@ -27,10 +27,7 @@
 #ifndef __FTLIST_H__
 #define __FTLIST_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/ftmm.h
+++ b/include/freetype/ftmm.h
@@ -19,10 +19,7 @@
 #ifndef __FTMM_H__
 #define __FTMM_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_TYPE1_TABLES_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/ftmodule.h
+++ b/include/freetype/ftmodule.h
@@ -19,10 +19,7 @@
 #ifndef __FTMODULE_H__
 #define __FTMODULE_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/ftnames.h
+++ b/include/freetype/ftnames.h
@@ -22,10 +22,7 @@
 #ifndef __FTNAMES_H__
 #define __FTNAMES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/ftoutln.h
+++ b/include/freetype/ftoutln.h
@@ -20,10 +20,7 @@
 #ifndef __FTOUTLN_H__
 #define __FTOUTLN_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/ftrender.h
+++ b/include/freetype/ftrender.h
@@ -19,10 +19,7 @@
 #ifndef __FTRENDER_H__
 #define __FTRENDER_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_MODULE_H
 #include   FT_GLYPH_H
 
--- a/include/freetype/ftsynth.h
+++ b/include/freetype/ftsynth.h
@@ -37,10 +37,7 @@
 #ifndef __FTSYNTH_H__
 #define __FTSYNTH_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/fttypes.h
+++ b/include/freetype/fttypes.h
@@ -19,11 +19,7 @@
 #ifndef __FTTYPES_H__
 #define __FTTYPES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_SYSTEM_H
 #include   FT_IMAGE_H
 #include   <stddef.h>
--- a/include/freetype/internal/autohint.h
+++ b/include/freetype/internal/autohint.h
@@ -69,10 +69,7 @@
   /*                                                                       */
   /*************************************************************************/
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/fnttypes.h
+++ b/include/freetype/internal/fnttypes.h
@@ -20,10 +20,7 @@
 #ifndef __FNTTYPES_H__
 #define __FNTTYPES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/ftcalc.h
+++ b/include/freetype/internal/ftcalc.h
@@ -19,10 +19,7 @@
 #ifndef __FTCALC_H__
 #define __FTCALC_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/ftdebug.h
+++ b/include/freetype/internal/ftdebug.h
@@ -19,10 +19,7 @@
 #ifndef __FTDEBUG_H__
 #define __FTDEBUG_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_CONFIG_CONFIG_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/ftdriver.h
+++ b/include/freetype/internal/ftdriver.h
@@ -19,10 +19,7 @@
 #ifndef __FTDRIVER_H__
 #define __FTDRIVER_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_MODULE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/ftextend.h
+++ b/include/freetype/internal/ftextend.h
@@ -19,10 +19,7 @@
 #ifndef __FTEXTEND_H__
 #define __FTEXTEND_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_INTERNAL_OBJECTS_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/ftmemory.h
+++ b/include/freetype/internal/ftmemory.h
@@ -19,10 +19,7 @@
 #ifndef __FTMEMORY_H__
 #define __FTMEMORY_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_CONFIG_CONFIG_H
 #include   FT_TYPES_H
 
--- a/include/freetype/internal/ftobjs.h
+++ b/include/freetype/internal/ftobjs.h
@@ -26,11 +26,7 @@
 #ifndef __FTOBJS_H__
 #define __FTOBJS_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-
-#include FT_BUILD_H
+#include <ft2build.h>
 #include FT_RENDER_H
 #include FT_INTERNAL_MEMORY_H
 #include FT_INTERNAL_DRIVER_H
--- a/include/freetype/internal/ftstream.h
+++ b/include/freetype/internal/ftstream.h
@@ -19,10 +19,7 @@
 #ifndef __FTSTREAM_H__
 #define __FTSTREAM_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_INTERNAL_OBJECTS_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/internal.h
+++ b/include/freetype/internal/internal.h
@@ -26,30 +26,30 @@
 
   /* don't add spaces around the argument of FT_INTERNAL_FILE! */
 
-#define FT_INTERNAL_OBJECTS_H           FT_INTERNAL_FILE(ftobjs.h)
-#define FT_INTERNAL_STREAM_H            FT_INTERNAL_FILE(ftstream.h)
-#define FT_INTERNAL_MEMORY_H            FT_INTERNAL_FILE(ftmemory.h)
-#define FT_INTERNAL_EXTENSION_H         FT_INTERNAL_FILE(ftextend.h)
-#define FT_INTERNAL_DEBUG_H             FT_INTERNAL_FILE(ftdebug.h)
-#define FT_INTERNAL_CALC_H              FT_INTERNAL_FILE(ftcalc.h)
-#define FT_INTERNAL_DRIVER_H            FT_INTERNAL_FILE(ftdriver.h)
+#define FT_INTERNAL_OBJECTS_H           FT2_INTERNAL_FILE(ftobjs.h)
+#define FT_INTERNAL_STREAM_H            FT2_INTERNAL_FILE(ftstream.h)
+#define FT_INTERNAL_MEMORY_H            FT2_INTERNAL_FILE(ftmemory.h)
+#define FT_INTERNAL_EXTENSION_H         FT2_INTERNAL_FILE(ftextend.h)
+#define FT_INTERNAL_DEBUG_H             FT2_INTERNAL_FILE(ftdebug.h)
+#define FT_INTERNAL_CALC_H              FT2_INTERNAL_FILE(ftcalc.h)
+#define FT_INTERNAL_DRIVER_H            FT2_INTERNAL_FILE(ftdriver.h)
 
-#define FT_INTERNAL_SFNT_H              FT_INTERNAL_FILE(sfnt.h)
+#define FT_INTERNAL_SFNT_H              FT2_INTERNAL_FILE(sfnt.h)
 
-#define FT_INTERNAL_TRUETYPE_TYPES_H    FT_INTERNAL_FILE(tttypes.h)
-#define FT_INTERNAL_TRUETYPE_ERRORS_H   FT_INTERNAL_FILE(tterrors.h)
+#define FT_INTERNAL_TRUETYPE_TYPES_H    FT2_INTERNAL_FILE(tttypes.h)
+#define FT_INTERNAL_TRUETYPE_ERRORS_H   FT2_INTERNAL_FILE(tterrors.h)
 
-#define FT_INTERNAL_TYPE1_ERRORS_H      FT_INTERNAL_FILE(t1errors.h)
-#define FT_INTERNAL_TYPE1_TYPES_H       FT_INTERNAL_FILE(t1types.h)
+#define FT_INTERNAL_TYPE1_ERRORS_H      FT2_INTERNAL_FILE(t1errors.h)
+#define FT_INTERNAL_TYPE1_TYPES_H       FT2_INTERNAL_FILE(t1types.h)
 
-#define FT_INTERNAL_CFF_ERRORS_H        FT_INTERNAL_FILE(t2errors.h)
-#define FT_INTERNAL_CFF_TYPES_H         FT_INTERNAL_FILE(t2types.h)
+#define FT_INTERNAL_CFF_ERRORS_H        FT2_INTERNAL_FILE(t2errors.h)
+#define FT_INTERNAL_CFF_TYPES_H         FT2_INTERNAL_FILE(t2types.h)
 
-#define FT_INTERNAL_POSTSCRIPT_NAMES_H  FT_INTERNAL_FILE(psnames.h)
-#define FT_INTERNAL_POSTSCRIPT_AUX_H    FT_INTERNAL_FILE(psaux.h)
+#define FT_INTERNAL_POSTSCRIPT_NAMES_H  FT2_INTERNAL_FILE(psnames.h)
+#define FT_INTERNAL_POSTSCRIPT_AUX_H    FT2_INTERNAL_FILE(psaux.h)
 
-#define FT_INTERNAL_AUTOHINT_H          FT_INTERNAL_FILE(autohint.h)
-#define FT_INTERNAL_FNT_TYPES_H         FT_INTERNAL_FILE(fnttypes.h)
+#define FT_INTERNAL_AUTOHINT_H          FT2_INTERNAL_FILE(autohint.h)
+#define FT_INTERNAL_FNT_TYPES_H         FT2_INTERNAL_FILE(fnttypes.h)
 
 
 /* END */
--- a/include/freetype/internal/psaux.h
+++ b/include/freetype/internal/psaux.h
@@ -20,10 +20,7 @@
 #ifndef __PSAUX_H__
 #define __PSAUX_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_INTERNAL_OBJECTS_H
 #include   FT_INTERNAL_TYPE1_TYPES_H
 
--- a/include/freetype/internal/psnames.h
+++ b/include/freetype/internal/psnames.h
@@ -20,10 +20,7 @@
 #ifndef __PSNAMES_H__
 #define __PSNAMES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/sfnt.h
+++ b/include/freetype/internal/sfnt.h
@@ -19,10 +19,7 @@
 #ifndef __SFNT_H__
 #define __SFNT_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_INTERNAL_DRIVER_H
 #include   FT_INTERNAL_TRUETYPE_TYPES_H
 
--- a/include/freetype/internal/t1types.h
+++ b/include/freetype/internal/t1types.h
@@ -20,10 +20,7 @@
 #ifndef __T1TYPES_H__
 #define __T1TYPES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include  <ft2build.h>
 #include   FT_TYPE1_TABLES_H
 #include   FT_INTERNAL_POSTSCRIPT_NAMES_H
 
--- a/include/freetype/internal/t2types.h
+++ b/include/freetype/internal/t2types.h
@@ -20,10 +20,7 @@
 #ifndef __T2TYPES_H__
 #define __T2TYPES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/internal/tttypes.h
+++ b/include/freetype/internal/tttypes.h
@@ -20,10 +20,7 @@
 #ifndef __TTTYPES_H__
 #define __TTTYPES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H  <freetype/config/ftbuild.h>
-#endif
-#include   FT_BUILD_H
+#include   <ft2build.h>
 #include   FT_TRUETYPE_TABLES_H
 #include   FT_INTERNAL_OBJECTS_H
 
--- a/include/freetype/t1tables.h
+++ b/include/freetype/t1tables.h
@@ -20,11 +20,7 @@
 #ifndef __T1TABLES_H__
 #define __T1TABLES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-
-#include FT_BUILD_H
+#include <ft2build.h>
 #include FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/tttables.h
+++ b/include/freetype/tttables.h
@@ -20,11 +20,7 @@
 #ifndef __TTTABLES_H__
 #define __TTTABLES_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-
-#include FT_BUILD_H
+#include <ft2build.h>
 #include FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- a/include/freetype/tttags.h
+++ b/include/freetype/tttags.h
@@ -19,11 +19,7 @@
 #ifndef __TTAGS_H__
 #define __TTAGS_H__
 
-#ifndef    FT_BUILD_H
-#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
-#endif
-
-#include FT_BUILD_H
+#include <ft2build.h>
 #include FT_FREETYPE_H
 
 FT_BEGIN_HEADER
--- /dev/null
+++ b/include/ft2build.h
@@ -1,0 +1,46 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ft2build.h                                                             */
+/*                                                                         */
+/*    FreeType 2 build and setup macros.                                   */
+/*    (Generic version)                                                    */
+/*                                                                         */
+/*  Copyright 1996-2000 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.                                        */
+/*                                                                         */
+/*                                                                         */
+/*  This file corresponds to the default "ft2build.h" file for             */
+/*  FreeType 2. It uses the "freetype" include root.                       */
+/*                                                                         */
+/*  Note that specific platforms might use a different configurations.     */
+/*  For example, on Unix, the "freetype2" include root is used, with       */
+/*  a specific "ft2build.h" used to take care of this. The latter          */
+/*  looks like the following:                                              */
+/*                                                                         */
+/*                                                                         */
+/*     #ifndef __FT_BUILD_UNIX_H__                                         */
+/*     #define __FT_BUILD_UNIX_H__                                         */
+/*                                                                         */
+/*     #define  FT_ROOT  freetype2                                         */
+/*     #include <FT_ROOT/config/ft2build.h>                                */
+/*                                                                         */
+/*     #endif // __FT_BUILD_UNIX_H__                                       */
+/*                                                                         */
+/*                                                                         */
+/***************************************************************************/
+
+
+#ifndef __FT2_BUILD_GENERIC_H__
+#define __FT2_BUILD_GENERIC_H__
+
+#include <freetype/config/ft2build.h>
+
+#endif /* __FT2_BUILD_GENERIC_H__ */
+
+/* END */
--- a/src/base/ftnames.c
+++ b/src/base/ftnames.c
@@ -48,7 +48,7 @@
       TT_Face  ttface = (TT_Face)face;
 
 
-      if ( index < ttface->num_names )
+      if ( index < (FT_UInt)ttface->num_names )
       {
         TT_NameRec*  name = ttface->name_table.names + index;
 
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -1024,7 +1024,7 @@
           /* I know that M$ encoded strings are Unicode,            */
           /* but this works reasonable well for debugging purposes. */
           if ( cur->string )
-            for ( j = 0; j < cur->stringLength; j++ )
+            for ( j = 0; j < (FT_UInt)cur->stringLength; j++ )
             {
               FT_Char  c = *( cur->string + j );
 
--- a/src/winfonts/winfnt.c
+++ b/src/winfonts/winfnt.c
@@ -584,6 +584,7 @@
     slot->metrics.horiBearingY = slot->bitmap_top << 6;
 
     slot->linearHoriAdvance    = (FT_Fixed)bitmap->width << 16;
+    slot->format               = ft_glyph_format_bitmap;
 
   Exit:
     return error;