summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2003-04-21 13:30:27 +0000
committerWerner Lemberg <wl@gnu.org>2003-04-21 13:30:27 +0000
commita16c4a7129d79c18ed74cdf825b67fe17d4707cb (patch)
tree81718adb89ad86c22896bbe30b4f4a8d683be932 /docs
parent692bbe59daf7046bb5d6951df9f95a1a7ec61c8b (diff)
* doc/INSTALL.UNX: Cleaned up.
Other minor fixes/beautifying/formatting.
Diffstat (limited to 'docs')
-rw-r--r--docs/CHANGES120
-rw-r--r--docs/CUSTOMIZE134
-rw-r--r--docs/DEBUG76
-rw-r--r--docs/INSTALL73
-rw-r--r--docs/INSTALL.ANY129
-rw-r--r--docs/INSTALL.GNU159
-rw-r--r--docs/INSTALL.UNX189
-rw-r--r--docs/INSTALL.VMS15
-rw-r--r--docs/TODO12
-rw-r--r--docs/TRUETYPE17
-rw-r--r--docs/UPGRADE.UNX109
-rw-r--r--docs/VERSION.DLL122
-rw-r--r--docs/license.txt39
13 files changed, 561 insertions, 633 deletions
diff --git a/docs/CHANGES b/docs/CHANGES
index 2169976f..37a298c9 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -2,88 +2,95 @@ LATEST CHANGES BETWEEN 2.1.4 and 2.1.3
I. IMPORTANT BUG FIXES
- - updated to newest libtool version, fixes build problems on various
+ - Updated to newest libtool version, fixing build problems on various
platforms.
- - a fix in the Gzip stream reader, it couldn't read certain .gz files
- properly due to a small typo. In certain cases, FreeType could also
+ - A fix in the Gzip stream reader: It couldn't read certain .gz files
+ properly due to a small typo. In certain cases, FreeType could also
loop endlessly when trying to load tiny gzipped files.
- - the configure script now tries to use the system-wide zlib when
- it finds one (instead of the copy found in src/gzip). And
+ - The configure script now tries to use the system-wide zlib when
+ it finds one (instead of the copy found in src/gzip). And
"freetype-config" has been updated to return relevant flags in this
- case when invoked with "--libs" (e.g. "-lzlib")
+ case when invoked with "--libs" (e.g. "-lzlib").
- - certain fonts couldn't be loaded by 2.1.3 because they lacked a
- Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously rejected
+ - Certain fonts couldn't be loaded by 2.1.3 because they lacked a
+ Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously rejected
them.
- - the CFF loader was modified to accept fonts which only
- contain a subset of their reference charset. This prevented the
- correct use of PDF-embedded fonts.
+ - The CFF loader was modified to accept fonts which only contain a
+ subset of their reference charset. This prevented the correct use
+ of PDF-embedded fonts.
- - the logic to detect Unicode charmaps has been modified. this is required
- to support fonts which include both 16-bit and 32-bit charmaps (like
- very recent asian ones) using the new 10 and 12 SFNT formats.
+ - The logic to detect Unicode charmaps has been modified. This is
+ required to support fonts which include both 16-bit and 32-bit
+ charmaps (like very recent asian ones) using the new 10 and 12 SFNT
+ formats.
- - the TrueType loader now limits the depth of composite glyphs. This is
+ - The TrueType loader now limits the depth of composite glyphs. This is
necessary to prevent broken fonts to break the engine by blowing the
stack with recursive glyph definitions.
- - the CMap cache is now capable of managing UCS-4 character codes that
- are mapped through extended charmaps in recent TrueType/OpenType fonts
+ - The CMap cache is now capable of managing UCS-4 character codes that
+ are mapped through extended charmaps in recent TrueType/OpenType
+ fonts.
- - the cache sub-system now properly manages out-of-memory conditions,
- instead of blindly reporting them to the caller. This means that it
+ - The cache sub-system now properly manages out-of-memory conditions
+ instead of blindly reporting them to the caller. This means that it
will try to empty the cache before restarting its allocations to see
if that can help.
- - the PFR driver didn't return the list of available embedded bitmaps
+ - The PFR driver didn't return the list of available embedded bitmaps
properly.
- - there was a nasty memory leak when using embedded bitmaps in certain
+ - There was a nasty memory leak when using embedded bitmaps in certain
font formats.
+
II. IMPORTANT CHANGES
- David Chester contributed some enhancements to the auto-hinter that
- significantly increase the quality of its output. The Postscript hinter
- was also improved in several ways..
+ significantly increase the quality of its output. The Postscript
+ hinter was also improved in several ways.
- - the FT_RENDER_MODE_LIGHT render mode was implemented
+ - The FT_RENDER_MODE_LIGHT render mode was implemented.
- - a new API, called FT_Get_BDF_Property has been added to FT_BDF_H to
- retrieve BDF properties from BDF _and_ PCF font files. THIS IS STILL
- EXPERIMENTAL, since it hasn't been properly tested yet.
+ - A new API function called `FT_Get_BDF_Property' has been added to
+ FT_BDF_H to retrieve BDF properties from BDF _and_ PCF font files.
+ THIS IS STILL EXPERIMENTAL, since it hasn't been properly tested yet.
- - a Windows FNT specific API has been added, mostly to access font
- headers. This is used by Wine
+ - A Windows FNT specific API has been added, mostly to access font
+ headers. This is used by Wine.
- - TrueType tables without a "hmtx" table are now tolerated when an
- incremental interface is used. This happens for certain Type42 fonts
+ - TrueType tables without an "hmtx" table are now tolerated when an
+ incremental interface is used. This happens for certain Type42 fonts
passed from Ghostscript to FreeType.
- - the PFR font driver is now capable of returning the font family and
- style names when they're available (instead of the sole "FontID"). This
- is performed by parsing an *undocumented* portion of the font file !!
+ - The PFR font driver is now capable of returning the font family and
+ style names when they are available (instead of the sole "FontID").
+ This is performed by parsing an *undocumented* portion of the font
+ file!
+
III. MISCELLANEOUS
- - the path stroker in FT_STROKER_H has entered beta stage. It now works
- very well, but it's interface might change a bit in the future. More
- on this in later releases
+ - The path stroker in FT_STROKER_H has entered beta stage. It now works
+ very well, but its interface might change a bit in the future. More
+ on this in later releases.
+
+ - The documentation for FT_Size_Metrics didn't appear properly in the
+ API reference.
- - the documentation for FT_Size_Metrics didn't appear properly in the
- API reference
+ - The file docs/VERSION.DLL has been updated to explain versioning
+ with FreeType (i.e., comparing release/libtool/so numbers, and how to
+ use them in autoconf scripts).
- - the file docs/VERSION.DLL has been updated to explain versioning
- with FreeType (i.e. comparing release/libtool/so numbers, and how
- to use them in Autoconf scripts)
+ - The installation documentation has been seriously revamped.
+ Everything is now in the "docs" directory.
- - the installation documentation has been seriously revamped. Everything
- is now in the "docs" directory.
==============================================================================
+
LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
I. IMPORTANT BUG FIXES
@@ -114,17 +121,19 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
precisely, when trying to apply hints to an empty glyph outline).
- The TrueType glyph loader now supports composites in "Apple format"
- (they differ slightly from Microsoft/OpenType ones in the way transform
- offsets are computed).
+ (they differ slightly from Microsoft/OpenType ones in the way
+ transformation offsets are computed).
- FreeType was very slow at opening certain asian CID/CFF fonts, due
- to fixed increment in dynamic array re-allocations. This has been
- changed to exponential behaviour to get acceptable performance
+ to fixed increment in dynamic array re-allocations. This has been
+ changed to exponential behaviour to get acceptable performance.
+
+
II. IMPORTANT CHANGES
- - the PCF driver now supports gzip-compressed font files natively. This
- means that you'll be able to use all these bitmap fonts that come
+ - The PCF driver now supports gzip-compressed font files natively. This
+ means that you will be able to use all these bitmap fonts that come
with XFree86 with FreeType (and libXft/libXft2, by extension).
- The automatic and postscript hinters have both been updated. This
@@ -163,10 +172,10 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
Note that the 'ftview' demo program available in the 'ft2demos' package
has been updated to support LCD-optimized display on non-paletted
- displays (under Win32 and X11)
+ displays (under Win32 and X11).
- The PFR driver now supports embedded bitmaps (all formats supported),
- and returns correct kerning metrics for all glyphs
+ and returns correct kerning metrics for all glyphs.
- The TrueType charmap loader now supports certain "broken" fonts that
load under Windows without problems.
@@ -187,9 +196,10 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
- Added support for the DESTDIR variable during "make install". This
simplifies packaging of FreeType.
- - included modified copies of the ZLib sources in 'src/gzip' in order
- to support gzip-compressed PCF fonts. We do not use the system-provided
- zlib for now, though this is a probable enhancement for future releases
+ - Included modified copies of the ZLib sources in 'src/gzip' in order to
+ support gzip-compressed PCF fonts. We do not use the system-provided
+ zlib for now, though this is a probable enhancement for future
+ releases.
- The DocMaker tool used to generate the on-line API reference has been
completely rewritten. It is now located in
diff --git a/docs/CUSTOMIZE b/docs/CUSTOMIZE
index 397c2c33..2961d174 100644
--- a/docs/CUSTOMIZE
+++ b/docs/CUSTOMIZE
@@ -1,79 +1,85 @@
How to customize the compilation of the library:
================================================
- FreeType is highly customizable to fit various needs, and this document
- details how it is possible to select options and components at compilation
- time.
+ FreeType is highly customizable to fit various needs, and this
+ document describes how it is possible to select options and components
+ at compilation time.
-I. Configuration macros:
+I. Configuration macros
- the file found in "include/freetype/config/ftoption.h" contains a list
+ The file found in "include/freetype/config/ftoption.h" contains a list
of commented configuration macros that can be toggled by developers to
- indicate which features to activate in their build of the library.
+ indicate which features should be active while building the library.
- these options range from debug level to availability of certain
+ These options range from debug level to availability of certain
features, like native TrueType hinting through a bytecode interpreter.
- we invite you to read this file for more information. You can change
- the file's content to suit your needs, or override it with one of the
- techniques described below..
+ We invite you to read this file for more information. You can change
+ the file's content to suit your needs, or override it with one of the
+ techniques described below.
-II. Modules list:
+II. Modules list
- the file found in "include/freetype/config/ftmodule.h" contains a list
- of names corresponding to the modules / font drivers to be statically
- compiled in the FreeType library during the build.
+ The file found in "include/freetype/config/ftmodule.h" contains a list
+ of names corresponding to the modules and font drivers to be
+ statically compiled in the FreeType library during the build.
- you can change it to suit your own preferences. Be aware that certain
- modules depend on others, as described by the file "modules.txt" in
+ You can change it to suit your own preferences. Be aware that certain
+ modules depend on others, as described by the file "modules.txt" in
this directory.
- you can modify the file's content to suit your needs, or override it
- at compile time with one of the methods described below
+ You can modify the file's content to suit your needs, or override it
+ at compile time with one of the methods described below.
-III. System interface:
+III. System interface
- FreeType's default interface to the system (i.e. the parts that deal with
- memory management and i/o streams) is located in "src/base/ftsystem.c".
+ FreeType's default interface to the system (i.e., the parts that deal
+ with memory management and i/o streams) is located in
+ "src/base/ftsystem.c".
- the current implementation uses standard C library calls to manage
- memory and read font files. It is however possible to write custom
+ The current implementation uses standard C library calls to manage
+ memory and to read font files. It is however possible to write custom
implementations to suit specific systems.
- to tell the GNU Make-based build system to use a custom system interface,
- you'll need to define the environment variable FTSYS_SRC to point to
- the relevant implementation, like in:
+ To tell the GNU Make-based build system to use a custom system
+ interface, you have to define the environment variable FTSYS_SRC to
+ point to the relevant implementation:
- on Unix:
- ./configure <youroptions>
- export FTSYS_SRC=foo/my_ftsystem.c
- make
- make install
+ on Unix:
+
+ ./configure <your options>
+ export FTSYS_SRC=foo/my_ftsystem.c
+ make
+ make install
- on Windows:
- make setup <compiler>
- set FTSYS_SRC=foo/my_ftsystem.c
- make
+ on Windows:
+
+ make setup <compiler>
+ set FTSYS_SRC=foo/my_ftsystem.c
+ make
-IV. Overriding default configuration and module headers:
+IV. Overriding default configuration and module headers
+
+ It is possible to override the default configuration and module
+ headers without changing the original files. There are two ways to do
+ that:
- it is possible to over-ride the default configuration and module headers
- without changing the original files. There are two ways to do that:
- 1. Using the C include path:
+ 1. Using the C include path
- use the C include path to ensure that your own versions of the
- files are used at compile time when the lines:
+ Use the C include path to ensure that your own versions of the files
+ are used at compile time when the lines
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_MODULES_H
- are compiled. Their default values being <freetype/config/ftoption.h>
- and <freetype/config/ftmodule.h>, you can do something like:
+ are compiled. Their default values being
+ <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
+ can do something like:
custom/
freetype/
@@ -82,36 +88,38 @@ IV. Overriding default configuration and module headers:
ftmodule.h => custom modules list
include/ => normal FreeType 2 include
- freetype/
- ...
+ freetype/
+ ...
- then change the C include path to always give the path to "custom"
- before the FreeType 2 "include"
+ then change the C include path to always give the path to "custom"
+ before the FreeType 2 "include".
2. Re-defining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
- another way to do the same thing is to re-define the macros used
- to name the configuration headers. To do so, you'll need a custom
- "ft2build.h", whose content can be as simple as:
+ Another way to do the same thing is to redefine the macros used to
+ name the configuration headers. To do so, you need a custom
+ "ft2build.h" whose content can be as simple as:
- #ifndef __FT2_BUILD_GENERIC_H__
- #define __FT2_BUILD_GENERIC_H__
+ #ifndef __FT2_BUILD_GENERIC_H__
+ #define __FT2_BUILD_GENERIC_H__
- #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
- #define FT_CONFIG_MACROS_H <custom/my-ftmodule.h>
+ #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
+ #define FT_CONFIG_MACROS_H <custom/my-ftmodule.h>
- #include <freetype/config/ftheader.h>
+ #include <freetype/config/ftheader.h>
- #endif /* __FT2_BUILD_GENERIC_H__ */
+ #endif /* __FT2_BUILD_GENERIC_H__ */
- place them in:
+ Place those files in a separate directory, e.g.:
- custom/
- ft2build.h => custom version described above
- my-ftoption.h => custom options header
- my-ftmodule.h => custom modules list header
+ custom/
+ ft2build.h => custom version described above
+ my-ftoption.h => custom options header
+ my-ftmodule.h => custom modules list header
+
+ and change the C include path to ensure that "custom" is always
+ placed before the FT2 "include" during compilation.
- and change the C include path to ensure that "custom" is always placed
- before the FT2 "include" during compilation.
+--- end of CUSTOMIZE ---
diff --git a/docs/DEBUG b/docs/DEBUG
index 03ed7031..c85ef3cb 100644
--- a/docs/DEBUG
+++ b/docs/DEBUG
@@ -1,5 +1,5 @@
-Debugging within the FreeType sources:
-======================================
+Debugging within the FreeType sources
+=====================================
I. Configuration macros
-----------------------
@@ -12,15 +12,15 @@ located in the file "ftoptions.h". The macros are:
FT_DEBUG_LEVEL_ERROR
#define this macro if you want to compile the FT_ERROR macro calls
- used to print error messages during program execution. This will
- not stop the program, but is very useful to spot invalid fonts
- during development and code workarounds for them.
+ to print error messages during program execution. This will not
+ stop the program. Very useful to spot invalid fonts during
+ development and to code workarounds for them.
FT_DEBUG_LEVEL_TRACE
- #define this macro if you want to compile both the FT_ERROR macro
- and the FT_TRACE one. This also includes the variants FT_TRACE0,
- FT_TRACE1, FT_TRACE2, ..., FT_TRACE6.
+ #define this macro if you want to compile both macros FT_ERROR and
+ FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1,
+ FT_TRACE2, ..., FT_TRACE6.
The trace macros are used to send debugging messages when an
appropriate "debug level" is configured at runtime through the
@@ -28,21 +28,21 @@ located in the file "ftoptions.h". The macros are:
FT_DEBUG_MEMORY
- If this macro is #defined, the FreeType engines is linked with a
+ If this macro is #defined, the FreeType engine is linked with a
small but effective debugging memory manager that tracks all
allocations and frees that are performed within the font engine.
When the FT2_DEBUG_MEMORY environment variable is defined at
runtime, a call to FT_Done_FreeType will dump memory statistics,
including the list of leaked memory blocks with the source locations
- where these were allocated. It's always a very good idea to define
+ where these were allocated. It is always a very good idea to define
this in development builds. This works with _any_ program linked to
FreeType, but requires a big deal of memory (the debugging memory
manager never frees the blocks to the heap in order to detect double
frees).
When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory
- manager is ignored, and performance is un-affected.
+ manager is ignored, and performance is unaffected.
II. Debugging macros
@@ -59,7 +59,7 @@ its code:
either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in
"ftoption.h".
- Note that you must use with a printf-like signature, but with double
+ Note that you have to use a printf-like signature, but with double
parentheses, like in:
FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
@@ -93,9 +93,9 @@ its code:
trace_XXXX where XXXX is one of the component names defined in the
internal file <freetype/internal/fttrace.h>.
- Each such component is assigned a "debug level", ranging from 0 to 6
- when a program linked with FreeType starts, through the use of the
- FT2_DEBUG environment variable, described later.
+ Each such component is assigned a "debug level", ranging from 0
+ to 6, through the use of the FT2_DEBUG environment variable
+ (described below) when a program linked with FreeType starts.
When FT_TRACE is called, its level is compared to the one of the
corresponding component. Messages with trace levels *higher* than
@@ -106,7 +106,7 @@ its code:
least* 2.
The second parameter to FT_TRACE must contain parentheses and
- correspond to a print-like call, as in:
+ correspond to a printf-like call, as in:
FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
@@ -123,7 +123,6 @@ III. Environment variables
The following environment variables control debugging output and
behaviour of FreeType at runtime:
-
FT2_DEBUG
This variable is only used when FreeType is built with
@@ -133,51 +132,52 @@ behaviour of FreeType at runtime:
component1:level1 component2:level2 component3:level3 ...
where "componentX" is the name of a tracing component, as defined in
- "fttrace.h", but without the "trace_" prefix, and "levelX" is the
+ "fttrace.h", but without the "trace_" prefix. "levelX" is the
corresponding level to use at runtime.
"any" is a special component name that will be interpreted as
"any/all components". For example, the following definitions
set FT2_DEBUG=any:2 memory:5 io:4 (on Windows)
- export FT2_DEBUG="any:2 memory:5 io:4" (on Linux)
+ export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash)
both stipulate that all components should have level 2, except for
- the memory and io components which will be set to trace levels 5 and
- 4 respectively.
+ the memory and io components which will be set to trace levels 5
+ and 4, respectively.
FT2_DEBUG_MEMORY
This environment variable, when defined, tells FreeType to use a
- debugging memory manager that will track leaked memory blocks as
+ debugging memory manager that will track leaking memory blocks as
well as other common errors like double frees. It is also capable
- of reporting _where_ the leaked blocks were allocated, which
+ of reporting _where_ the leaking blocks were allocated, which
considerably saves time when debugging new additions to the library.
This code is only compiled when FreeType is built with the
FT_DEBUG_MEMORY macro #defined in "ftoption.h" though, it will be
ignored in other builds.
-
FT2_ALLOC_TOTAL_MAX
- this variable is ignored if FT2_DEBUG_MEMORY is not defined. It allows
- you to specify a maximum heap size for all memory allocations performed
- by FreeType. This is very useful to test the robustness of the font
- engine and programs that use it in tight memory conditions.
+ This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
+ allows you to specify a maximum heap size for all memory allocations
+ performed by FreeType. This is very useful to test the robustness
+ of the font engine and programs that use it in tight memory
+ conditions.
- If it is undefined, or if its value is not strictly positive, then no
- allocation bounds are checked at runtime.
-
+ If it is undefined, or if its value is not strictly positive, then
+ no allocation bounds are checked at runtime.
FT2_ALLOC_COUNT_MAX
- this variable is ignored if FT2_DEBUG_MEMORY is not defined. It allows
- you to sepcify a maximum number of memory allocations performed by
- FreeType before returning the error FT_Err_Out_Of_Memory. This is
- useful for debugging and testing the engine's robustness.
+ This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
+ allows you to specify a maximum number of memory allocations
+ performed by FreeType before returning the error
+ FT_Err_Out_Of_Memory. This is useful for debugging and testing the
+ engine's robustness.
- If it is undefined, or if its value is not strictly positive, then no
- allocation bounsd are checked at runtime.
+ If it is undefined, or if its value is not strictly positive, then
+ no allocation bounsd are checked at runtime.
+
-End of file
+--- end of DEBUG ---
diff --git a/docs/INSTALL b/docs/INSTALL
index 8f5bc320..93c8bd36 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -1,65 +1,66 @@
-Welcome
-There are several ways to build the FreeType library, depending on your
-system and the level of customization you need. Here's a short overview
-of the documentation available:
+There are several ways to build the FreeType library, depending on your
+system and the level of customization you need. Here is a short
+overview of the documentation available:
-I. Normal installation and upgrades:
- 1. Native TrueType Hinting:
-
- Native TrueType hinting is disabled by default[1]. If you really need it,
- read the file "TRUETYPE" for information.
+I. Normal installation and upgrades
+===================================
+
+ 1. Native TrueType Hinting
+
+ Native TrueType hinting is disabled by default[1]. If you really
+ need it, read the file "TRUETYPE" for information.
-
- 2. Unix Systems (as well as Cygwin or MSys on Windows):
+ 2. Unix Systems (as well as Cygwin or MSys on Windows)
Please read *both* UPGRADE.UNX and INSTALL.UNX to install or upgrade
- FreeType 2 on a Unix system. Note that you *will* need GNU Make, since
- other make tools won't work (this includes BSD Make !!)
+ FreeType 2 on a Unix system. Note that you *will* need GNU Make,
+ since other make tools won't work (this includes BSD Make).
- 3. On VMS with the "mms" build tool:
+ 3. On VMS with the "mms" build tool
- see INSTALL.VMS for installation instructions on this platform
+ See INSTALL.VMS for installation instructions on this platform.
- 4. Other systems using GNU Make:
+ 4. Other systems using GNU Make
- on non-Unix platforms, it's possible to build the library using
- GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK* !!
- This methods supports several compilers on Windows, OS/2 and BeOS,
+ On non-Unix platforms, it is possible to build the library using GNU
+ Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]! This
+ methods supports several compilers on Windows, OS/2, and BeOS,
including Mingw, Visual C++, Borland C++, and more.
- instructions are provided in the file "INSTALL.GNU"
+ Instructions are provided in the file "INSTALL.GNU".
-
- 5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior):
+ 5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior)
- we provide a small number of "project files" for various IDEs to
- automatically build the library as well. Note that these files are
- not supported and sporadically maintained by FreeType developers,
- so don't expect them to work in each release.
+ We provide a small number of "project files" for various IDEs to
+ automatically build the library as well. Note that these files are
+ not supported and sporadically maintained by FreeType developers, so
+ don't expect them to work in each release.
- to find them, have a look at the content of the "builds/<system>"
+ To find them, have a look at the content of the "builds/<system>"
directory, where <system> stands for your OS or environment.
-
- 6. From you own IDE, or own Makefiles:
+ 6. From you own IDE, or own Makefiles
If you want to create your own project file, follow the instructions
given in the "INSTALL.ANY" document of this directory.
-II. Custom builds of the library:
+II. Custom builds of the library
+================================
- Customizing the compilation of FreeType is easy, and allows you to select
- only the components of the font engine that you really need. For more details
- read the file "CUSTOMIZE"
+ Customizing the compilation of FreeType is easy, and allows you to
+ select only the components of the font engine that you really need.
+ For more details read the file "CUSTOMIZE".
---------------------------------------------------------------------
+------------------------------------------------------------------------
[1] More details on: http://www.freetype.org/patents.html
-End of file
+[2] make++, a make tool written in Perl, has sufficient support of GNU
+ make extensions to build FreeType. See
+ http://makepp.sourceforge.net for more information.
- \ No newline at end of file
+--- end of INSTALL ---
diff --git a/docs/INSTALL.ANY b/docs/INSTALL.ANY
index 5e2cf0ee..af3f6e7a 100644
--- a/docs/INSTALL.ANY
+++ b/docs/INSTALL.ANY
@@ -1,96 +1,99 @@
-Instructions on how to build FreeType with your own build tool:
+Instructions on how to build FreeType with your own build tool
+==============================================================
- see the file "CUSTOMIZE" to learn how to customize FreeType to
- specific environments.
+See the file "CUSTOMIZE" to learn how to customize FreeType to specific
+environments.
- follow these simple steps:
-I. Normal way:
---------------
+I. Standard procedure
+---------------------
- * DISABLE PRE-COMPILED HEADERS ! This is very important for Visual
+ * DISABLE PRE-COMPILED HEADERS! This is very important for Visual
C++, because FreeType uses lines like:
- #include FT_FREETYPE_H
+ #include FT_FREETYPE_H
- which are not correctly supported by this compiler, while being
- ISO C compliant !!
+ which are not correctly supported by this compiler while being ISO C
+ compliant!
* You need to add the directories "freetype2/include" to your include
path when compiling the library.
- * FreeType 2 is made of several components; each one of them is
- located in a subdirectory of "freetype2/src". For example,
+ * FreeType 2 is made of several components; each of them is located in
+ a subdirectory of "freetype2/src". For example,
'freetype2/src/truetype/' contains the TrueType font driver.
* DO NOT COMPILE ALL C FILES! Rather, compile the following ones:
- -- base components (required)
-
- src/base/ftsystem.c
- src/base/ftinit.c
- src/base/ftdebug.c
- src/base/ftbase.c
- src/base/ftglyph.c
- src/base/ftbbox.c
- src/base/ftmm.c
- src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
- src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
- src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
-
- src/base/ftmac.c -- only on the Macintosh
-
- -- other components are optional
-
- src/autohint/autohint.c -- auto hinting module
- src/cache/ftcache.c -- cache sub-system (in beta)
- src/sfnt/sfnt.c -- SFNT files support
- (TrueType & OpenType)
- src/cff/cff.c -- CFF/OpenType font driver
- src/pfr/pfr.c -- PFR/TrueDoc font driver
- src/bdf/bdf.c -- BDF font driver
- src/pcf/pcf.c -- PCF font driver
- src/psnames/psnames.c -- Postscript glyph names support
- src/psaux/psaux.c -- Postscript Type 1 parsing
- src/truetype/truetype.c -- TrueType font driver
- src/type1/type1.c -- Type 1 font driver
- src/cid/type1cid.c -- Type 1 CID-keyed font driver
- src/winfonts/winfonts.c -- Windows FONT / FNT font driver
- src/raster1/raster1.c -- monochrome rasterizer
- src/smooth/smooth.c -- anti-aliasing rasterizer
-
- Note:
+ -- base components (required)
+
+ src/base/ftsystem.c
+ src/base/ftinit.c
+ src/base/ftdebug.c
+ src/base/ftbase.c
+ src/base/ftglyph.c
+ src/base/ftbbox.c
+ src/base/ftmm.c
+ src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
+ src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
+ src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
+
+ src/base/ftmac.c -- only on the Macintosh
+
+ -- other components (optional)
+
+ src/autohint/autohint.c -- auto hinting module
+ src/cache/ftcache.c -- cache sub-system (in beta)
+ src/sfnt/sfnt.c -- SFNT files support
+ (TrueType & OpenType)
+ src/cff/cff.c -- CFF/OpenType font driver
+ src/pfr/pfr.c -- PFR/TrueDoc font driver
+ src/bdf/bdf.c -- BDF font driver
+ src/pcf/pcf.c -- PCF font driver
+ src/psnames/psnames.c -- PostScript glyph names support
+ src/psaux/psaux.c -- PostScript Type 1 parsing
+ src/truetype/truetype.c -- TrueType font driver
+ src/type1/type1.c -- Type 1 font driver
+ src/cid/type1cid.c -- Type 1 CID-keyed font driver
+ src/winfonts/winfonts.c -- Windows FONT / FNT font driver
+ src/raster1/raster1.c -- monochrome rasterizer
+ src/smooth/smooth.c -- anti-aliasing rasterizer
+
+ Notes:
`truetype.c' needs `sfnt.c' and `psnames.c'
`type1.c' needs `psaux.c' and `psnames.c'
`type1cid.c' needs `psaux.c' and `psnames.c'
`cff.c' needs `sfnt.c', `psaux.c', and `psnames.c'
- that should be it ! in case of problems, see the archives of
- the FreeType development mailing list.
+
+ You are done. In case of problems, see the archives of the FreeType
+ development mailing list.
II. Support for flat-directory compilation
------------------------------------------
- It is possible to put all FreeType 2 source files into a single
+ It is possible to put all FreeType 2 source files into a single
directory, with the *exception* of the `include' hierarchy.
- 1. Copy all files in current directory:
+ 1. Copy all files in current directory
+
+ cp freetype2/src/base/*.[hc] .
+ cp freetype2/src/raster1/*.[hc] .
+ cp freetype2/src/smooth/*.[hc] .
+ etc.
- cp freetype2/src/base/*.[hc] .
- cp freetype2/src/raster1/*.[hc] .
- cp freetype2/src/smooth/*.[hc] .
- etc.
+ 2. Compile sources
- 2. Compile sources:
+ cc -c -Ifreetype2/include ftsystem.c
+ cc -c -Ifreetype2/include ftinit.c
+ cc -c -Ifreetype2/include ftdebug.c
+ cc -c -Ifreetype2/include ftbase.c
+ etc.
- cc -c -Ifreetype2/include ftsystem.c
- cc -c -Ifreetype2/include ftinit.c
- cc -c -Ifreetype2/include ftdebug.c
- cc -c -Ifreetype2/include ftbase.c
- etc.
+ You don't need to define the FT_FLAT_COMPILATION macro (as this was
+ required in previous releases of FreeType 2).
- You don't need to define the FT_FLAT_COMPILATION macro (as this was
- required in previous releases of FreeType 2).
+--- end of INSTALL.ANY ---
diff --git a/docs/INSTALL.GNU b/docs/INSTALL.GNU
index df6f012e..d984789e 100644
--- a/docs/INSTALL.GNU
+++ b/docs/INSTALL.GNU
@@ -1,128 +1,139 @@
-This document contains instructions on how to build the FreeType library
-on non-Unix systems with the help of GNU Make. Note that if you're running
-Cygwin or MSys in Windows, you should follow the instructions of INSTALL.UNX
-instead.
+This document contains instructions how to build the FreeType library on
+non-Unix systems with the help of GNU Make. Note that if you are
+running Cygwin or MSys in Windows, you should follow the instructions in
+the file INSTALL.UNX instead.
- FreeType 2 includes a powerful and flexible build system that allows
- you to easily compile it on a great variety of platforms from the
+ FreeType 2 includes a powerful and flexible build system that allows
+ you to easily compile it on a great variety of platforms from the
command line. To do so, just follow these simple instructions:
- a. Install GNU Make
+ 1. Install GNU Make
+ -------------------
- Because GNU Make is the only Make tool supported to compile
+ Because GNU Make is the only Make tool supported to compile
FreeType 2, you should install it on your machine.
- The FreeType 2 build system relies on many features special to GNU
- Make -- trying to build the library with any other Make tool will
+ The FreeType 2 build system relies on many features special to GNU
+ Make -- trying to build the library with any other Make tool will
*fail*.
- NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO
+ NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO
REALLY INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
- Make sure that you are invoking GNU Make from the command line, by
+ Note that make++, a make tool written in Perl, supports enough
+ features of GNU make to compile FreeType. See
+ http://makepp.sourceforge.net for more information.
+
+ Make sure that you are invoking GNU Make from the command line, by
typing something like:
- make -v
+ make -v
to display its version number.
VERSION 3.78.1 OR NEWER IS NEEDED!
+ 2. Invoke 'make'
+ ----------------
- b. Invoke 'make'
-
- Go to the root directory of FreeType 2, then simply invoke GNU
- Make from the command line. This will launch the FreeType 2 host
- platform detection routines. A summary will be displayed, for
+ Go to the root directory of FreeType 2, then simply invoke GNU Make
+ from the command line. This will launch the FreeType 2 host
+ platform detection routines. A summary will be displayed, for
example, on Win32:
- ==============================================================
- FreeType build system -- automatic system detection
+ ==============================================================
+ FreeType build system -- automatic system detection
- The following settings are used:
+ The following settings are used:
- platform win32
- compiler gcc
- configuration directory ./builds/win32
- configuration rules ./builds/win32/w32-gcc.mk
+ platform win32
+ compiler gcc
+ configuration directory ./builds/win32
+ configuration rules ./builds/win32/w32-gcc.mk
- If this does not correspond to your system or settings please
- remove the file 'config.mk' from this directory then read the
- INSTALL file for help.
+ If this does not correspond to your system or settings please
+ remove the file 'config.mk' from this directory then read the
+ INSTALL file for help.
- Otherwise, simply type 'make' again to build the library.
- =============================================================
+ Otherwise, simply type 'make' again to build the library.
+ =============================================================
- If the detected settings correspond to your platform and compiler,
- skip to step e. Note that if your platform is completely alien to
+ If the detected settings correspond to your platform and compiler,
+ skip to step 5. Note that if your platform is completely alien to
the build system, the detected platform will be 'ansi'.
- c. Configure the build system for a different compiler
+ 3. Configure the build system for a different compiler
+ ------------------------------------------------------
- If the build system correctly detected your platform, but you want
- to use a different compiler than the one specified in the summary
- (for most platforms, gcc is the defaut compiler), invoke GNU Make
+ If the build system correctly detected your platform, but you want
+ to use a different compiler than the one specified in the summary
+ (for most platforms, gcc is the defaut compiler), invoke GNU Make
with
- make setup <compiler>
+ make setup <compiler>
- For example:
+ Examples:
- to use Visual C++ on Win32, type: "make setup visualc"
- to use Borland C++ on Win32, type "make setup bcc32"
- to use Watcom C++ on Win32, type "make setup watcom"
- to use Intel C++ on Win32, type "make setup intelc"
- to use LCC-Win32 on Win32, type: "make setup lcc"
- to use Watcom C++ on OS/2, type "make setup watcom"
- to use VisualAge C++ on OS/2, type "make setup visualage"
+ to use Visual C++ on Win32, type: "make setup visualc"
+ to use Borland C++ on Win32, type "make setup bcc32"
+ to use Watcom C++ on Win32, type "make setup watcom"
+ to use Intel C++ on Win32, type "make setup intelc"
+ to use LCC-Win32 on Win32, type: "make setup lcc"
+ to use Watcom C++ on OS/2, type "make setup watcom"
+ to use VisualAge C++ on OS/2, type "make setup visualage"
- The <compiler> name to use is platform-dependent. The list of
- available compilers for your system is available in the file
+ The <compiler> name to use is platform-dependent. The list of
+ available compilers for your system is available in the file
`builds/<system>/detect.mk'
- If you are satisfied by the new configuration summary, skip to
- step e.
+ If you are satisfied by the new configuration summary, skip to
+ step 5.
- d. Configure the build system for an unknown platform/compiler
- The auto-detection/setup phase of the build system copies a file
- to the current directory under the name `config.mk'.
+ 4. Configure the build system for an unknown platform/compiler
+ --------------------------------------------------------------
- For example, on OS/2+gcc, it would simply copy
+ The auto-detection/setup phase of the build system copies a file to
+ the current directory under the name `config.mk'.
+
+ For example, on OS/2+gcc, it would simply copy
`builds/os2/os2-gcc.mk' to `./config.mk'.
- If for some reason your platform isn't correctly detected, copy
- manually the configuration sub-makefile to `./config.mk' and go to
- step e.
+ If for some reason your platform isn't correctly detected, copy
+ manually the configuration sub-makefile to `./config.mk' and go to
+ step 5.
- Note that this file is a sub-Makefile used to specify Make
- variables for compiler and linker invocation during the build.
- You can easily create your own version from one of the existing
- configuration files, then copy it to the current directory under
- the name `./config.mk'.
+ Note that this file is a sub-Makefile used to specify Make variables
+ for compiler and linker invocation during the build. You can easily
+ create your own version from one of the existing configuration
+ files, then copy it to the current directory under the name
+ `./config.mk'.
- e. Build the library
- The auto-detection/setup phase should have copied a file in the
- current directory, called `./config.mk'. This file contains
- definitions of various Make variables used to invoke the compiler
- and linker during the build.
+ 5. Build the library
+ --------------------
- To launch the build, simply invoke GNU Make again: The top
- Makefile will detect the configuration file and run the build with
- it.
+ The auto-detection/setup phase should have copied a file in the
+ current directory, called `./config.mk'. This file contains
+ definitions of various Make variables used to invoke the compiler
+ and linker during the build.
+ To launch the build, simply invoke GNU Make again: The top Makefile
+ will detect the configuration file and run the build with it.
- Final note:
+ Final note
- the build system builds a statically linked library of the font engine
- in the "objs" directory. It does _not_ support the build of DLLs on
- Windows and OS/2, if you need these, you'll have to either use
- a IDE-specific project file, or follow the instructions in
+ The build system builds a statically linked library of the font
+ engine in the "objs" directory. It does _not_ support the build of
+ DLLs on Windows and OS/2. If you need these, you have to either use
+ a IDE-specific project file, or follow the instructions in
"INSTALL.ANY" to create your own Makefiles.
+
+
+--- end of INSTALL.GNU ---
diff --git a/docs/INSTALL.UNX b/docs/INSTALL.UNX
index 6af176db..14833809 100644
--- a/docs/INSTALL.UNX
+++ b/docs/INSTALL.UNX
@@ -1,181 +1,64 @@
This document contains instructions on how to build the FreeType library
-on Unix systems. This also works for emulations like Cygwin or MSys on
+on Unix systems. This also works for emulations like Cygwin or MSys on
Win32:
- I. Ensure that you are using GNU Make
+ 1. Ensure that you are using GNU Make
-------------------------------------
- The FreeType build system _exclusively_ works with GNU Make. You
- will not be able to compile the library with the instructions
- below using any other alternative (including BSD Make).
+ The FreeType build system _exclusively_ works with GNU Make. You
+ will not be able to compile the library with the instructions below
+ using any other alternative (including BSD Make).
- Trying to compile the library with a different Make tool will
- print a message like:
+ [Well, this is not really correct. Recently, a perl implementation
+ of make called `makepp' has appeared which can also build FreeType 2
+ successfully on Unix platforms. See http://makepp.sourceforge.net
+ for more details.]
- Sorry, GNU make is required to build FreeType2.
+ Trying to compile the library with a different Make tool will print
+ a message like:
- and the build process will be aborted. If this happens, install
- GNU Make on your system, and use the GNUMAKE environment variable
- to name it.
+ Sorry, GNU make is required to build FreeType2.
+ and the build process will be aborted. If this happens, install GNU
+ Make on your system, and use the GNUMAKE environment variable to
+ name it.
- IV. Build and install the library
- ---------------------------------
+ 2. Build and install the library
+ --------------------------------
- The following should work on all Unix systems where the 'make'
+ The following should work on all Unix systems where the `make'
command invokes GNU Make:
- ./configure --prefix=<yourprefix>
+ ./configure [options]
make
make install (as root)
- where "<yourprefix>" must be replaced by the prefix returned by
- the "freetype-config" command.
+ The default installation path is "/usr/local". It can be changed
+ with the `--prefix=<path>' option. Example:
- When using a different command to invoke GNU Make, use the GNUMAKE
- variable. For example, if `gmake' is the command to use on your
+ ./configure --prefix=/usr
+
+ When using a different command to invoke GNU Make, use the GNUMAKE
+ variable. For example, if `gmake' is the command to use on your
system, do something like:
- GNUMAKE=gmake ./configure --prefix=<yourprefix>
+ GNUMAKE=gmake ./configure [options]
gmake
gmake install (as root)
- If this still doesn't work, something's rotten on your system(
- (e.g. you're using a very old version of GNU Make)
-
-
-
-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.
+ If this still doesn't work, something's rotten on your system
+ (e.g. you are using a very old version of GNU Make).
+ It is possible to compile FreeType in a different directory.
+ Assuming the FreeType source files in directory `/src/freetype' a
+ compilation in directory `foo' works as follows:
- 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.
+ cd foo
+ /src/freetype/configure [options]
+ make
+ make install
---- end of INSTALL --
+--- end of INSTALL.UNX --
diff --git a/docs/INSTALL.VMS b/docs/INSTALL.VMS
index a82b9fd0..4d9d64ca 100644
--- a/docs/INSTALL.VMS
+++ b/docs/INSTALL.VMS
@@ -1,8 +1,8 @@
How to build the freetype2 library on VMS
-----------------------------------------
-Just type one of the following depending on the type of external entries you
-want:
+Just type one of the following depending on the type of external entries
+you want:
mms
@@ -14,22 +14,23 @@ The library is avalaible in the directory
[.LIB]
-To compile applications using freetype2 you'll need to define the logical
+To compile applications using FreeType 2 you have to define the logical
FREETYPE pointing to the directory
[.INCLUDE.FREETYPE]
-(i.e., if the directory in which this README.VMS file is located is
+i.e., if the directory in which this INSTALL.VMS file is located is
$disk:[freetype] then define the logical with
define freetype $disk:[freetype.include.freetype]
-This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha V7.2-1.
+This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha
+V7.2-1.
Any problems can be reported to
- joukj@hrem.stm.tudelft.nl
+ Jouk Jansen <joukj@hrem.stm.tudelft.nl>
- Jouk Jansen
+--- end of INSTALL.VMS ---
diff --git a/docs/TODO b/docs/TODO
index b0abb687..73a34986 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -1,13 +1,13 @@
-Note that the list of known bugs for FreeType 2 is now located in the
-document "docs/BUGS".
-
Here is a list of items that need to be addressed in FreeType 2; they are
not exactly bugs, but should be considered though:
* Implement stem3/counter hints properly in the Postscript hinter.
-* FInalize the cache sub-system. If has been in beta for too long :-)
+* Finalize the cache sub-system. It has been in beta far too long :-)
* The automatic and Postscript hinters have been improved to increase
- the quality of AA text, but Monochrome and LCD hinting still suck. we
- need to do something about that..
+ the quality of AA text, but Monochrome and LCD hinting still suck. We
+ need to do something about that.
+
+
+--- end of TODO ---
diff --git a/docs/TRUETYPE b/docs/TRUETYPE
index 4ec4001b..68ecf197 100644
--- a/docs/TRUETYPE
+++ b/docs/TRUETYPE
@@ -1,14 +1,14 @@
How to enable the TrueType native hinter if you need it
--------------------------------------------------------
- The TrueType bytecode interpreter is disabled in all public
- releases of the FreeType packages for patents reasons (see
+ The TrueType bytecode interpreter is disabled in all public releases
+ of the FreeType packages for patents reasons (see
http://www.freetype.org/patents.html for more details).
- However, many Linux distributions do enable the interpreter in the
- FreeType packages (DEB/RPM/etc.) they produce for their platforms.
- If you are using TrueType fonts on your system, you most probably
- want to enable it manually by doing the following:
+ However, many Linux distributions do enable the interpreter in the
+ FreeType packages (DEB/RPM/etc.) they produce for their platforms. If
+ you are using TrueType fonts on your system, you most probably want to
+ enable it manually by doing the following:
- open the file "include/freetype/config/ftoption.h"
@@ -20,4 +20,7 @@ How to enable the TrueType native hinter if you need it
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
- of course, this must be done _before_ compiling the library
+ These steps must be done _before_ compiling the library.
+
+
+--- end of TRUETYPE ---
diff --git a/docs/UPGRADE.UNX b/docs/UPGRADE.UNX
index 0e67f907..0246b97c 100644
--- a/docs/UPGRADE.UNX
+++ b/docs/UPGRADE.UNX
@@ -2,87 +2,88 @@
SPECIAL NOTE FOR UNIX USERS
===========================
- If you are installing this release of FreeType on a system that
- already uses release 2.0.5 (or even an older version), you have to
+ If you are installing this release of FreeType on a system that
+ already uses release 2.0.5 (or even an older version), you have to
perform a few special steps to ensure that everything goes well.
- I. Enable the TrueType bytecode hinter if you need it
+ 1. Enable the TrueType bytecode hinter if you need it
-----------------------------------------------------
See the instructions in the file "TRUETYPE" of this directory.
- Note that FreeType supports TrueType fonts without the bytecode
- interpreter through its auto-hinter, which now generate relatively good
- results with most fonts.
+ Note that FreeType supports TrueType fonts without the bytecode
+ interpreter through its auto-hinter, which now generates relatively
+ good results with most fonts.
- II. Determine the correct installation path
- --------------------------------------------
+ 2. Determine the correct installation path
+ ------------------------------------------
- By default, the source package will install the library in
- "/usr/local". However, many Unix distributions now install the
- library in "/usr", since FreeType is becoming a critical system
+ By default, the configure script will install the library in
+ "/usr/local". However, many Unix distributions now install the
+ library in "/usr", since FreeType is becoming a critical system
component.
If FreeType is already installed on your system, type
freetype-config --prefix
- on the command line. This should return the installation path to
- use below (e.g. "/usr" or "/usr/local"). Otherwise, simply use
- "/usr" (or what you think is adequate for your installation).
+ on the command line. This should return the installation path
+ (e.g., "/usr" or "/usr/local"). To avoid problems of parallel
+ FreeType versions, use this path for the --prefix option of the
+ configure script.
+ Otherwise, simply use "/usr" (or whatever you think is adequate for
+ your installation).
- III. Ensure that you are using GNU Make
- ---------------------------------------
+ 3. Ensure that you are using GNU Make
+ -------------------------------------
- The FreeType build system _exclusively_ works with GNU Make. You
- will not be able to compile the library with the instructions
- below using any other alternative (including BSD Make).
+ The FreeType build system _exclusively_ works with GNU Make (as an
+ exception you can use make++ which emulates GNU Make sufficiently;
+ see http://makepp.sourceforge.net). You will not be able to compile
+ the library with the instructions below using any other alternative
+ (including BSD Make).
- Trying to compile the library with a different Make tool will
- print a message like:
+ Trying to compile the library with a different Make tool will print
+ a message like:
Sorry, GNU make is required to build FreeType2.
- and the build process will be aborted. If this happens, install
- GNU Make on your system, and use the GNUMAKE environment variable
- to name it.
+ and the build process will be aborted. If this happens, install GNU
+ Make on your system, and use the GNUMAKE environment variable to
+ name it.
+ 4. Build and install the library
+ --------------------------------
- IV. Build and install the library
- ---------------------------------
-
- The following should work on all Unix systems where the `make'
+ The following should work on all Unix systems where the `make'
command invokes GNU Make:
./configure --prefix=<yourprefix>
make
make install (as root)
- where "<yourprefix>" must be replaced by the prefix returned by
- the "freetype-config" command.
+ where "<yourprefix>" must be replaced by the prefix returned by the
+ "freetype-config" command.
- When using a different command to invoke GNU Make, use the GNUMAKE
- variable. For example, if `gmake' is the command to use on your
+ When using a different command to invoke GNU Make, use the GNUMAKE
+ variable. For example, if `gmake' is the command to use on your
system, do something like:
GNUMAKE=gmake ./configure --prefix=<yourprefix>
gmake
gmake install (as root)
- If this still doesn't work, read the detailed compilation
- procedure available in the file "docs/BUILD" for troubleshooting.
-
- V. Take care of XFree86 version 4
+ 5. Take care of XFree86 version 4
---------------------------------
- Certain recent Linux distributions will install _several_ versions
- of FreeType on your system. For example, on a fresh Mandrake 8.1
+ Certain recent Linux distributions will install _several_ versions
+ of FreeType on your system. For example, on a fresh Mandrake 8.1
system, you can find the following files:
/usr/lib/libfreetype.so which links to
@@ -93,22 +94,21 @@ SPECIAL NOTE FOR UNIX USERS
/usr/X11R6/lib/libfreetype.so which links to
/usr/X11R6/lib/libfreetype.6.0.so
- Note that these files correspond to two distinct versions of the
- library! It seems that this surprising issue is due to the
- install scripts of recent XFree86 servers (from 4.1.0) which
- irremediably install their own (dated) version of the library in
- "/usr/X11R6/lib".
+ Note that these files correspond to two distinct versions of the
+ library! It seems that this surprising issue is due to the install
+ scripts of recent XFree86 servers (from 4.1.0) which install their
+ own (dated) version of the library in "/usr/X11R6/lib".
- In certain _rare_ cases you may experience minor problems if you
- install this release of the library in "/usr" only, namely, that
- certain applications will not benefit from the bug fixes and
- rendering improvements you'd expect.
+ In certain _rare_ cases you may experience minor problems if you
+ install this release of the library in "/usr" only, namely, that
+ certain applications will not benefit from the bug fixes and
+ rendering improvements you would expect.
There are two good ways to deal with this situation:
- - Install the library _twice_, in "/usr" and in "/usr/X11R6"
- (you have to do that each time you install a new FreeType
- release though).
+ - Install the library _twice_, in "/usr" and in "/usr/X11R6" (you
+ have to do that each time you install a new FreeType release
+ though).
- Change the link in /usr/X11R6/lib/libfreetype.so to point to
@@ -118,7 +118,10 @@ SPECIAL NOTE FOR UNIX USERS
/usr/X11R6/lib/libfreetype.6.0.so
- The FreeType Team is not responsible for this problem, so please
- contact either the XFree86 development team or your Linux
- distributor to help clear this issue in case the information given
+ The FreeType Team is not responsible for this problem, so please
+ contact either the XFree86 development team or your Linux
+ distributor to help clear this issue in case the information given
here doesn't help.
+
+
+---- end of UPGRADE.UNX ---
diff --git a/docs/VERSION.DLL b/docs/VERSION.DLL
index ec4f4c61..10ccbfe8 100644
--- a/docs/VERSION.DLL
+++ b/docs/VERSION.DLL
@@ -1,90 +1,98 @@
-Due to our use of "libtool" to generate and install the FreeType 2 libraries
-on Unix systems, as well as other historical events, it is generally very
-difficult to know precisely which release of the font engine is installed
-on a given system.
+Due to our use of "libtool" to generate and install the FreeType 2
+libraries on Unix systems, as well as other historical events, it is
+generally very difficult to know precisely which release of the font
+engine is installed on a given system.
-This file tries to explain why and to document ways to properly detect
+This file tries to explain why and to document ways to properly detect
FreeType on Unix.
-I. Version & Release numbers:
+1. Version & Release numbers
+----------------------------
-For each new public release of FreeType 2, there are generally *three*
+For each new public release of FreeType 2, there are generally *three*
distinct "version" numbers to consider:
- * the official FT2 release number, like 2.0.9, or 2.1.3
+ * The official FT2 release number, like 2.0.9, or 2.1.3.
- * the libtool (and Unix) specific version number, like "9.2.3". This
- is what "freetype-config --version" will return
+ * The libtool (and Unix) specific version number, like "9.2.3". This
+ is what "freetype-config --version" will return.
- * the platform-specific shared object number, used for example when
- the library is installed as "/usr/lib/libfreetype.so.6.3.2"
+ * The platform-specific shared object number, used for example when
+ the library is installed as "/usr/lib/libfreetype.so.6.3.2".
+The platform-specific number is, unsurprisingly, platform-specific and
+varies with the operating system you are using (several variants of
+Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even
+for simple tests.
-the platform-specific number is, unsurprisingly, platform-specific and varies
-with the operating system you're using (several variants of Linux, FreeBSD,
-Solaris, etc...). You should thus _never_ use it, even for simple tests.
+The libtool-specific number does not equal the release number but is
+tied to it.
-the libtool-specific number does not equal the release number but is tied
-to it.
-
-the release number is available at *compile* time through the following
+The release number is available at *compile* time through the following
macros defined in FT_FREETYPE_H:
- FREETYPE_MAJOR : major release number
- FREETYPE_MINOR : minor release number
- FREETYPE_PATCH : patch release number
-see below for some Autoconf fragment to
-
+See below for a small autoconf fragment.
-the release number is also available at *runtime* through the
-"FT_Library_Version" API. Unfortunately, this one wasn't available or
-working correctly before the 2.1.3 official release !!
+The release number is also available at *runtime* through the
+"FT_Library_Version" API. Unfortunately, this one wasn't available or
+working correctly before the 2.1.3 official release.
-II. Table:
+2. History
+----------
-the following is a simple table that gives, for each official release,
-the corresponding libtool number, as well as the shared object number
-found on _most_ systems, but not all of them:
+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 ?
+ release libtool so
+ -------------------------------------
+ 2.1.4 9.3.3 6.3.3
+ 2.1.3 9.2.3 6.3.2
+ 2.1.2 9.1.3 6.3.1
+ 2.1.1 9.0.3 ?
+ 2.1.0 8.0.2 ?
+ 2.0.9 9.0.3 ?
+ 2.0.8 8.0.2 ?
-the libtool numbers are a bit inconsistent due to the library's history:
+The libtool numbers are a bit inconsistent due to the library's history:
- - 2.1.0 was created as a development branch from 2.0.8
- (hence the same libtool numbers)
+ - 2.1.0 was created as a development branch from 2.0.8 (hence the same
+ libtool numbers).
- - 2.0.9 was a bug-fix release of the "stable" branch, we
- apparently incorrectly increased its libtool number
+ - 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's stable enough
- to be the basis of an upcoming 2.2.0 release
+ - 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.
+3. Autoconf Code Fragment
+-------------------------
-III. AutoConf Code Fragment:
+Lars Clausen contributed the following autoconf fragment to detect which
+version of FreeType is installed on a system. This one tests for a
+version that is at least 2.0.9; you should change the last line to check
+against other release numbers.
-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
- AC_MSG_CHECKING([for version of FreeType])
- FREETYPE_INCLUDE=`freetype-config --cflags | cut -c3-`
- FREETYPE_MAJOR=`grep '^#define FREETYPE_MAJOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
- FREETYPE_MINOR=`grep '^#define FREETYPE_MINOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
- FREETYPE_PATCH=`grep '^#define FREETYPE_PATCH' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
- FREETYPE_VERSION=`echo | awk "BEGIN { printf \"%d\", ($FREETYPE_MAJOR * 1000 + $FREETYPE_MINOR) * 1000 + $FREETYPE_PATCH;}"`
- AC_MSG_RESULT([$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH])
- if test "$FREETYPE_VERSION" -ge 2000009; then
+--- end of VERSION.DLL ---
diff --git a/docs/license.txt b/docs/license.txt
index 51b52bf8..dc011d1d 100644
--- a/docs/license.txt
+++ b/docs/license.txt
@@ -1,28 +1,25 @@
- The FreeType 2 font engine is copyrighted work, and cannot be
- used legally without a software license. In order to make this
- project usable to a vast majority of developers, we distribute it
- under two dual licenses.
+The FreeType 2 font engine is copyrighted work and cannot be used
+legally without a software license. In order to make this project
+usable to a vast majority of developers, we distribute it under two
+mutually exclusive licenses.
- What this means is that *you* must choose *one* license among those
- described below, then obey all its terms and conditions when using
- FreeType 2 in any of your projects or products:
+This means that *you* must choose *one* license of the two described
+below, then obey all its terms and conditions when using FreeType 2 in
+any of your projects or products.
+ - The FreeType License, found in the file "FTL.TXT", which is an
+ BSD-style open-source license *with* an advertising clause that
+ forces you to explicitely cite the FreeType project in your
+ product's documentation. All details are in the license file.
- - The FreeType License, found in the file "FTL.TXT", which is
- an BSD-style open-source license *with* an advertising
- clause that forces you to explicitely cite the
- FreeType project in your product's documentation. All
- details are in the license file
+ - The GNU General Public License, found in "GPL.TXT", which is the
+ traditionnal and "viral" GPL license that forces you to redistribute
+ the _complete_ sources of all your products that use FreeType 2.
+Note that the contributed PCF driver comes with a license similar to
+that of X Window System which is compatible to the above two licenses
+(see file src/pcf/readme).
- - The GNU General Public License, found in "GPL.TXT", which is
- the traditionnal and "viral" GPL license, that
- forces you to redistribute the _complete_ sources of all
- your products that simply use FreeType 2.
-
-
- Note that the contributed PCF driver comes with a license similar to
- that of X Window System which is compatible to the above two
- licenses (see file src/pcf/readme).
+--- end of licence.txt ---