ref: a16c4a7129d79c18ed74cdf825b67fe17d4707cb
parent: 692bbe59daf7046bb5d6951df9f95a1a7ec61c8b
author: Werner Lemberg <[email protected]>
date: Mon Apr 21 09:30:27 EDT 2003
* doc/INSTALL.UNX: Cleaned up. Other minor fixes/beautifying/formatting.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,210 +1,234 @@
+2003-04-20 Werner Lemberg <[email protected]>
+
+ * doc/INSTALL.UNX: Cleaned up.
+
2003-04-09 Torrey Lyons <[email protected]>
- * src/base/ftmac.c (open_face_from_buffer): removed a double-free bug that
- had nasty consequences when trying to open an "invalid" font on a Mac.
+ * src/base/ftmac.c (open_face_from_buffer): Removed a double-free
+ bug that had nasty consequences when trying to open an "invalid"
+ font on a Mac.
2003-04-09 Mike Fabian <[email protected]>
- * src/bdf/bdfdrivr.h, src/pcf/pcf.h: changed FT_Short to FT_UShort in
- order to be able to access more than 32768 glyphs in fonts
+ * src/bdf/bdfdrivr.h, src/pcf/pcf.h: Changed FT_Short to FT_UShort
+ in order to be able to access more than 32768 glyphs in fonts.
2003-04-08 David Turner <[email protected]>
- FreeType 2.1.4 Released
- =======================
+ * Version 2.1.4 is released.
+ ============================
+
+
2003-04-03 Martin Muskens <[email protected]>
- * src/type1/t1load.c (T1_Open_Face): fixed the code to make it handle
- special cases where a font only contains a ".notdef" glyph (happens in
- PDF-embedded fonts !!). Otherwise, FT_Panic was called !
+ * src/type1/t1load.c (T1_Open_Face): Fixed the code to make it
+ handle special cases where a font only contains a ".notdef" glyph
+ (happens in PDF-embedded fonts). Otherwise, FT_Panic was called.
2003-03-27 David Turner <[email protected]>
- * README: udpated
+ * README: Udpated.
- * README.UNX: removed (now replaced by docs/INSTALL.UNX)
+ * README.UNX: Removed (now replaced by docs/INSTALL.UNX).
- * src/pshinter/pshalgo3.c: the hinter now performs as in 2.1.3 and
- will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is used
+ * src/pshinter/pshalgo3.c: The hinter now performs as in 2.1.3 and
+ will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is
+ used.
- * src/base/ftobjs.c: changed the default computations to include rounding
- in all cases, this is required to provide accurate kerning data when
- native TrueType hinting is enabled.
+ * src/base/ftobjs.c: Changed the default computations to include
+ rounding in all cases; this is required to provide accurate kerning
+ data when native TrueType hinting is enabled.
- * src/type1/t1load.c: the Type 1 loader now accepts more general names
- according to the Postscript spec (the previous one was too restrictive)
+ * src/type1/t1load.c: The Type 1 loader now accepts more general
+ names according to the PostScript specification (the previous one
+ was too restrictive).
2003-03-20 David Turner <[email protected]>
- * docs/*: serious rewriting of the documentation
+ Serious rewriting of the documentation.
- * include/freetype/internal/ftobjs.h, src/base/ftobjs.c, src/bdf/bdfdrivr.c,
- src/pcf/pcfdriver.c, src/pfr/pfrsbit.c, src/sfnt/ttsbit.c,
- src/type42/t42objs.c, src/winfonts/winfnt.c: introduced three new functions
- to deal with glyph bitmaps within FT_GlyphSlot objects. these are:
+ * docs/BUGS, docs/BUILD: Removed.
+ * docs/DEBUG.TXT: Renamed to...
+ * docs/DEBUG: This.
+ * docs/CUSTOMIZE, docs/TRUETYPE, docs/UPGRADE.UNX: New files.
+ * docs/INSTALL.ANY, docs/INSTALL.UNX, docs/INSTALL.GNU New files,
+ containing platform specific information previously in INSTALL.
+ * docs/readme.vms: Renamed to...
+ * docs/INSTALL.VMS: This.
- ft_glyphslot_free_bitmap
- ft_glyphslot_alloc_bitmap
- ft_glyphslot_set_bitmap
+ * docs/*: Updated.
- these are much more convenient to use than managing the FT_GLYPH_OWN_BITMAP
- flag manually. the font drivers have been modified to use them as well.
+ * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
+ src/bdf/bdfdrivr.c, src/pcf/pcfdriver.c, src/pfr/pfrsbit.c,
+ src/sfnt/ttsbit.c, src/type42/t42objs.c, src/winfonts/winfnt.c:
+ Introduced three new functions to deal with glyph bitmaps within
+ FT_GlyphSlot objects:
- * src/cache/ftlru.c: fixed an invalid assertion check
+ ft_glyphslot_free_bitmap
+ ft_glyphslot_alloc_bitmap
+ ft_glyphslot_set_bitmap
- * src/autohint/ahglyph.h, src/autohint/ahglyph.c, src/autohint/ahglobal.c,
- src/autohint/ahhint.c: fixed blue-scale problem
+ These functions are much more convenient to use than managing the
+ FT_GLYPH_OWN_BITMAP flag manually. The font drivers have been
+ modified to use them as well.
- * src/cache/ftccache.c: fixed small bug that could crash the cache
- in rare circumstances (mostly with broken fonts)
+ * src/cache/ftlru.c: Fixed an invalid assertion check.
+ * src/autohint/ahglyph.h, src/autohint/ahglyph.c,
+ src/autohint/ahglobal.c, src/autohint/ahhint.c: Fixed blue-scale
+ problem.
+ * src/cache/ftccache.c: Fixed small bug that could crash the cache
+ in rare circumstances (mostly with broken fonts).
+
2003-03-15 David Turner <[email protected]>
- * src/truetype/ttdriver.c (Set_Char_Sizes): fixed a small rounding bug.
- Actually, it seems that previous versions of FreeType didn't perform
- TrueType rounding exactly as appropriate.
+ * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a small rounding
+ bug. Actually, it seems that previous versions of FreeType didn't
+ perform TrueType rounding exactly as appropriate.
2003-03-14 David Turner <[email protected]>
- * src/truetype/ttdriver.c: fixing the small TrueType native rendering
- glitches, they came from a small rounding error.
+ * src/truetype/ttdriver.c: Fixing the small TrueType native
+ rendering glitches, they came from a small rounding error.
2003-03-13 David Turner <[email protected]>
- * src/base/ftdbgmem.c, docs/DEBUG.TXT: added new environment variables
- to control memory debugging with FreeType. See the description of
- "FT2_DEBUG_MEMORY", "FT2_ALLOC_TOTAL_MAX" and "FT2_ALLOC_COUNT_MAX"
- in DEBUG.TXT
+ * src/base/ftdbgmem.c, docs/DEBUG.TXT: Added new environment
+ variables to control memory debugging with FreeType. See the
+ description of "FT2_DEBUG_MEMORY", "FT2_ALLOC_TOTAL_MAX" and
+ "FT2_ALLOC_COUNT_MAX" in DEBUG.TXT.
- * src/cache/ftccache.c, src/cache/ftccmap.c, src/cache/ftcsbits.c,
- ftlru.c: fixed the cache sub-system to correctly deal with out-of-memory
- conditions.
+ * src/cache/ftccache.c, src/cache/ftccmap.c, src/cache/ftcsbits.c,
+ src/cache/ftlru.c: Fixed the cache sub-system to correctly deal with
+ out-of-memory conditions.
- * src/pfr/pfrobjs.c, src/pfr/pfrsbits.c: fixing compiler warnings and a
- small memory leak
+ * src/pfr/pfrobjs.c, src/pfr/pfrsbits.c: Fixing compiler warnings
+ and a small memory leak.
- * src/psaux/psobjs.c (t1_reallocate_table): fixed a bug (memory leak) that
- only happened when trying to resize an array would end in an OOM.
+ * src/psaux/psobjs.c (t1_reallocate_table): Fixed a bug (memory
+ leak) that only happened when a try to resize an array would end in
+ an out-of-memory condition.
- * src/smooth/ftgrays.c: removed compiler warnings / volatile bug
+ * src/smooth/ftgrays.c: Removed compiler warnings / volatile bug.
- * src/truetype/ttobjs.c: removed segmentation fault that happened in
- tight memory environments.
+ * src/truetype/ttobjs.c: Removed segmentation fault that happened in
+ tight memory environments.
2003-02-28 Pixel <[email protected]>
- * src/gzip/ftgzip.c (ft_gzip_file_done): fixed memory leak, the ZLib
- stream was not properly finalized
+ * src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib
+ stream was not properly finalized.
2003-02-25 Anthony Fok <[email protected]>
- * src/cache/ftccmap.c: the cmap cache now supports UCS-4 charmaps
- when available in Asian fonts
+ * src/cache/ftccmap.c: The cmap cache now supports UCS-4 charmaps
+ when available in Asian fonts.
- * src/sfnt/ttload.c, src/base/ftobjs.c: changed "asian" to "Asian" in
- comments
+ * src/sfnt/ttload.c, src/base/ftobjs.c: Changed "asian" to "Asian"
+ in comments.
2003-02-25 David Turner <[email protected]>
- * src/gzip/ftgzip.c: fixed a bug that caused FreeType to loop endlessly
- when trying to read certain compressed gzip files. The following test
- could be used to reveal the bug:
+ * src/gzip/ftgzip.c: Fixed a bug that caused FreeType to loop
+ endlessly when trying to read certain compressed gzip files. The
+ following test could be used to reveal the bug:
- touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
+ touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
+ * src/pfr/pfrobjs.c, src/pfr/pfrload.c, src/pfr/pfrtypes.h: Several
+ fixes to the PFR font driver:
- * src/pfr/pfrobjs.c, src/pfr/pfrload.c, src/pfr/pfrtypes.h: several
- fixes to the PFR font driver:
+ - The list of available embedded bitmaps was not correctly set in
+ the root FT_FaceRec structure describing the face.
- - the list of available embedded bitmaps was not correctly set
- in the root FT_FaceRec structure describing the face
+ - The glyph loader always tried to load the outlines when
+ FT_LOAD_SBITS_ONLY was specified.
- - the glyph loader always tried to load the outlines when
- FT_LOAD_SBITS_ONLY was specified
+ - The table loaded now scans for *undocumented* elements of a
+ physical font's auxiliary data record. This is necessary to
+ retrieve the "real" family and style names.
- - the table loaded now scans for *undocumented* elements of a
- physical font's auxiliary data record, this is necessary to
- retrieve the "real" family and style names.
+ NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS!
- NOTE THAT THIS CHANGES THE FAMILY NAME OF MANY PFR FONTS !!
+ * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a rounding bug
+ when computing the scale factors for a given character size in
+ points with resolution.
- * src/truetype/ttdriver.c (Set_Char_Sizes): fixed a rounding bug when
- computing the scale factors for a given character size in points with
- resolution.
+ * devel/ft2build.h, devel/ftoption.h: New files (in a new directory)
+ which are special development versions of include/ft2build.h and
+ include/freetype/config/ftoption.h, respectively.
-
2003-02-18 David Turner <[email protected]>
- * src/truetype/ttdriver.c, src/truetype/ttobjs.h, src/truetype/ttobjs.c,
- src/truetype/ttinterp.c, src/base/ftobjs.c: fixing the slight distortion
- problem that occured due to the latest auto-hinter changes
+ * src/truetype/ttdriver.c, src/truetype/ttobjs.h,
+ src/truetype/ttobjs.c, src/truetype/ttinterp.c, src/base/ftobjs.c:
+ Fixing the slight distortion problem that ocurred due to the latest
+ auto-hinter changes.
+ * src/autohint/ahhint.c: Disabled the advance width "correction"
+ which seemed to provide more trouble than benefits.
- * src/autohint/ahhint.c: disabled the advance width "correction" which
- seemed to provide more trouble than benefits..
-
2003-02-13 Graham Asher <[email protected]>
- * include/freetype/ftincrem.h, src/cff/cffgload.c, src/cid/cidgload.c,
- src/truetype/ttgload.c, src/type1/t1gload.c
- [FT_CONFIG_OPTION_INCREMENTAL]: I have changed the incremental loading
- interface in a way that makes it simpler and allows glyph metrics to
- be changed (e.g., by adding a constant, as required by CFF fonts)
- rather than just overridden. This was required to make the GhsotScript-
- to-FreeType bridge work.
+ * include/freetype/ftincrem.h, src/cff/cffgload.c,
+ src/cid/cidgload.c, src/truetype/ttgload.c, src/type1/t1gload.c
+ [FT_CONFIG_OPTION_INCREMENTAL]: Changed the incremental loading
+ interface in a way that makes it simpler and allows glyph metrics to
+ be changed (e.g., by adding a constant, as required by CFF fonts)
+ rather than just overridden. This was required to make the
+ GhsotScript-to-FreeType bridge work.
2003-01-31 David Turner <[email protected]>
- * docs/CHANGES, docs/VERSION.DLL, docs/TODO: updating documentation for
- the 2.1.4 release
+ * docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation
+ for the 2.1.4 release.
- * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
- updating the project file for 2.1.4
+ * builds/win32/visualc/freetype.dsp,
+ builds/win32/visualc/index.html: Updating the project file for
+ 2.1.4.
- * src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c,
- src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c,
- src/gzip/infutil.c: removed old-style (K&R)function definitions. This
- avoids warnings with Visual C++ at its most pedantic mode.
+ * src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c,
+ src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c,
+ src/gzip/infutil.c: Removed old-style (K&R)function definitions.
+ This avoids warnings with Visual C++ at its most pedantic mode.
- * src/pfr/pfrsbit.c: removed compiler warnings
+ * src/pfr/pfrsbit.c: Removed compiler warnings.
- * src/cache/ftccmap.c: changed a FT_ERROR into a FT_TRACE1 since the
- it caused "ftview" and others to dump too much junk when trying to
- display a waterfall with a font without a Unicode charmap (e.g.
- SYMBOL.TTF)
+ * src/cache/ftccmap.c: Changed an FT_ERROR into an FT_TRACE1 since
+ it caused "ftview" and others to dump too much junk when trying to
+ display a waterfall with a font without a Unicode charmap (e.g.
+ SYMBOL.TTF).
- * src/autohint/ahtypes.h, src/autohint/ahhint.c, src/base/ftobjs.c,
- src/truetype/ttobjs.c: implemented FT_CONFIG_CHESTER_BLUE_SCALE,
- corresponding to the last patch from David Chester, but with a
- much simpler (and saner) implementation.
+ * src/autohint/ahtypes.h, src/autohint/ahhint.c, src/base/ftobjs.c,
+ src/truetype/ttobjs.c: Implemented FT_CONFIG_CHESTER_BLUE_SCALE,
+ corresponding to the last patch from David Chester, but with a much
+ simpler (and saner) implementation.
- * src/pshinter/pshalgo3.c: improved the Postscript hinter. Getting rid
- of stem snapping seems to work well here (though the stems are still
- slightly moved to increase contrast).
+ * src/pshinter/pshalgo3.c: Improved the Postscript hinter. Getting
+ rid of stem snapping seems to work well here (though the stems are
+ still slightly moved to increase contrast).
- THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
- STILL SUCK... I need to work this a bit
+ THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
+ STILL SUCK.
2003-01-22 David Chester <[email protected]>
- * src/autohint/ahhint.c: small fix to the stem width optimisation
+ * src/autohint/ahhint.c: Small fix to the stem width optimization.
2003-01-22 David Turner <[email protected]>
- * include/freetype/ftbdf.h, include/freetype/internal/bdftypes.h,
- src/base/ftbdf.c, src/bdf/bdfdrivr.c, src/pcf/pcfdrivr.c,
- src/pcf/pcfread.h:
+ * include/freetype/ftbdf.h, include/freetype/internal/bdftypes.h,
+ src/base/ftbdf.c, src/bdf/bdfdrivr.c, src/pcf/pcfdrivr.c,
+ src/pcf/pcfread.h: Adding a new API `FT_Get_BDF_Property' to
+ retrieve the BDF properties of a given PCF or BDF font.
- adding a new API, named FT_Get_BDF_Property to retrieve the BDF
- properties of a given PCF or BDF font
+ * src/sfnt/ttload.c (sfnt_dir_check): Relaxed the "head" table size
+ verification to accept a few broken fonts who pad the size
+ incorrectly (the table should be padded, but its "size" field
+ shouldn't according to the specification).
- * src/sfnt/ttload.c (sfnt_dir_check): relaxed the "head" table size
- verification to accept a few broken fonts who pad the size incorrectly
- (the table should be padded, but its "size" field shouldn't per se
- the spec)
-
2003-01-18 Werner Lemberg <[email protected]>
* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
@@ -325,9 +349,10 @@
2002-12-23 Anthony Fok <[email protected]>
- * builds/unix/configure.ac, builds/unix/unix-cc.in,
- builds/unix/unix-def.in: Small fix to configure sub-system on Unix
- to allow other programs to correctly link with zlib when needed.
+ * builds/unix/configure.ac, builds/unix/unix-cc.in (LINK_LIBRARY),
+ builds/unix/unix-def.in (SYSTEM_ZLIB): Small fix to configure
+ sub-system on Unix to allow other programs to correctly link with
+ zlib when needed.
2002-12-17 David Turner <[email protected]>
--- a/Jamfile
+++ b/Jamfile
@@ -1,4 +1,4 @@
-# FreeType 2 top Jamfile (c) 2001-2002 David Turner
+# FreeType 2 top Jamfile (c) 2001, 2002, 2003 David Turner
#
# The HDRMACRO is already defined in FTJam and is used to add
@@ -5,7 +5,7 @@
# the content of certain macros to the list of included header
# files.
#
-# we can compile FreeType 2 with classic Jam however thanks to
+# We can compile FreeType 2 with classic Jam however thanks to
# the following code
#
if ! $(JAM_TOOLSET)
@@ -12,10 +12,11 @@
{
rule HDRMACRO
{
- # nothing !!
+ # nothing
}
}
+
# We need to invoke a SubDir rule if the FT2 source directory top is not the
# current directory. This allows us to build FreeType 2 as part of a larger
# project easily.
@@ -25,64 +26,64 @@
SubDir FT2_TOP ;
}
-#
-# The following macros define the include directory, the source directory
-# and the final library name (without library extensions). They can be
+
+# The following macros define the include directory, the source directory,
+# and the final library name (without library extensions). They can be
# replaced by other definitions when the library is compiled as part of
# a larger project.
#
-# name of FreeType include directory during compilation.
-# relative to FT2_TOP
+# Name of FreeType include directory during compilation.
+# This is relative to FT2_TOP.
#
FT2_INCLUDE_DIR ?= include ;
-# name of FreeType source directory during compilation.
-# relative to FT2_TOP
+# Name of FreeType source directory during compilation.
+# This is relative to FT2_TOP.
#
FT2_SRC_DIR ?= src ;
-# name of final library, without extension
+# Name of final library, without extension.
#
FT2_LIB ?= $(LIBPREFIX)freetype ;
-# define FT2_BUILD_INCLUDE to point to your build-specific directory
-# this is prepended to FT2_INCLUDE_DIR. This can be used to specify
+# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
+# This is prepended to FT2_INCLUDE_DIR. It can be used to specify
# the location of a custom <ft2build.h> which will point to custom
-# versions of "ftmodule.h" and "ftoption.h", for example
+# versions of "ftmodule.h" and "ftoption.h", for example.
#
FT2_BUILD_INCLUDE ?= ;
-# the list of modules to compile on any given build of the library
-# by default, this will contain _all_ modules defined in FT2_SRC_DIR
+# The list of modules to compile on any given build of the library.
+# By default, this will contain _all_ modules defined in FT2_SRC_DIR.
#
# IMPORTANT: You'll need to change the content of "ftmodule.h" as well
# if you modify this list or provide your own.
#
-FT2_COMPONENTS ?= gzip # support for gzip-compressed files.
+FT2_COMPONENTS ?= gzip # support for gzip-compressed files
autohint # auto-hinter
base # base component (public APIs)
bdf # BDF font driver
cache # cache sub-system
cff # CFF/CEF font driver
- cid # Postscript CID-keyed font driver
+ cid # PostScript CID-keyed font driver
pcf # PCF font driver
pfr # PFR/TrueDoc font driver
- psaux # Common Postscript routines module
- pshinter # Postscript hinter module
- psnames # Postscript names handling
- raster # Monochrome rasterizer
- smooth # Anti-aliased rasterizer
+ psaux # common PostScript routines module
+ pshinter # PostScript hinter module
+ psnames # PostScript names handling
+ raster # monochrome rasterizer
+ smooth # anti-aliased rasterizer
sfnt # SFNT-based format support routines
truetype # TrueType font driver
- type1 # Postscript Type 1 font driver
- type42 # Postscript Type 42 (embedded TrueType) driver
+ type1 # PostScript Type 1 font driver
+ type42 # PostScript Type 42 (embedded TrueType) driver
winfonts # Windows FON/FNT font driver
;
-# don't touch
+# Don't touch.
#
FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
[ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
@@ -89,7 +90,7 @@
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
-# only used by FreeType developers
+# Only used by FreeType developers.
#
if $(DEBUG_HINTER)
{
@@ -104,11 +105,12 @@
# Uncomment the following line if you want to build individual source files
-# for each FreeType 2 module. this is only useful during development, and
-# is better defined as an environment variable anyway !
+# for each FreeType 2 module. This is only useful during development, and
+# is better defined as an environment variable anyway!
#
# FT2_MULTI = true ;
+
# The file <freetype/config/ftheader.h> is used to define macros that are
# later used in #include statements. It needs to be parsed in order to
# record these definitions.
@@ -116,6 +118,7 @@
HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ;
HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ;
+
# Now include the Jamfile in "freetype2/src", used to drive the compilation
# of each FreeType 2 component and/or module.
#
@@ -122,7 +125,7 @@
SubInclude FT2_TOP $(FT2_SRC_DIR) ;
-# tests files (hinter debugging). only used by FreeType developers
+# Test files (hinter debugging). Only used by FreeType developers.
#
if $(DEBUG_HINTER)
{
--- a/Jamfile.in
+++ b/Jamfile.in
@@ -1,4 +1,4 @@
-# FreeType 2 top Jamfile (c) 2001-2002 David Turner
+# FreeType 2 top Jamfile (c) 2001, 2002, 2003 David Turner
#
# The HDRMACRO is already defined in FTJam and is used to add
@@ -5,7 +5,7 @@
# the content of certain macros to the list of included header
# files.
#
-# we can compile FreeType 2 with classic Jam however thanks to
+# We can compile FreeType 2 with classic Jam however thanks to
# the following code
#
if ! $(JAM_TOOLSET)
@@ -12,10 +12,11 @@
{
rule HDRMACRO
{
- # nothing !!
+ # nothing
}
}
+
# We need to invoke a SubDir rule if the FT2 source directory top is not the
# current directory. This allows us to build FreeType 2 as part of a larger
# project easily.
@@ -25,64 +26,64 @@
SubDir FT2_TOP ;
}
-#
-# The following macros define the include directory, the source directory
-# and the final library name (without library extensions). They can be
+
+# The following macros define the include directory, the source directory,
+# and the final library name (without library extensions). They can be
# replaced by other definitions when the library is compiled as part of
# a larger project.
#
-# name of FreeType include directory during compilation.
-# relative to FT2_TOP
+# Name of FreeType include directory during compilation.
+# This is relative to FT2_TOP.
#
FT2_INCLUDE_DIR ?= include ;
-# name of FreeType source directory during compilation.
-# relative to FT2_TOP
+# Name of FreeType source directory during compilation.
+# This is relative to FT2_TOP.
#
FT2_SRC_DIR ?= src ;
-# name of final library, without extension
+# Name of final library, without extension.
#
FT2_LIB ?= $(LIBPREFIX)freetype ;
-# define FT2_BUILD_INCLUDE to point to your build-specific directory
-# this is prepended to FT2_INCLUDE_DIR. This can be used to specify
+# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
+# This is prepended to FT2_INCLUDE_DIR. It can be used to specify
# the location of a custom <ft2build.h> which will point to custom
-# versions of "ftmodule.h" and "ftoption.h", for example
+# versions of "ftmodule.h" and "ftoption.h", for example.
#
FT2_BUILD_INCLUDE ?= ;
-# the list of modules to compile on any given build of the library
-# by default, this will contain _all_ modules defined in FT2_SRC_DIR
+# The list of modules to compile on any given build of the library.
+# By default, this will contain _all_ modules defined in FT2_SRC_DIR.
#
# IMPORTANT: You'll need to change the content of "ftmodule.h" as well
# if you modify this list or provide your own.
#
-FT2_COMPONENTS ?= gzip # support for gzip-compressed files.
+FT2_COMPONENTS ?= gzip # support for gzip-compressed files
autohint # auto-hinter
base # base component (public APIs)
bdf # BDF font driver
cache # cache sub-system
cff # CFF/CEF font driver
- cid # Postscript CID-keyed font driver
+ cid # PostScript CID-keyed font driver
pcf # PCF font driver
pfr # PFR/TrueDoc font driver
- psaux # Common Postscript routines module
- pshinter # Postscript hinter module
- psnames # Postscript names handling
- raster # Monochrome rasterizer
- smooth # Anti-aliased rasterizer
+ psaux # common PostScript routines module
+ pshinter # PostScript hinter module
+ psnames # PostScript names handling
+ raster # monochrome rasterizer
+ smooth # anti-aliased rasterizer
sfnt # SFNT-based format support routines
truetype # TrueType font driver
- type1 # Postscript Type 1 font driver
- type42 # Postscript Type 42 (embedded TrueType) driver
+ type1 # PostScript Type 1 font driver
+ type42 # PostScript Type 42 (embedded TrueType) driver
winfonts # Windows FON/FNT font driver
;
-# don't touch
+# Don't touch.
#
FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
[ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
@@ -89,7 +90,7 @@
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
-# only used by FreeType developers
+# Only used by FreeType developers.
#
if $(DEBUG_HINTER)
{
@@ -103,13 +104,13 @@
HDRS += $(FT2_INCLUDE) ;
-#SubDirHdr += $(FT2_INCLUDE) ;
-
# Uncomment the following line if you want to build individual source files
-# for each FreeType 2 module.
+# for each FreeType 2 module. This is only useful during development, and
+# is better defined as an environment variable anyway!
#
# FT2_MULTI = true ;
+
# The file <freetype/config/ftheader.h> is used to define macros that are
# later used in #include statements. It needs to be parsed in order to
# record these definitions.
@@ -117,6 +118,7 @@
HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ;
HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ;
+
# Now include the Jamfile in "freetype2/src", used to drive the compilation
# of each FreeType 2 component and/or module.
#
@@ -123,7 +125,7 @@
SubInclude FT2_TOP $(FT2_SRC_DIR) ;
-# tests files (hinter debugging). only used by FreeType developers
+# Test files (hinter debugging). Only used by FreeType developers.
#
if $(DEBUG_HINTER)
{
--- a/Jamrules
+++ b/Jamrules
@@ -1,4 +1,4 @@
-# FreeType 2 JamRules (c) 2001 David Turner
+# FreeType 2 JamRules (c) 2001, 2002, 2003 David Turner
#
# This file contains the Jam rules needed to build the FreeType 2 library.
# It is shared by all Jamfiles and is included only once in the build
@@ -6,7 +6,7 @@
#
-# call SubDirHdrs on a list of directories
+# Call SubDirHdrs on a list of directories.
#
rule AddSubDirHdrs
{
--- a/README
+++ b/README
@@ -2,11 +2,11 @@
Special notes to Unix users
===========================
- Please read the file "docs/UPGRADE.UNX", it contains important
- information regarding the installation of FreeType on Unix systems,
+ Please read the file "docs/UPGRADE.UNX". It contains important
+ information regarding the installation of FreeType on Unix systems,
especially GNU based operating systems like GNU/Linux.
- FreeType 2's library is called `libfreetype', FreeType 1's library
+ FreeType 2's library is called `libfreetype', FreeType 1's library
is called `libttf'. They are *not* compatible!
@@ -13,12 +13,11 @@
FreeType 2.1.4
==============
- Please read the docs/CHANGES file, it contains IMPORTANT
- INFORMATION.
+ Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION.
- Read the files "docs/INSTALL" for installation instructions.
+ Read the files "docs/INSTALL" for installation instructions.
- Note that the FreeType 2 documentation is now available as a
+ Note that the FreeType 2 documentation is now available as a
separate package from our sites. See:
ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.1.4.tar.bz2
@@ -26,14 +25,13 @@
ftp://ftp.freetype.org/pub/freetype2/ftdoc214.zip
- Reports
- =======
+ Bugs
+ ====
- Please report bugs by e-mail to `[email protected]'. Don't
- forget to send a detailed explanation of the problem -- there is
- nothing worse than receiving a terse message that only says "it
- doesn't work".
-
+ Please report bugs by e-mail to `[email protected]'. Don't forget
+ to send a detailed explanation of the problem -- there is nothing
+ worse than receiving a terse message that only says "it doesn't
+ work".
Enjoy!
--- a/builds/unix/configure.ac
+++ b/builds/unix/configure.ac
@@ -81,7 +81,6 @@
AC_CHECK_FUNCS(memcpy memmove)
-
dnl Check for system zlib
AC_ARG_WITH(zlib,
[ --without-zlib use internal zlib instead of system-wide])
@@ -97,8 +96,6 @@
AC_SUBST(CFLAGS)
AC_SUBST(LDFLAGS)
AC_SUBST(SYSTEM_ZLIB)
-
-
AC_PROG_LIBTOOL
--- a/devel/ft2build.h
+++ b/devel/ft2build.h
@@ -5,7 +5,7 @@
/* FreeType 2 build and setup macros. */
/* (Generic version) */
/* */
-/* Copyright 1996-2001 by */
+/* Copyright 1996-2001, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -18,14 +18,14 @@
/*
- * this is a development version of <ft2build.h> that is used
- * to build the library in debug mode. Its only difference with
- * the reference is that is forces the use of the local "ftoption.h"
- * which contains different settings for all configuration macros
+ * Rhis is a development version of <ft2build.h> that is used
+ * to build the library in debug mode. Its only difference with
+ * the reference is that it forces the use of the local "ftoption.h"
+ * which contains different settings for all configuration macros.
*
- * to use it, you must define the environment variable FT2_BUILD_INCLUDE
+ * To use it, you must define the environment variable FT2_BUILD_INCLUDE
* to point to the directory containing these two files ("ft2build.h" and
- * "ftoption.h"), then invoke Jam as usual
+ * "ftoption.h"), then invoke Jam as usual.
*/
#ifndef __FT2_BUILD_GENERIC_H__
--- a/devel/ftoption.h
+++ b/devel/ftoption.h
@@ -4,7 +4,7 @@
/* */
/* User-selectable configuration macros (specification only). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -23,9 +23,9 @@
#include <ft2build.h>
/*
- * this is a special developer version of "ftoption.h", it is used
+ * This is a special developer version of "ftoption.h". It is used
* to define all debugging options, as well as the TrueType bytecode
- * interpreter
+ * interpreter.
*/
FT_BEGIN_HEADER
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -2,88 +2,95 @@
I. IMPORTANT BUG FIXES
- - updated to newest libtool version, fixes build problems on various
+ - Updated to newest libtool version, fixing build problems on various
platforms.
- - a fix in the Gzip stream reader, it couldn't read certain .gz files
- properly due to a small typo. In certain cases, FreeType could also
+ - A fix in the Gzip stream reader: It couldn't read certain .gz files
+ properly due to a small typo. In certain cases, FreeType could also
loop endlessly when trying to load tiny gzipped files.
- - the configure script now tries to use the system-wide zlib when
- it finds one (instead of the copy found in src/gzip). And
+ - The configure script now tries to use the system-wide zlib when
+ it finds one (instead of the copy found in src/gzip). And
"freetype-config" has been updated to return relevant flags in this
- case when invoked with "--libs" (e.g. "-lzlib")
+ case when invoked with "--libs" (e.g. "-lzlib").
- - certain fonts couldn't be loaded by 2.1.3 because they lacked a
- Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously rejected
+ - Certain fonts couldn't be loaded by 2.1.3 because they lacked a
+ Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously rejected
them.
- - the CFF loader was modified to accept fonts which only
- contain a subset of their reference charset. This prevented the
- correct use of PDF-embedded fonts.
+ - The CFF loader was modified to accept fonts which only contain a
+ subset of their reference charset. This prevented the correct use
+ of PDF-embedded fonts.
- - the logic to detect Unicode charmaps has been modified. this is required
- to support fonts which include both 16-bit and 32-bit charmaps (like
- very recent asian ones) using the new 10 and 12 SFNT formats.
+ - The logic to detect Unicode charmaps has been modified. This is
+ required to support fonts which include both 16-bit and 32-bit
+ charmaps (like very recent asian ones) using the new 10 and 12 SFNT
+ formats.
- - the TrueType loader now limits the depth of composite glyphs. This is
+ - The TrueType loader now limits the depth of composite glyphs. This is
necessary to prevent broken fonts to break the engine by blowing the
stack with recursive glyph definitions.
- - the CMap cache is now capable of managing UCS-4 character codes that
- are mapped through extended charmaps in recent TrueType/OpenType fonts
+ - The CMap cache is now capable of managing UCS-4 character codes that
+ are mapped through extended charmaps in recent TrueType/OpenType
+ fonts.
- - the cache sub-system now properly manages out-of-memory conditions,
- instead of blindly reporting them to the caller. This means that it
+ - The cache sub-system now properly manages out-of-memory conditions
+ instead of blindly reporting them to the caller. This means that it
will try to empty the cache before restarting its allocations to see
if that can help.
- - the PFR driver didn't return the list of available embedded bitmaps
+ - The PFR driver didn't return the list of available embedded bitmaps
properly.
- - there was a nasty memory leak when using embedded bitmaps in certain
+ - There was a nasty memory leak when using embedded bitmaps in certain
font formats.
+
II. IMPORTANT CHANGES
- David Chester contributed some enhancements to the auto-hinter that
- significantly increase the quality of its output. The Postscript hinter
- was also improved in several ways..
+ significantly increase the quality of its output. The Postscript
+ hinter was also improved in several ways.
- - the FT_RENDER_MODE_LIGHT render mode was implemented
+ - The FT_RENDER_MODE_LIGHT render mode was implemented.
- - a new API, called FT_Get_BDF_Property has been added to FT_BDF_H to
- retrieve BDF properties from BDF _and_ PCF font files. THIS IS STILL
- EXPERIMENTAL, since it hasn't been properly tested yet.
+ - A new API function called `FT_Get_BDF_Property' has been added to
+ FT_BDF_H to retrieve BDF properties from BDF _and_ PCF font files.
+ THIS IS STILL EXPERIMENTAL, since it hasn't been properly tested yet.
- - a Windows FNT specific API has been added, mostly to access font
- headers. This is used by Wine
+ - A Windows FNT specific API has been added, mostly to access font
+ headers. This is used by Wine.
- - TrueType tables without a "hmtx" table are now tolerated when an
- incremental interface is used. This happens for certain Type42 fonts
+ - TrueType tables without an "hmtx" table are now tolerated when an
+ incremental interface is used. This happens for certain Type42 fonts
passed from Ghostscript to FreeType.
- - the PFR font driver is now capable of returning the font family and
- style names when they're available (instead of the sole "FontID"). This
- is performed by parsing an *undocumented* portion of the font file !!
+ - The PFR font driver is now capable of returning the font family and
+ style names when they are available (instead of the sole "FontID").
+ This is performed by parsing an *undocumented* portion of the font
+ file!
+
III. MISCELLANEOUS
- - the path stroker in FT_STROKER_H has entered beta stage. It now works
- very well, but it's interface might change a bit in the future. More
- on this in later releases
+ - The path stroker in FT_STROKER_H has entered beta stage. It now works
+ very well, but its interface might change a bit in the future. More
+ on this in later releases.
- - the documentation for FT_Size_Metrics didn't appear properly in the
- API reference
+ - The documentation for FT_Size_Metrics didn't appear properly in the
+ API reference.
- - the file docs/VERSION.DLL has been updated to explain versioning
- with FreeType (i.e. comparing release/libtool/so numbers, and how
- to use them in Autoconf scripts)
+ - The file docs/VERSION.DLL has been updated to explain versioning
+ with FreeType (i.e., comparing release/libtool/so numbers, and how to
+ use them in autoconf scripts).
- - the installation documentation has been seriously revamped. Everything
- is now in the "docs" directory.
+ - The installation documentation has been seriously revamped.
+ Everything is now in the "docs" directory.
+
==============================================================================
+
LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
I. IMPORTANT BUG FIXES
@@ -114,17 +121,19 @@
precisely, when trying to apply hints to an empty glyph outline).
- The TrueType glyph loader now supports composites in "Apple format"
- (they differ slightly from Microsoft/OpenType ones in the way transform
- offsets are computed).
+ (they differ slightly from Microsoft/OpenType ones in the way
+ transformation offsets are computed).
- FreeType was very slow at opening certain asian CID/CFF fonts, due
- to fixed increment in dynamic array re-allocations. This has been
- changed to exponential behaviour to get acceptable performance
+ to fixed increment in dynamic array re-allocations. This has been
+ changed to exponential behaviour to get acceptable performance.
+
+
II. IMPORTANT CHANGES
- - the PCF driver now supports gzip-compressed font files natively. This
- means that you'll be able to use all these bitmap fonts that come
+ - The PCF driver now supports gzip-compressed font files natively. This
+ means that you will be able to use all these bitmap fonts that come
with XFree86 with FreeType (and libXft/libXft2, by extension).
- The automatic and postscript hinters have both been updated. This
@@ -163,10 +172,10 @@
Note that the 'ftview' demo program available in the 'ft2demos' package
has been updated to support LCD-optimized display on non-paletted
- displays (under Win32 and X11)
+ displays (under Win32 and X11).
- The PFR driver now supports embedded bitmaps (all formats supported),
- and returns correct kerning metrics for all glyphs
+ and returns correct kerning metrics for all glyphs.
- The TrueType charmap loader now supports certain "broken" fonts that
load under Windows without problems.
@@ -187,9 +196,10 @@
- Added support for the DESTDIR variable during "make install". This
simplifies packaging of FreeType.
- - included modified copies of the ZLib sources in 'src/gzip' in order
- to support gzip-compressed PCF fonts. We do not use the system-provided
- zlib for now, though this is a probable enhancement for future releases
+ - Included modified copies of the ZLib sources in 'src/gzip' in order to
+ support gzip-compressed PCF fonts. We do not use the system-provided
+ zlib for now, though this is a probable enhancement for future
+ releases.
- The DocMaker tool used to generate the on-line API reference has been
completely rewritten. It is now located in
--- a/docs/CUSTOMIZE
+++ b/docs/CUSTOMIZE
@@ -1,79 +1,85 @@
How to customize the compilation of the library:
================================================
- FreeType is highly customizable to fit various needs, and this document
- details how it is possible to select options and components at compilation
- time.
+ FreeType is highly customizable to fit various needs, and this
+ document describes how it is possible to select options and components
+ at compilation time.
-I. Configuration macros:
+I. Configuration macros
- the file found in "include/freetype/config/ftoption.h" contains a list
+ The file found in "include/freetype/config/ftoption.h" contains a list
of commented configuration macros that can be toggled by developers to
- indicate which features to activate in their build of the library.
+ indicate which features should be active while building the library.
- these options range from debug level to availability of certain
+ These options range from debug level to availability of certain
features, like native TrueType hinting through a bytecode interpreter.
- we invite you to read this file for more information. You can change
- the file's content to suit your needs, or override it with one of the
- techniques described below..
+ We invite you to read this file for more information. You can change
+ the file's content to suit your needs, or override it with one of the
+ techniques described below.
-II. Modules list:
+II. Modules list
- the file found in "include/freetype/config/ftmodule.h" contains a list
- of names corresponding to the modules / font drivers to be statically
- compiled in the FreeType library during the build.
+ The file found in "include/freetype/config/ftmodule.h" contains a list
+ of names corresponding to the modules and font drivers to be
+ statically compiled in the FreeType library during the build.
- you can change it to suit your own preferences. Be aware that certain
- modules depend on others, as described by the file "modules.txt" in
+ You can change it to suit your own preferences. Be aware that certain
+ modules depend on others, as described by the file "modules.txt" in
this directory.
- you can modify the file's content to suit your needs, or override it
- at compile time with one of the methods described below
+ You can modify the file's content to suit your needs, or override it
+ at compile time with one of the methods described below.
-III. System interface:
+III. System interface
- FreeType's default interface to the system (i.e. the parts that deal with
- memory management and i/o streams) is located in "src/base/ftsystem.c".
+ FreeType's default interface to the system (i.e., the parts that deal
+ with memory management and i/o streams) is located in
+ "src/base/ftsystem.c".
- the current implementation uses standard C library calls to manage
- memory and read font files. It is however possible to write custom
+ The current implementation uses standard C library calls to manage
+ memory and to read font files. It is however possible to write custom
implementations to suit specific systems.
- to tell the GNU Make-based build system to use a custom system interface,
- you'll need to define the environment variable FTSYS_SRC to point to
- the relevant implementation, like in:
+ To tell the GNU Make-based build system to use a custom system
+ interface, you have to define the environment variable FTSYS_SRC to
+ point to the relevant implementation:
- on Unix:
- ./configure <youroptions>
- export FTSYS_SRC=foo/my_ftsystem.c
- make
- make install
+ on Unix:
+
+ ./configure <your options>
+ export FTSYS_SRC=foo/my_ftsystem.c
+ make
+ make install
- on Windows:
- make setup <compiler>
- set FTSYS_SRC=foo/my_ftsystem.c
- make
+ on Windows:
+
+ make setup <compiler>
+ set FTSYS_SRC=foo/my_ftsystem.c
+ make
-IV. Overriding default configuration and module headers:
+IV. Overriding default configuration and module headers
- it is possible to over-ride the default configuration and module headers
- without changing the original files. There are two ways to do that:
+ It is possible to override the default configuration and module
+ headers without changing the original files. There are two ways to do
+ that:
- 1. Using the C include path:
+
+ 1. Using the C include path
- use the C include path to ensure that your own versions of the
- files are used at compile time when the lines:
+ Use the C include path to ensure that your own versions of the files
+ are used at compile time when the lines
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_MODULES_H
- are compiled. Their default values being <freetype/config/ftoption.h>
- and <freetype/config/ftmodule.h>, you can do something like:
+ are compiled. Their default values being
+ <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
+ can do something like:
custom/
freetype/
@@ -82,36 +88,38 @@
ftmodule.h => custom modules list
include/ => normal FreeType 2 include
- freetype/
- ...
+ freetype/
+ ...
- then change the C include path to always give the path to "custom"
- before the FreeType 2 "include"
+ then change the C include path to always give the path to "custom"
+ before the FreeType 2 "include".
2. Re-defining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
- another way to do the same thing is to re-define the macros used
- to name the configuration headers. To do so, you'll need a custom
- "ft2build.h", whose content can be as simple as:
+ Another way to do the same thing is to redefine the macros used to
+ name the configuration headers. To do so, you need a custom
+ "ft2build.h" whose content can be as simple as:
- #ifndef __FT2_BUILD_GENERIC_H__
- #define __FT2_BUILD_GENERIC_H__
+ #ifndef __FT2_BUILD_GENERIC_H__
+ #define __FT2_BUILD_GENERIC_H__
- #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
- #define FT_CONFIG_MACROS_H <custom/my-ftmodule.h>
+ #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
+ #define FT_CONFIG_MACROS_H <custom/my-ftmodule.h>
- #include <freetype/config/ftheader.h>
+ #include <freetype/config/ftheader.h>
- #endif /* __FT2_BUILD_GENERIC_H__ */
+ #endif /* __FT2_BUILD_GENERIC_H__ */
- place them in:
+ Place those files in a separate directory, e.g.:
- custom/
- ft2build.h => custom version described above
- my-ftoption.h => custom options header
- my-ftmodule.h => custom modules list header
+ custom/
+ ft2build.h => custom version described above
+ my-ftoption.h => custom options header
+ my-ftmodule.h => custom modules list header
- and change the C include path to ensure that "custom" is always placed
- before the FT2 "include" during compilation.
+ and change the C include path to ensure that "custom" is always
+ placed before the FT2 "include" during compilation.
+
+--- end of CUSTOMIZE ---
--- a/docs/DEBUG
+++ b/docs/DEBUG
@@ -1,5 +1,5 @@
-Debugging within the FreeType sources:
-======================================
+Debugging within the FreeType sources
+=====================================
I. Configuration macros
-----------------------
@@ -12,15 +12,15 @@
FT_DEBUG_LEVEL_ERROR
#define this macro if you want to compile the FT_ERROR macro calls
- used to print error messages during program execution. This will
- not stop the program, but is very useful to spot invalid fonts
- during development and code workarounds for them.
+ to print error messages during program execution. This will not
+ stop the program. Very useful to spot invalid fonts during
+ development and to code workarounds for them.
FT_DEBUG_LEVEL_TRACE
- #define this macro if you want to compile both the FT_ERROR macro
- and the FT_TRACE one. This also includes the variants FT_TRACE0,
- FT_TRACE1, FT_TRACE2, ..., FT_TRACE6.
+ #define this macro if you want to compile both macros FT_ERROR and
+ FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1,
+ FT_TRACE2, ..., FT_TRACE6.
The trace macros are used to send debugging messages when an
appropriate "debug level" is configured at runtime through the
@@ -28,7 +28,7 @@
FT_DEBUG_MEMORY
- If this macro is #defined, the FreeType engines is linked with a
+ If this macro is #defined, the FreeType engine is linked with a
small but effective debugging memory manager that tracks all
allocations and frees that are performed within the font engine.
@@ -35,7 +35,7 @@
When the FT2_DEBUG_MEMORY environment variable is defined at
runtime, a call to FT_Done_FreeType will dump memory statistics,
including the list of leaked memory blocks with the source locations
- where these were allocated. It's always a very good idea to define
+ where these were allocated. It is always a very good idea to define
this in development builds. This works with _any_ program linked to
FreeType, but requires a big deal of memory (the debugging memory
manager never frees the blocks to the heap in order to detect double
@@ -42,7 +42,7 @@
frees).
When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory
- manager is ignored, and performance is un-affected.
+ manager is ignored, and performance is unaffected.
II. Debugging macros
@@ -59,7 +59,7 @@
either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in
"ftoption.h".
- Note that you must use with a printf-like signature, but with double
+ Note that you have to use a printf-like signature, but with double
parentheses, like in:
FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
@@ -93,9 +93,9 @@
trace_XXXX where XXXX is one of the component names defined in the
internal file <freetype/internal/fttrace.h>.
- Each such component is assigned a "debug level", ranging from 0 to 6
- when a program linked with FreeType starts, through the use of the
- FT2_DEBUG environment variable, described later.
+ Each such component is assigned a "debug level", ranging from 0
+ to 6, through the use of the FT2_DEBUG environment variable
+ (described below) when a program linked with FreeType starts.
When FT_TRACE is called, its level is compared to the one of the
corresponding component. Messages with trace levels *higher* than
@@ -106,7 +106,7 @@
least* 2.
The second parameter to FT_TRACE must contain parentheses and
- correspond to a print-like call, as in:
+ correspond to a printf-like call, as in:
FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
@@ -123,7 +123,6 @@
The following environment variables control debugging output and
behaviour of FreeType at runtime:
-
FT2_DEBUG
This variable is only used when FreeType is built with
@@ -133,7 +132,7 @@
component1:level1 component2:level2 component3:level3 ...
where "componentX" is the name of a tracing component, as defined in
- "fttrace.h", but without the "trace_" prefix, and "levelX" is the
+ "fttrace.h", but without the "trace_" prefix. "levelX" is the
corresponding level to use at runtime.
"any" is a special component name that will be interpreted as
@@ -140,18 +139,18 @@
"any/all components". For example, the following definitions
set FT2_DEBUG=any:2 memory:5 io:4 (on Windows)
- export FT2_DEBUG="any:2 memory:5 io:4" (on Linux)
+ export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash)
both stipulate that all components should have level 2, except for
- the memory and io components which will be set to trace levels 5 and
- 4 respectively.
+ the memory and io components which will be set to trace levels 5
+ and 4, respectively.
FT2_DEBUG_MEMORY
This environment variable, when defined, tells FreeType to use a
- debugging memory manager that will track leaked memory blocks as
+ debugging memory manager that will track leaking memory blocks as
well as other common errors like double frees. It is also capable
- of reporting _where_ the leaked blocks were allocated, which
+ of reporting _where_ the leaking blocks were allocated, which
considerably saves time when debugging new additions to the library.
This code is only compiled when FreeType is built with the
@@ -158,26 +157,27 @@
FT_DEBUG_MEMORY macro #defined in "ftoption.h" though, it will be
ignored in other builds.
-
FT2_ALLOC_TOTAL_MAX
- this variable is ignored if FT2_DEBUG_MEMORY is not defined. It allows
- you to specify a maximum heap size for all memory allocations performed
- by FreeType. This is very useful to test the robustness of the font
- engine and programs that use it in tight memory conditions.
+ This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
+ allows you to specify a maximum heap size for all memory allocations
+ performed by FreeType. This is very useful to test the robustness
+ of the font engine and programs that use it in tight memory
+ conditions.
- If it is undefined, or if its value is not strictly positive, then no
- allocation bounds are checked at runtime.
+ If it is undefined, or if its value is not strictly positive, then
+ no allocation bounds are checked at runtime.
-
FT2_ALLOC_COUNT_MAX
- this variable is ignored if FT2_DEBUG_MEMORY is not defined. It allows
- you to sepcify a maximum number of memory allocations performed by
- FreeType before returning the error FT_Err_Out_Of_Memory. This is
- useful for debugging and testing the engine's robustness.
+ This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
+ allows you to specify a maximum number of memory allocations
+ performed by FreeType before returning the error
+ FT_Err_Out_Of_Memory. This is useful for debugging and testing the
+ engine's robustness.
- If it is undefined, or if its value is not strictly positive, then no
- allocation bounsd are checked at runtime.
+ If it is undefined, or if its value is not strictly positive, then
+ no allocation bounsd are checked at runtime.
-End of file
+
+--- end of DEBUG ---
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -1,65 +1,66 @@
-Welcome
-There are several ways to build the FreeType library, depending on your
-system and the level of customization you need. Here's a short overview
-of the documentation available:
+There are several ways to build the FreeType library, depending on your
+system and the level of customization you need. Here is a short
+overview of the documentation available:
-I. Normal installation and upgrades:
- 1. Native TrueType Hinting:
-
- Native TrueType hinting is disabled by default[1]. If you really need it,
- read the file "TRUETYPE" for information.
+I. Normal installation and upgrades
+===================================
-
- 2. Unix Systems (as well as Cygwin or MSys on Windows):
+ 1. Native TrueType Hinting
+ Native TrueType hinting is disabled by default[1]. If you really
+ need it, read the file "TRUETYPE" for information.
+
+ 2. Unix Systems (as well as Cygwin or MSys on Windows)
+
Please read *both* UPGRADE.UNX and INSTALL.UNX to install or upgrade
- FreeType 2 on a Unix system. Note that you *will* need GNU Make, since
- other make tools won't work (this includes BSD Make !!)
+ FreeType 2 on a Unix system. Note that you *will* need GNU Make,
+ since other make tools won't work (this includes BSD Make).
- 3. On VMS with the "mms" build tool:
+ 3. On VMS with the "mms" build tool
- see INSTALL.VMS for installation instructions on this platform
+ See INSTALL.VMS for installation instructions on this platform.
- 4. Other systems using GNU Make:
+ 4. Other systems using GNU Make
- on non-Unix platforms, it's possible to build the library using
- GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK* !!
- This methods supports several compilers on Windows, OS/2 and BeOS,
+ On non-Unix platforms, it is possible to build the library using GNU
+ Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]! This
+ methods supports several compilers on Windows, OS/2, and BeOS,
including Mingw, Visual C++, Borland C++, and more.
- instructions are provided in the file "INSTALL.GNU"
+ Instructions are provided in the file "INSTALL.GNU".
-
- 5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior):
+ 5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior)
- we provide a small number of "project files" for various IDEs to
- automatically build the library as well. Note that these files are
- not supported and sporadically maintained by FreeType developers,
- so don't expect them to work in each release.
+ We provide a small number of "project files" for various IDEs to
+ automatically build the library as well. Note that these files are
+ not supported and sporadically maintained by FreeType developers, so
+ don't expect them to work in each release.
- to find them, have a look at the content of the "builds/<system>"
+ To find them, have a look at the content of the "builds/<system>"
directory, where <system> stands for your OS or environment.
-
- 6. From you own IDE, or own Makefiles:
+ 6. From you own IDE, or own Makefiles
If you want to create your own project file, follow the instructions
given in the "INSTALL.ANY" document of this directory.
-II. Custom builds of the library:
-
- Customizing the compilation of FreeType is easy, and allows you to select
- only the components of the font engine that you really need. For more details
- read the file "CUSTOMIZE"
+II. Custom builds of the library
+================================
+ Customizing the compilation of FreeType is easy, and allows you to
+ select only the components of the font engine that you really need.
+ For more details read the file "CUSTOMIZE".
---------------------------------------------------------------------
+------------------------------------------------------------------------
+
[1] More details on: http://www.freetype.org/patents.html
-End of file
+[2] make++, a make tool written in Perl, has sufficient support of GNU
+ make extensions to build FreeType. See
+ http://makepp.sourceforge.net for more information.
-
\ No newline at end of file
+--- end of INSTALL ---
--- a/docs/INSTALL.ANY
+++ b/docs/INSTALL.ANY
@@ -1,65 +1,65 @@
-Instructions on how to build FreeType with your own build tool:
+Instructions on how to build FreeType with your own build tool
+==============================================================
- see the file "CUSTOMIZE" to learn how to customize FreeType to
- specific environments.
+See the file "CUSTOMIZE" to learn how to customize FreeType to specific
+environments.
- follow these simple steps:
-I. Normal way:
---------------
+I. Standard procedure
+---------------------
- * DISABLE PRE-COMPILED HEADERS ! This is very important for Visual
+ * DISABLE PRE-COMPILED HEADERS! This is very important for Visual
C++, because FreeType uses lines like:
- #include FT_FREETYPE_H
+ #include FT_FREETYPE_H
- which are not correctly supported by this compiler, while being
- ISO C compliant !!
+ which are not correctly supported by this compiler while being ISO C
+ compliant!
* You need to add the directories "freetype2/include" to your include
path when compiling the library.
- * FreeType 2 is made of several components; each one of them is
- located in a subdirectory of "freetype2/src". For example,
+ * FreeType 2 is made of several components; each of them is located in
+ a subdirectory of "freetype2/src". For example,
'freetype2/src/truetype/' contains the TrueType font driver.
* DO NOT COMPILE ALL C FILES! Rather, compile the following ones:
- -- base components (required)
+ -- base components (required)
- src/base/ftsystem.c
- src/base/ftinit.c
- src/base/ftdebug.c
- src/base/ftbase.c
- src/base/ftglyph.c
- src/base/ftbbox.c
- src/base/ftmm.c
- src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
- src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
- src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
+ src/base/ftsystem.c
+ src/base/ftinit.c
+ src/base/ftdebug.c
+ src/base/ftbase.c
+ src/base/ftglyph.c
+ src/base/ftbbox.c
+ src/base/ftmm.c
+ src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
+ src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
+ src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
- src/base/ftmac.c -- only on the Macintosh
+ src/base/ftmac.c -- only on the Macintosh
- -- other components are optional
+ -- other components (optional)
- src/autohint/autohint.c -- auto hinting module
- src/cache/ftcache.c -- cache sub-system (in beta)
- src/sfnt/sfnt.c -- SFNT files support
- (TrueType & OpenType)
- src/cff/cff.c -- CFF/OpenType font driver
- src/pfr/pfr.c -- PFR/TrueDoc font driver
- src/bdf/bdf.c -- BDF font driver
- src/pcf/pcf.c -- PCF font driver
- src/psnames/psnames.c -- Postscript glyph names support
- src/psaux/psaux.c -- Postscript Type 1 parsing
- src/truetype/truetype.c -- TrueType font driver
- src/type1/type1.c -- Type 1 font driver
- src/cid/type1cid.c -- Type 1 CID-keyed font driver
- src/winfonts/winfonts.c -- Windows FONT / FNT font driver
- src/raster1/raster1.c -- monochrome rasterizer
- src/smooth/smooth.c -- anti-aliasing rasterizer
+ src/autohint/autohint.c -- auto hinting module
+ src/cache/ftcache.c -- cache sub-system (in beta)
+ src/sfnt/sfnt.c -- SFNT files support
+ (TrueType & OpenType)
+ src/cff/cff.c -- CFF/OpenType font driver
+ src/pfr/pfr.c -- PFR/TrueDoc font driver
+ src/bdf/bdf.c -- BDF font driver
+ src/pcf/pcf.c -- PCF font driver
+ src/psnames/psnames.c -- PostScript glyph names support
+ src/psaux/psaux.c -- PostScript Type 1 parsing
+ src/truetype/truetype.c -- TrueType font driver
+ src/type1/type1.c -- Type 1 font driver
+ src/cid/type1cid.c -- Type 1 CID-keyed font driver
+ src/winfonts/winfonts.c -- Windows FONT / FNT font driver
+ src/raster1/raster1.c -- monochrome rasterizer
+ src/smooth/smooth.c -- anti-aliasing rasterizer
- Note:
+ Notes:
`truetype.c' needs `sfnt.c' and `psnames.c'
`type1.c' needs `psaux.c' and `psnames.c'
@@ -66,31 +66,34 @@
`type1cid.c' needs `psaux.c' and `psnames.c'
`cff.c' needs `sfnt.c', `psaux.c', and `psnames.c'
- that should be it ! in case of problems, see the archives of
- the FreeType development mailing list.
+ You are done. In case of problems, see the archives of the FreeType
+ development mailing list.
+
II. Support for flat-directory compilation
------------------------------------------
- It is possible to put all FreeType 2 source files into a single
+ It is possible to put all FreeType 2 source files into a single
directory, with the *exception* of the `include' hierarchy.
- 1. Copy all files in current directory:
+ 1. Copy all files in current directory
- cp freetype2/src/base/*.[hc] .
- cp freetype2/src/raster1/*.[hc] .
- cp freetype2/src/smooth/*.[hc] .
- etc.
+ cp freetype2/src/base/*.[hc] .
+ cp freetype2/src/raster1/*.[hc] .
+ cp freetype2/src/smooth/*.[hc] .
+ etc.
- 2. Compile sources:
+ 2. Compile sources
- cc -c -Ifreetype2/include ftsystem.c
- cc -c -Ifreetype2/include ftinit.c
- cc -c -Ifreetype2/include ftdebug.c
- cc -c -Ifreetype2/include ftbase.c
- etc.
+ cc -c -Ifreetype2/include ftsystem.c
+ cc -c -Ifreetype2/include ftinit.c
+ cc -c -Ifreetype2/include ftdebug.c
+ cc -c -Ifreetype2/include ftbase.c
+ etc.
- You don't need to define the FT_FLAT_COMPILATION macro (as this was
- required in previous releases of FreeType 2).
+ You don't need to define the FT_FLAT_COMPILATION macro (as this was
+ required in previous releases of FreeType 2).
+
+--- end of INSTALL.ANY ---
--- a/docs/INSTALL.GNU
+++ b/docs/INSTALL.GNU
@@ -1,29 +1,34 @@
-This document contains instructions on how to build the FreeType library
-on non-Unix systems with the help of GNU Make. Note that if you're running
-Cygwin or MSys in Windows, you should follow the instructions of INSTALL.UNX
-instead.
+This document contains instructions how to build the FreeType library on
+non-Unix systems with the help of GNU Make. Note that if you are
+running Cygwin or MSys in Windows, you should follow the instructions in
+the file INSTALL.UNX instead.
- FreeType 2 includes a powerful and flexible build system that allows
- you to easily compile it on a great variety of platforms from the
+ FreeType 2 includes a powerful and flexible build system that allows
+ you to easily compile it on a great variety of platforms from the
command line. To do so, just follow these simple instructions:
- a. Install GNU Make
+ 1. Install GNU Make
+ -------------------
- Because GNU Make is the only Make tool supported to compile
+ Because GNU Make is the only Make tool supported to compile
FreeType 2, you should install it on your machine.
- The FreeType 2 build system relies on many features special to GNU
- Make -- trying to build the library with any other Make tool will
+ The FreeType 2 build system relies on many features special to GNU
+ Make -- trying to build the library with any other Make tool will
*fail*.
- NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO
+ NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO
REALLY INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
- Make sure that you are invoking GNU Make from the command line, by
+ Note that make++, a make tool written in Perl, supports enough
+ features of GNU make to compile FreeType. See
+ http://makepp.sourceforge.net for more information.
+
+ Make sure that you are invoking GNU Make from the command line, by
typing something like:
- make -v
+ make -v
to display its version number.
@@ -30,99 +35,105 @@
VERSION 3.78.1 OR NEWER IS NEEDED!
+ 2. Invoke 'make'
+ ----------------
- b. Invoke 'make'
-
- Go to the root directory of FreeType 2, then simply invoke GNU
- Make from the command line. This will launch the FreeType 2 host
- platform detection routines. A summary will be displayed, for
+ Go to the root directory of FreeType 2, then simply invoke GNU Make
+ from the command line. This will launch the FreeType 2 host
+ platform detection routines. A summary will be displayed, for
example, on Win32:
- ==============================================================
- FreeType build system -- automatic system detection
+ ==============================================================
+ FreeType build system -- automatic system detection
- The following settings are used:
+ The following settings are used:
- platform win32
- compiler gcc
- configuration directory ./builds/win32
- configuration rules ./builds/win32/w32-gcc.mk
+ platform win32
+ compiler gcc
+ configuration directory ./builds/win32
+ configuration rules ./builds/win32/w32-gcc.mk
- If this does not correspond to your system or settings please
- remove the file 'config.mk' from this directory then read the
- INSTALL file for help.
+ If this does not correspond to your system or settings please
+ remove the file 'config.mk' from this directory then read the
+ INSTALL file for help.
- Otherwise, simply type 'make' again to build the library.
- =============================================================
+ Otherwise, simply type 'make' again to build the library.
+ =============================================================
- If the detected settings correspond to your platform and compiler,
- skip to step e. Note that if your platform is completely alien to
+ If the detected settings correspond to your platform and compiler,
+ skip to step 5. Note that if your platform is completely alien to
the build system, the detected platform will be 'ansi'.
- c. Configure the build system for a different compiler
+ 3. Configure the build system for a different compiler
+ ------------------------------------------------------
- If the build system correctly detected your platform, but you want
- to use a different compiler than the one specified in the summary
- (for most platforms, gcc is the defaut compiler), invoke GNU Make
+ If the build system correctly detected your platform, but you want
+ to use a different compiler than the one specified in the summary
+ (for most platforms, gcc is the defaut compiler), invoke GNU Make
with
- make setup <compiler>
+ make setup <compiler>
- For example:
+ Examples:
- to use Visual C++ on Win32, type: "make setup visualc"
- to use Borland C++ on Win32, type "make setup bcc32"
- to use Watcom C++ on Win32, type "make setup watcom"
- to use Intel C++ on Win32, type "make setup intelc"
- to use LCC-Win32 on Win32, type: "make setup lcc"
- to use Watcom C++ on OS/2, type "make setup watcom"
- to use VisualAge C++ on OS/2, type "make setup visualage"
+ to use Visual C++ on Win32, type: "make setup visualc"
+ to use Borland C++ on Win32, type "make setup bcc32"
+ to use Watcom C++ on Win32, type "make setup watcom"
+ to use Intel C++ on Win32, type "make setup intelc"
+ to use LCC-Win32 on Win32, type: "make setup lcc"
+ to use Watcom C++ on OS/2, type "make setup watcom"
+ to use VisualAge C++ on OS/2, type "make setup visualage"
- The <compiler> name to use is platform-dependent. The list of
- available compilers for your system is available in the file
+ The <compiler> name to use is platform-dependent. The list of
+ available compilers for your system is available in the file
`builds/<system>/detect.mk'
- If you are satisfied by the new configuration summary, skip to
- step e.
+ If you are satisfied by the new configuration summary, skip to
+ step 5.
- d. Configure the build system for an unknown platform/compiler
- The auto-detection/setup phase of the build system copies a file
- to the current directory under the name `config.mk'.
+ 4. Configure the build system for an unknown platform/compiler
+ --------------------------------------------------------------
- For example, on OS/2+gcc, it would simply copy
+ The auto-detection/setup phase of the build system copies a file to
+ the current directory under the name `config.mk'.
+
+ For example, on OS/2+gcc, it would simply copy
`builds/os2/os2-gcc.mk' to `./config.mk'.
- If for some reason your platform isn't correctly detected, copy
- manually the configuration sub-makefile to `./config.mk' and go to
- step e.
+ If for some reason your platform isn't correctly detected, copy
+ manually the configuration sub-makefile to `./config.mk' and go to
+ step 5.
- Note that this file is a sub-Makefile used to specify Make
- variables for compiler and linker invocation during the build.
- You can easily create your own version from one of the existing
- configuration files, then copy it to the current directory under
- the name `./config.mk'.
+ Note that this file is a sub-Makefile used to specify Make variables
+ for compiler and linker invocation during the build. You can easily
+ create your own version from one of the existing configuration
+ files, then copy it to the current directory under the name
+ `./config.mk'.
- e. Build the library
- The auto-detection/setup phase should have copied a file in the
- current directory, called `./config.mk'. This file contains
- definitions of various Make variables used to invoke the compiler
+ 5. Build the library
+ --------------------
+
+ The auto-detection/setup phase should have copied a file in the
+ current directory, called `./config.mk'. This file contains
+ definitions of various Make variables used to invoke the compiler
and linker during the build.
- To launch the build, simply invoke GNU Make again: The top
- Makefile will detect the configuration file and run the build with
- it.
+ To launch the build, simply invoke GNU Make again: The top Makefile
+ will detect the configuration file and run the build with it.
-
- Final note:
+ Final note
- the build system builds a statically linked library of the font engine
- in the "objs" directory. It does _not_ support the build of DLLs on
- Windows and OS/2, if you need these, you'll have to either use
- a IDE-specific project file, or follow the instructions in
+ The build system builds a statically linked library of the font
+ engine in the "objs" directory. It does _not_ support the build of
+ DLLs on Windows and OS/2. If you need these, you have to either use
+ a IDE-specific project file, or follow the instructions in
"INSTALL.ANY" to create your own Makefiles.
+
+
+--- end of INSTALL.GNU ---
--- a/docs/INSTALL.UNX
+++ b/docs/INSTALL.UNX
@@ -1,181 +1,64 @@
This document contains instructions on how to build the FreeType library
-on Unix systems. This also works for emulations like Cygwin or MSys on
+on Unix systems. This also works for emulations like Cygwin or MSys on
Win32:
- I. Ensure that you are using GNU Make
+ 1. Ensure that you are using GNU Make
-------------------------------------
- The FreeType build system _exclusively_ works with GNU Make. You
- will not be able to compile the library with the instructions
- below using any other alternative (including BSD Make).
+ The FreeType build system _exclusively_ works with GNU Make. You
+ will not be able to compile the library with the instructions below
+ using any other alternative (including BSD Make).
- Trying to compile the library with a different Make tool will
- print a message like:
+ [Well, this is not really correct. Recently, a perl implementation
+ of make called `makepp' has appeared which can also build FreeType 2
+ successfully on Unix platforms. See http://makepp.sourceforge.net
+ for more details.]
+ Trying to compile the library with a different Make tool will print
+ a message like:
+
Sorry, GNU make is required to build FreeType2.
- and the build process will be aborted. If this happens, install
- GNU Make on your system, and use the GNUMAKE environment variable
- to name it.
+ and the build process will be aborted. If this happens, install GNU
+ Make on your system, and use the GNUMAKE environment variable to
+ name it.
+ 2. Build and install the library
+ --------------------------------
- IV. Build and install the library
- ---------------------------------
-
- The following should work on all Unix systems where the 'make'
+ The following should work on all Unix systems where the `make'
command invokes GNU Make:
- ./configure --prefix=<yourprefix>
+ ./configure [options]
make
make install (as root)
- where "<yourprefix>" must be replaced by the prefix returned by
- the "freetype-config" command.
+ The default installation path is "/usr/local". It can be changed
+ with the `--prefix=<path>' option. Example:
- When using a different command to invoke GNU Make, use the GNUMAKE
- variable. For example, if `gmake' is the command to use on your
+ ./configure --prefix=/usr
+
+ When using a different command to invoke GNU Make, use the GNUMAKE
+ variable. For example, if `gmake' is the command to use on your
system, do something like:
- GNUMAKE=gmake ./configure --prefix=<yourprefix>
+ GNUMAKE=gmake ./configure [options]
gmake
gmake install (as root)
- If this still doesn't work, something's rotten on your system(
- (e.g. you're using a very old version of GNU Make)
+ If this still doesn't work, something's rotten on your system
+ (e.g. you are using a very old version of GNU Make).
+ It is possible to compile FreeType in a different directory.
+ Assuming the FreeType source files in directory `/src/freetype' a
+ compilation in directory `foo' works as follows:
+ cd foo
+ /src/freetype/configure [options]
+ make
+ make install
-I. Unix systems
----------------
- If you have GNU Make installed, simply type
-
- ./configure
- make
- make install
-
- on the command line to configure, build and install FreeType on your
- system. Note that the default installation path is "/usr/local".
-
- Please read the file README.UNX, it contains _critical_ information
- regarding the installation of FreeType on many Unix systems.
-
-
-II. From the command line
--------------------------
-
- If you are not using Unix, there are two ways to quickly build
- FreeType 2 from the command line.
-
- The first, and favorite one, is to use the "Jam" build tool. Jam is
- a highly portable replacement for Make whose control files do not
- depend on the current platform or compiler toolset.
-
- For more information, please see:
-
- http://www.freetype.org/jam/index.html
-
- The second one is to use "GNU Make" (and NO OTHER MAKE TOOL).
-
-
- 1. Building FT2 with "Jam"
- --------------------------
-
- Once you've got *our version* of the Jam tool installed on your
- system, simply go to the top-level FT2 directory, then type
-
- "jam"
-
- on the command line. This will build the library and place it in
- the "objs" directory.
-
- By default, a static library is built. On Unix systems, it is
- possible to build a shared library through the "libtool" script.
- You need to have libtool installed on your system, then re-define
- a few environment variables before invoking Jam, as in
-
- export CC="libtool --mode=compile cc"
- export LINK="libtool --mode=link cc"
- jam
-
- In later releases of FT2, building shared libraries with Jam
- should become automatic on Unix systems.
-
-
- 2. Building FT2 with "GNU Make"
- -------------------------------
-
- You need to have GNU Make (version 3.78.1 or newer) installed on
- your system to compile the library from the command line. This will
- _NOT_ work with other make tools (including BSD make)!
-
- [Well, this is not really correct. Recently, a perl implementation
- of make called `makepp' has appeared which can also build FreeType 2
- successfully on Unix platforms. See http://makepp.sourceforge.net
- for more details.]
-
- - Go to the `freetype2' directory.
-
- - Unix (any C compiler should work):
-
- - make setup (don't worry, this will invoke a configure script)
- - make
- - make install
-
- Alternatively, you can pass parameters to the configure script
- within the CFG variable, as in:
-
- - make setup CFG="--prefix=/usr"
- - make
- - make install
-
- If the configure script isn't run, try to add `unix' as a target
- on the command line, e.g.:
-
- - make setup unix CFG="--prefix=/opt/experimental"
-
-
- - Windows:
-
- We provide a version of GNU Make for Win32 on the FreeType site.
- See http://www.freetype.org/download.html for details.
-
- - gcc (Mingw, _not_ CygWin):
-
- - make setup
- - make
-
-
- - Visual C++:
-
- - make setup visualc
- - make
-
-
- - other compilers:
-
- - make setup bcc32 -> Borland C++ 32 bits
- - make setup intelc -> Intel C++
- - make setup watcom -> Watcom C++
- - make setup lcc -> Win32-LCC
-
-
- If you want to build FreeType 2 in another directory, you must set
- two environment variables, `OJB_DIR' and `TOP_DIR'. The former
- gives the directory where the object files and the library should be
- created (this directory must exist), the latter the top directory of
- the FreeType 2 source tree. Example:
-
- OBJ_DIR=~/freetype2.compiled TOP_DIR=~/freetype2 \
- make -f$TOP_DIR/Makefile setup ansi
- OBJ_DIR=~/freetype2.compiled TOP_DIR=~/freetype2 \
- make -f$TOP_DIR/Makefile
-
- On Unix boxes, calling `configure' from the build directory is
- sufficient; it will build a small Makefile which calls the
- FreeType 2 Makefile with the necessary parameters.
-
-
---- end of INSTALL --
+--- end of INSTALL.UNX --
--- a/docs/INSTALL.VMS
+++ b/docs/INSTALL.VMS
@@ -1,8 +1,8 @@
How to build the freetype2 library on VMS
-----------------------------------------
-Just type one of the following depending on the type of external entries you
-want:
+Just type one of the following depending on the type of external entries
+you want:
mms
@@ -14,22 +14,23 @@
[.LIB]
-To compile applications using freetype2 you'll need to define the logical
+To compile applications using FreeType 2 you have to define the logical
FREETYPE pointing to the directory
[.INCLUDE.FREETYPE]
-(i.e., if the directory in which this README.VMS file is located is
+i.e., if the directory in which this INSTALL.VMS file is located is
$disk:[freetype] then define the logical with
define freetype $disk:[freetype.include.freetype]
-This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha V7.2-1.
+This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha
+V7.2-1.
Any problems can be reported to
- [email protected]
+ Jouk Jansen <[email protected]>
- Jouk Jansen
+--- end of INSTALL.VMS ---
--- a/docs/TODO
+++ b/docs/TODO
@@ -1,13 +1,13 @@
-Note that the list of known bugs for FreeType 2 is now located in the
-document "docs/BUGS".
-
Here is a list of items that need to be addressed in FreeType 2; they are
not exactly bugs, but should be considered though:
* Implement stem3/counter hints properly in the Postscript hinter.
-* FInalize the cache sub-system. If has been in beta for too long :-)
+* Finalize the cache sub-system. It has been in beta far too long :-)
* The automatic and Postscript hinters have been improved to increase
- the quality of AA text, but Monochrome and LCD hinting still suck. we
- need to do something about that..
+ the quality of AA text, but Monochrome and LCD hinting still suck. We
+ need to do something about that.
+
+
+--- end of TODO ---
--- a/docs/TRUETYPE
+++ b/docs/TRUETYPE
@@ -1,14 +1,14 @@
How to enable the TrueType native hinter if you need it
--------------------------------------------------------
- The TrueType bytecode interpreter is disabled in all public
- releases of the FreeType packages for patents reasons (see
+ The TrueType bytecode interpreter is disabled in all public releases
+ of the FreeType packages for patents reasons (see
http://www.freetype.org/patents.html for more details).
- However, many Linux distributions do enable the interpreter in the
- FreeType packages (DEB/RPM/etc.) they produce for their platforms.
- If you are using TrueType fonts on your system, you most probably
- want to enable it manually by doing the following:
+ However, many Linux distributions do enable the interpreter in the
+ FreeType packages (DEB/RPM/etc.) they produce for their platforms. If
+ you are using TrueType fonts on your system, you most probably want to
+ enable it manually by doing the following:
- open the file "include/freetype/config/ftoption.h"
@@ -20,4 +20,7 @@
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
- of course, this must be done _before_ compiling the library
+ These steps must be done _before_ compiling the library.
+
+
+--- end of TRUETYPE ---
--- a/docs/UPGRADE.UNX
+++ b/docs/UPGRADE.UNX
@@ -2,27 +2,27 @@
SPECIAL NOTE FOR UNIX USERS
===========================
- If you are installing this release of FreeType on a system that
- already uses release 2.0.5 (or even an older version), you have to
+ If you are installing this release of FreeType on a system that
+ already uses release 2.0.5 (or even an older version), you have to
perform a few special steps to ensure that everything goes well.
- I. Enable the TrueType bytecode hinter if you need it
+ 1. Enable the TrueType bytecode hinter if you need it
-----------------------------------------------------
See the instructions in the file "TRUETYPE" of this directory.
- Note that FreeType supports TrueType fonts without the bytecode
- interpreter through its auto-hinter, which now generate relatively good
- results with most fonts.
+ Note that FreeType supports TrueType fonts without the bytecode
+ interpreter through its auto-hinter, which now generates relatively
+ good results with most fonts.
- II. Determine the correct installation path
- --------------------------------------------
+ 2. Determine the correct installation path
+ ------------------------------------------
- By default, the source package will install the library in
- "/usr/local". However, many Unix distributions now install the
- library in "/usr", since FreeType is becoming a critical system
+ By default, the configure script will install the library in
+ "/usr/local". However, many Unix distributions now install the
+ library in "/usr", since FreeType is becoming a critical system
component.
If FreeType is already installed on your system, type
@@ -29,34 +29,38 @@
freetype-config --prefix
- on the command line. This should return the installation path to
- use below (e.g. "/usr" or "/usr/local"). Otherwise, simply use
- "/usr" (or what you think is adequate for your installation).
+ on the command line. This should return the installation path
+ (e.g., "/usr" or "/usr/local"). To avoid problems of parallel
+ FreeType versions, use this path for the --prefix option of the
+ configure script.
+ Otherwise, simply use "/usr" (or whatever you think is adequate for
+ your installation).
- III. Ensure that you are using GNU Make
- ---------------------------------------
+ 3. Ensure that you are using GNU Make
+ -------------------------------------
- The FreeType build system _exclusively_ works with GNU Make. You
- will not be able to compile the library with the instructions
- below using any other alternative (including BSD Make).
+ The FreeType build system _exclusively_ works with GNU Make (as an
+ exception you can use make++ which emulates GNU Make sufficiently;
+ see http://makepp.sourceforge.net). You will not be able to compile
+ the library with the instructions below using any other alternative
+ (including BSD Make).
- Trying to compile the library with a different Make tool will
- print a message like:
+ Trying to compile the library with a different Make tool will print
+ a message like:
Sorry, GNU make is required to build FreeType2.
- and the build process will be aborted. If this happens, install
- GNU Make on your system, and use the GNUMAKE environment variable
- to name it.
+ and the build process will be aborted. If this happens, install GNU
+ Make on your system, and use the GNUMAKE environment variable to
+ name it.
+ 4. Build and install the library
+ --------------------------------
- IV. Build and install the library
- ---------------------------------
-
- The following should work on all Unix systems where the `make'
+ The following should work on all Unix systems where the `make'
command invokes GNU Make:
./configure --prefix=<yourprefix>
@@ -63,11 +67,11 @@
make
make install (as root)
- where "<yourprefix>" must be replaced by the prefix returned by
- the "freetype-config" command.
+ where "<yourprefix>" must be replaced by the prefix returned by the
+ "freetype-config" command.
- When using a different command to invoke GNU Make, use the GNUMAKE
- variable. For example, if `gmake' is the command to use on your
+ When using a different command to invoke GNU Make, use the GNUMAKE
+ variable. For example, if `gmake' is the command to use on your
system, do something like:
GNUMAKE=gmake ./configure --prefix=<yourprefix>
@@ -74,15 +78,12 @@
gmake
gmake install (as root)
- If this still doesn't work, read the detailed compilation
- procedure available in the file "docs/BUILD" for troubleshooting.
-
- V. Take care of XFree86 version 4
+ 5. Take care of XFree86 version 4
---------------------------------
- Certain recent Linux distributions will install _several_ versions
- of FreeType on your system. For example, on a fresh Mandrake 8.1
+ Certain recent Linux distributions will install _several_ versions
+ of FreeType on your system. For example, on a fresh Mandrake 8.1
system, you can find the following files:
/usr/lib/libfreetype.so which links to
@@ -93,22 +94,21 @@
/usr/X11R6/lib/libfreetype.so which links to
/usr/X11R6/lib/libfreetype.6.0.so
- Note that these files correspond to two distinct versions of the
- library! It seems that this surprising issue is due to the
- install scripts of recent XFree86 servers (from 4.1.0) which
- irremediably install their own (dated) version of the library in
- "/usr/X11R6/lib".
+ Note that these files correspond to two distinct versions of the
+ library! It seems that this surprising issue is due to the install
+ scripts of recent XFree86 servers (from 4.1.0) which install their
+ own (dated) version of the library in "/usr/X11R6/lib".
- In certain _rare_ cases you may experience minor problems if you
- install this release of the library in "/usr" only, namely, that
- certain applications will not benefit from the bug fixes and
- rendering improvements you'd expect.
+ In certain _rare_ cases you may experience minor problems if you
+ install this release of the library in "/usr" only, namely, that
+ certain applications will not benefit from the bug fixes and
+ rendering improvements you would expect.
There are two good ways to deal with this situation:
- - Install the library _twice_, in "/usr" and in "/usr/X11R6"
- (you have to do that each time you install a new FreeType
- release though).
+ - Install the library _twice_, in "/usr" and in "/usr/X11R6" (you
+ have to do that each time you install a new FreeType release
+ though).
- Change the link in /usr/X11R6/lib/libfreetype.so to point to
@@ -118,7 +118,10 @@
/usr/X11R6/lib/libfreetype.6.0.so
- The FreeType Team is not responsible for this problem, so please
- contact either the XFree86 development team or your Linux
- distributor to help clear this issue in case the information given
+ The FreeType Team is not responsible for this problem, so please
+ contact either the XFree86 development team or your Linux
+ distributor to help clear this issue in case the information given
here doesn't help.
+
+
+---- end of UPGRADE.UNX ---
--- a/docs/VERSION.DLL
+++ b/docs/VERSION.DLL
@@ -1,34 +1,35 @@
-Due to our use of "libtool" to generate and install the FreeType 2 libraries
-on Unix systems, as well as other historical events, it is generally very
-difficult to know precisely which release of the font engine is installed
-on a given system.
+Due to our use of "libtool" to generate and install the FreeType 2
+libraries on Unix systems, as well as other historical events, it is
+generally very difficult to know precisely which release of the font
+engine is installed on a given system.
-This file tries to explain why and to document ways to properly detect
+This file tries to explain why and to document ways to properly detect
FreeType on Unix.
-I. Version & Release numbers:
+1. Version & Release numbers
+----------------------------
-For each new public release of FreeType 2, there are generally *three*
+For each new public release of FreeType 2, there are generally *three*
distinct "version" numbers to consider:
- * the official FT2 release number, like 2.0.9, or 2.1.3
+ * The official FT2 release number, like 2.0.9, or 2.1.3.
- * the libtool (and Unix) specific version number, like "9.2.3". This
- is what "freetype-config --version" will return
+ * The libtool (and Unix) specific version number, like "9.2.3". This
+ is what "freetype-config --version" will return.
- * the platform-specific shared object number, used for example when
- the library is installed as "/usr/lib/libfreetype.so.6.3.2"
+ * The platform-specific shared object number, used for example when
+ the library is installed as "/usr/lib/libfreetype.so.6.3.2".
+The platform-specific number is, unsurprisingly, platform-specific and
+varies with the operating system you are using (several variants of
+Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even
+for simple tests.
-the platform-specific number is, unsurprisingly, platform-specific and varies
-with the operating system you're using (several variants of Linux, FreeBSD,
-Solaris, etc...). You should thus _never_ use it, even for simple tests.
+The libtool-specific number does not equal the release number but is
+tied to it.
-the libtool-specific number does not equal the release number but is tied
-to it.
-
-the release number is available at *compile* time through the following
+The release number is available at *compile* time through the following
macros defined in FT_FREETYPE_H:
- FREETYPE_MAJOR : major release number
@@ -35,56 +36,63 @@
- FREETYPE_MINOR : minor release number
- FREETYPE_PATCH : patch release number
-see below for some Autoconf fragment to
+See below for a small autoconf fragment.
+The release number is also available at *runtime* through the
+"FT_Library_Version" API. Unfortunately, this one wasn't available or
+working correctly before the 2.1.3 official release.
-the release number is also available at *runtime* through the
-"FT_Library_Version" API. Unfortunately, this one wasn't available or
-working correctly before the 2.1.3 official release !!
+2. History
+----------
-II. Table:
+The following table gives, for each official release, the corresponding
+libtool number, as well as the shared object number found on _most_
+systems, but not all of them:
-the following is a simple table that gives, for each official release,
-the corresponding libtool number, as well as the shared object number
-found on _most_ systems, but not all of them:
+ release libtool so
+ -------------------------------------
+ 2.1.4 9.3.3 6.3.3
+ 2.1.3 9.2.3 6.3.2
+ 2.1.2 9.1.3 6.3.1
+ 2.1.1 9.0.3 ?
+ 2.1.0 8.0.2 ?
+ 2.0.9 9.0.3 ?
+ 2.0.8 8.0.2 ?
- release libtool so
--------------------------------------
- 2.1.4 9.3.3 6.3.3
- 2.1.3 9.2.3 6.3.2
- 2.1.2 9.1.3 6.3.1
- 2.1.1 9.0.3 ?
- 2.1.0 8.0.2 ?
- 2.0.9 9.0.3 ?
- 2.0.8 8.0.2 ?
+The libtool numbers are a bit inconsistent due to the library's history:
-the libtool numbers are a bit inconsistent due to the library's history:
+ - 2.1.0 was created as a development branch from 2.0.8 (hence the same
+ libtool numbers).
- - 2.1.0 was created as a development branch from 2.0.8
- (hence the same libtool numbers)
+ - 2.0.9 was a bug-fix release of the "stable" branch, and we
+ incorrectly increased its libtool number.
- - 2.0.9 was a bug-fix release of the "stable" branch, we
- apparently incorrectly increased its libtool number
+ - 2.1.4 is still in the "development" branch, however it is stable
+ enough to be the basis of an upcoming 2.2.0 release.
- - 2.1.4 is still in the "development" branch, however it's stable enough
- to be the basis of an upcoming 2.2.0 release
+3. Autoconf Code Fragment
+-------------------------
+Lars Clausen contributed the following autoconf fragment to detect which
+version of FreeType is installed on a system. This one tests for a
+version that is at least 2.0.9; you should change the last line to check
+against other release numbers.
-III. AutoConf Code Fragment:
+ AC_MSG_CHECKING([for version of FreeType])
+ FREETYPE_INCLUDE=`freetype-config --cflags | cut -c3-`
+ FREETYPE_MAJOR=`grep '^#define FREETYPE_MAJOR' \
+ $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
+ FREETYPE_MINOR=`grep '^#define FREETYPE_MINOR' \
+ $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
+ FREETYPE_PATCH=`grep '^#define FREETYPE_PATCH' \
+ $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
+ FREETYPE_VERSION=`echo | awk "BEGIN { printf \"%d\", \
+ ($FREETYPE_MAJOR * 1000 + $FREETYPE_MINOR) * 1000 \
+ + $FREETYPE_PATCH;}"`
+ AC_MSG_RESULT([$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH])
+ if test "$FREETYPE_VERSION" -ge 2000009; then
-Lars Clausen contributed the following Autoconf fragment to detect at
-which version of FreeType is installed on your system. This one tests
-for a version that is at least 2.0.9, you should change the last line to
-check against other release numbers.
- AC_MSG_CHECKING([for version of FreeType])
- FREETYPE_INCLUDE=`freetype-config --cflags | cut -c3-`
- FREETYPE_MAJOR=`grep '^#define FREETYPE_MAJOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
- FREETYPE_MINOR=`grep '^#define FREETYPE_MINOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
- FREETYPE_PATCH=`grep '^#define FREETYPE_PATCH' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
- FREETYPE_VERSION=`echo | awk "BEGIN { printf \"%d\", ($FREETYPE_MAJOR * 1000 + $FREETYPE_MINOR) * 1000 + $FREETYPE_PATCH;}"`
- AC_MSG_RESULT([$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH])
- if test "$FREETYPE_VERSION" -ge 2000009; then
-
+--- end of VERSION.DLL ---
--- a/docs/license.txt
+++ b/docs/license.txt
@@ -1,28 +1,25 @@
- The FreeType 2 font engine is copyrighted work, and cannot be
- used legally without a software license. In order to make this
- project usable to a vast majority of developers, we distribute it
- under two dual licenses.
+The FreeType 2 font engine is copyrighted work and cannot be used
+legally without a software license. In order to make this project
+usable to a vast majority of developers, we distribute it under two
+mutually exclusive licenses.
- What this means is that *you* must choose *one* license among those
- described below, then obey all its terms and conditions when using
- FreeType 2 in any of your projects or products:
+This means that *you* must choose *one* license of the two described
+below, then obey all its terms and conditions when using FreeType 2 in
+any of your projects or products.
+ - The FreeType License, found in the file "FTL.TXT", which is an
+ BSD-style open-source license *with* an advertising clause that
+ forces you to explicitely cite the FreeType project in your
+ product's documentation. All details are in the license file.
- - The FreeType License, found in the file "FTL.TXT", which is
- an BSD-style open-source license *with* an advertising
- clause that forces you to explicitely cite the
- FreeType project in your product's documentation. All
- details are in the license file
+ - The GNU General Public License, found in "GPL.TXT", which is the
+ traditionnal and "viral" GPL license that forces you to redistribute
+ the _complete_ sources of all your products that use FreeType 2.
+Note that the contributed PCF driver comes with a license similar to
+that of X Window System which is compatible to the above two licenses
+(see file src/pcf/readme).
- - The GNU General Public License, found in "GPL.TXT", which is
- the traditionnal and "viral" GPL license, that
- forces you to redistribute the _complete_ sources of all
- your products that simply use FreeType 2.
-
- Note that the contributed PCF driver comes with a license similar to
- that of X Window System which is compatible to the above two
- licenses (see file src/pcf/readme).
-
+--- end of licence.txt ---
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -4,7 +4,7 @@
/* */
/* User-selectable configuration macros (specification only). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */