* doc/INSTALL.UNX: Cleaned up.
Other minor fixes/beautifying/formatting.
This commit is contained in:
parent
692bbe59da
commit
a16c4a7129
275
ChangeLog
275
ChangeLog
|
@ -1,209 +1,233 @@
|
|||
2003-04-20 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* doc/INSTALL.UNX: Cleaned up.
|
||||
|
||||
2003-04-09 Torrey Lyons <torrey@mrcla.com>
|
||||
|
||||
* 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 <mfabian@suse.de>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
FreeType 2.1.4 Released
|
||||
=======================
|
||||
|
||||
* Version 2.1.4 is released.
|
||||
============================
|
||||
|
||||
|
||||
2003-04-03 Martin Muskens <mmuskens@aurelon.com>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 <pixel@mandrakesoft.com>
|
||||
|
||||
* 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 <anthony@thizlinux.com>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 <graham.asher@btinternet.com>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 <davidchester@qmx.net>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
* 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 per se
|
||||
the spec)
|
||||
* 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).
|
||||
|
||||
2003-01-18 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
|
@ -325,9 +349,10 @@
|
|||
|
||||
2002-12-23 Anthony Fok <anthony@thizlinux.com>
|
||||
|
||||
* 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 <david@freetype.org>
|
||||
|
||||
|
|
63
Jamfile
63
Jamfile
|
@ -1,21 +1,22 @@
|
|||
# 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
|
||||
# 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)
|
||||
{
|
||||
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,71 +26,71 @@ if $(FT2_TOP) != $(DOT)
|
|||
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) ] ;
|
||||
|
||||
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
|
||||
|
||||
# only used by FreeType developers
|
||||
# Only used by FreeType developers.
|
||||
#
|
||||
if $(DEBUG_HINTER)
|
||||
{
|
||||
|
@ -104,11 +105,12 @@ HDRS += $(FT2_INCLUDE) ;
|
|||
|
||||
|
||||
# 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,13 +118,14 @@ HDRS += $(FT2_INCLUDE) ;
|
|||
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.
|
||||
#
|
||||
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)
|
||||
{
|
||||
|
|
64
Jamfile.in
64
Jamfile.in
|
@ -1,21 +1,22 @@
|
|||
# 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
|
||||
# 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)
|
||||
{
|
||||
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,71 +26,71 @@ if $(FT2_TOP) != $(DOT)
|
|||
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) ] ;
|
||||
|
||||
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
|
||||
|
||||
# only used by FreeType developers
|
||||
# Only used by FreeType developers.
|
||||
#
|
||||
if $(DEBUG_HINTER)
|
||||
{
|
||||
|
@ -103,13 +104,13 @@ if $(DEBUG_HINTER)
|
|||
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,13 +118,14 @@ HDRS += $(FT2_INCLUDE) ;
|
|||
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.
|
||||
#
|
||||
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)
|
||||
{
|
||||
|
|
4
Jamrules
4
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
|
||||
{
|
||||
|
|
26
README
26
README
|
@ -2,23 +2,22 @@
|
|||
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!
|
||||
|
||||
|
||||
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
|
||||
=======
|
||||
|
||||
Please report bugs by e-mail to `devel@freetype.org'. 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".
|
||||
Bugs
|
||||
====
|
||||
|
||||
Please report bugs by e-mail to `devel@freetype.org'. 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!
|
||||
|
|
|
@ -81,7 +81,6 @@ AC_SUBST(FTSYS_SRC)
|
|||
|
||||
AC_CHECK_FUNCS(memcpy memmove)
|
||||
|
||||
|
||||
dnl Check for system zlib
|
||||
AC_ARG_WITH(zlib,
|
||||
[ --without-zlib use internal zlib instead of system-wide])
|
||||
|
@ -98,8 +97,6 @@ AC_SUBST(CFLAGS)
|
|||
AC_SUBST(LDFLAGS)
|
||||
AC_SUBST(SYSTEM_ZLIB)
|
||||
|
||||
|
||||
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
dnl create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
|
||||
|
|
|
@ -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__
|
||||
|
|
|
@ -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
|
||||
|
|
120
docs/CHANGES
120
docs/CHANGES
|
@ -2,88 +2,95 @@ LATEST CHANGES BETWEEN 2.1.4 and 2.1.3
|
|||
|
||||
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 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
|
|||
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 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
|
|||
|
||||
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 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
|
|||
- 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
|
||||
|
|
134
docs/CUSTOMIZE
134
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 @@ IV. Overriding default configuration and module headers:
|
|||
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 ---
|
||||
|
|
76
docs/DEBUG
76
docs/DEBUG
|
@ -1,5 +1,5 @@
|
|||
Debugging within the FreeType sources:
|
||||
======================================
|
||||
Debugging within the FreeType sources
|
||||
=====================================
|
||||
|
||||
I. Configuration macros
|
||||
-----------------------
|
||||
|
@ -12,15 +12,15 @@ located in the file "ftoptions.h". The macros are:
|
|||
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,21 +28,21 @@ located in the file "ftoptions.h". The macros are:
|
|||
|
||||
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.
|
||||
|
||||
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
|
||||
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 @@ its code:
|
|||
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 @@ its code:
|
|||
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 @@ its code:
|
|||
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 @@ III. Environment variables
|
|||
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,51 +132,52 @@ behaviour of FreeType at runtime:
|
|||
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
|
||||
"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
|
||||
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 ---
|
||||
|
|
73
docs/INSTALL
73
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:
|
||||
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"
|
||||
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.
|
||||
|
||||
|
||||
--- end of INSTALL ---
|
||||
|
|
119
docs/INSTALL.ANY
119
docs/INSTALL.ANY
|
@ -1,96 +1,99 @@
|
|||
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'
|
||||
`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 ---
|
||||
|
|
159
docs/INSTALL.GNU
159
docs/INSTALL.GNU
|
@ -1,128 +1,139 @@
|
|||
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.
|
||||
|
||||
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 ---
|
||||
|
|
193
docs/INSTALL.UNX
193
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 --
|
||||
|
|
|
@ -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 @@ The library is avalaible in the directory
|
|||
|
||||
[.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
|
||||
|
||||
joukj@hrem.stm.tudelft.nl
|
||||
Jouk Jansen <joukj@hrem.stm.tudelft.nl>
|
||||
|
||||
|
||||
Jouk Jansen
|
||||
--- end of INSTALL.VMS ---
|
||||
|
|
12
docs/TODO
12
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 ---
|
||||
|
|
|
@ -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 @@ How to enable the TrueType native hinter if you need it
|
|||
|
||||
#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 ---
|
||||
|
|
111
docs/UPGRADE.UNX
111
docs/UPGRADE.UNX
|
@ -2,87 +2,88 @@
|
|||
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
|
||||
|
||||
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).
|
||||
|
||||
|
||||
3. Ensure that you are using GNU Make
|
||||
-------------------------------------
|
||||
|
||||
III. Ensure that you are using GNU 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).
|
||||
|
||||
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:
|
||||
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>
|
||||
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>
|
||||
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 @@ SPECIAL NOTE FOR UNIX USERS
|
|||
/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 @@ SPECIAL NOTE FOR UNIX USERS
|
|||
|
||||
/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 ---
|
||||
|
|
136
docs/VERSION.DLL
136
docs/VERSION.DLL
|
@ -1,90 +1,98 @@
|
|||
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
|
||||
- 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
|
||||
----------
|
||||
|
||||
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:
|
||||
|
||||
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:
|
||||
|
||||
- 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.1.4 is still in the "development" branch, however it is stable
|
||||
enough to be the basis of an upcoming 2.2.0 release.
|
||||
|
||||
|
||||
II. Table:
|
||||
3. Autoconf Code Fragment
|
||||
-------------------------
|
||||
|
||||
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:
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
- 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, we
|
||||
apparently incorrectly increased its libtool number
|
||||
|
||||
- 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
|
||||
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
|
||||
|
||||
|
||||
|
||||
III. AutoConf Code Fragment:
|
||||
|
||||
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 ---
|
||||
|
|
|
@ -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 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 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 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 ---
|
||||
|
|
|
@ -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, */
|
||||
|
|
Loading…
Reference in New Issue