diff options
author | Werner Lemberg <wl@gnu.org> | 2003-04-21 13:30:27 +0000 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2003-04-21 13:30:27 +0000 |
commit | a16c4a7129d79c18ed74cdf825b67fe17d4707cb (patch) | |
tree | 81718adb89ad86c22896bbe30b4f4a8d683be932 /docs | |
parent | 692bbe59daf7046bb5d6951df9f95a1a7ec61c8b (diff) |
* doc/INSTALL.UNX: Cleaned up.
Other minor fixes/beautifying/formatting.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/CHANGES | 120 | ||||
-rw-r--r-- | docs/CUSTOMIZE | 134 | ||||
-rw-r--r-- | docs/DEBUG | 76 | ||||
-rw-r--r-- | docs/INSTALL | 73 | ||||
-rw-r--r-- | docs/INSTALL.ANY | 129 | ||||
-rw-r--r-- | docs/INSTALL.GNU | 159 | ||||
-rw-r--r-- | docs/INSTALL.UNX | 189 | ||||
-rw-r--r-- | docs/INSTALL.VMS | 15 | ||||
-rw-r--r-- | docs/TODO | 12 | ||||
-rw-r--r-- | docs/TRUETYPE | 17 | ||||
-rw-r--r-- | docs/UPGRADE.UNX | 109 | ||||
-rw-r--r-- | docs/VERSION.DLL | 122 | ||||
-rw-r--r-- | docs/license.txt | 39 |
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 --- @@ -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 --- @@ -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 --- |