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