Update to FreeType 2.1.5

svn path=/trunk/; revision=7814
This commit is contained in:
Gé van Geldorp 2004-01-21 19:23:49 +00:00
parent e47bd48591
commit 561fa3d093
265 changed files with 21469 additions and 12080 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,206 +0,0 @@
# Doxyfile 1.3.5
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "ReactOS Freetype"
PROJECT_NUMBER =
OUTPUT_DIRECTORY = doxy-doc
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = YES
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = ../..
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = NO
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
HAVE_DOT = YES
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = .
FILE_PATTERNS = *.c \
*.h
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = YES
IMAGE_PATH =
INPUT_FILTER =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 200
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = YES
RTF_HYPERLINKS = YES
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = NO
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH = ../../include
INCLUDE_FILE_PATTERNS = *.h
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 0
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES

View file

@ -1,21 +1,22 @@
# FreeType 2 top Jamfile (c) 2001-2002 David Turner # FreeType 2 top Jamfile (c) 2001, 2002, 2003 David Turner
# #
# The HDRMACRO is already defined in FTJam and is used to add # The HDRMACRO is already defined in FTJam and is used to add
# the content of certain macros to the list of included header # the content of certain macros to the list of included header
# files. # files.
# #
# we can compile FreeType 2 with classic Jam however thanks to # We can compile FreeType 2 with classic Jam however thanks to
# the following code # the following code
# #
if ! $(JAM_TOOLSET) if ! $(JAM_TOOLSET)
{ {
rule HDRMACRO rule HDRMACRO
{ {
# nothing !! # nothing
} }
} }
# We need to invoke a SubDir rule if the FT2 source directory top is not the # We need to invoke a SubDir rule if the FT2 source directory top is not the
# current directory. This allows us to build FreeType 2 as part of a larger # current directory. This allows us to build FreeType 2 as part of a larger
# project easily. # project easily.
@ -25,71 +26,83 @@ if $(FT2_TOP) != $(DOT)
SubDir FT2_TOP ; SubDir FT2_TOP ;
} }
#
# The following macros define the include directory, the source directory # The following macros define the include directory, the source directory,
# and the final library name (without library extensions). They can be # and the final library name (without library extensions). They can be
# replaced by other definitions when the library is compiled as part of # replaced by other definitions when the library is compiled as part of
# a larger project. # a larger project.
# #
# name of FreeType include directory during compilation. # Name of FreeType include directory during compilation.
# relative to FT2_TOP # This is relative to FT2_TOP.
# #
FT2_INCLUDE_DIR ?= include ; FT2_INCLUDE_DIR ?= include ;
# name of FreeType source directory during compilation. # Name of FreeType source directory during compilation.
# relative to FT2_TOP # This is relative to FT2_TOP.
# #
FT2_SRC_DIR ?= src ; FT2_SRC_DIR ?= src ;
# name of final library, without extension # Name of final library, without extension.
# #
FT2_LIB ?= $(LIBPREFIX)freetype ; FT2_LIB ?= $(LIBPREFIX)freetype ;
# define FT2_BUILD_INCLUDE to point to your build-specific directory # Define FT2_BUILD_INCLUDE to point to your build-specific directory.
# this is prepended to FT2_INCLUDE_DIR. This can be used to specify # This is prepended to FT2_INCLUDE_DIR. It can be used to specify
# the location of a custom <ft2build.h> which will point to custom # the location of a custom <ft2build.h> which will point to custom
# versions of "ftmodule.h" and "ftoption.h", for example # versions of "ftmodule.h" and "ftoption.h", for example.
# #
FT2_BUILD_INCLUDE ?= ; FT2_BUILD_INCLUDE ?= ;
# the list of modules to compile on any given build of the library # The list of modules to compile on any given build of the library.
# by default, this will contain _all_ modules defined in FT2_SRC_DIR # By default, this will contain _all_ modules defined in FT2_SRC_DIR.
# #
# IMPORTANT: You'll need to change the content of "ftmodule.h" as well # IMPORTANT: You'll need to change the content of "ftmodule.h" as well
# if you modify this list or provide your own. # if you modify this list or provide your own.
# #
FT2_COMPONENTS ?= gzip # support for gzip-compressed files. FT2_COMPONENTS ?= gzip # support for gzip-compressed files
autohint # auto-hinter autohint # auto-hinter
base # base component (public APIs) base # base component (public APIs)
bdf # BDF font driver bdf # BDF font driver
cache # cache sub-system cache # cache sub-system
cff # CFF/CEF font driver cff # CFF/CEF font driver
cid # Postscript CID-keyed font driver cid # PostScript CID-keyed font driver
pcf # PCF font driver pcf # PCF font driver
pfr # PFR/TrueDoc font driver pfr # PFR/TrueDoc font driver
psaux # Common Postscript routines module psaux # common PostScript routines module
pshinter # Postscript hinter module pshinter # PostScript hinter module
psnames # Postscript names handling psnames # PostScript names handling
raster # Monochrome rasterizer raster # monochrome rasterizer
smooth # Anti-aliased rasterizer smooth # anti-aliased rasterizer
sfnt # SFNT-based format support routines sfnt # SFNT-based format support routines
truetype # TrueType font driver truetype # TrueType font driver
type1 # Postscript Type 1 font driver type1 # PostScript Type 1 font driver
type42 # Postscript Type 42 (embedded TrueType) driver type42 # PostScript Type 42 (embedded TrueType) driver
winfonts # Windows FON/FNT font driver winfonts # Windows FON/FNT font driver
; ;
# don't touch # Don't touch.
# #
FT2_INCLUDE = $(FT2_BUILD_INCLUDE) FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
[ FT2_SubDir $(FT2_INCLUDE_DIR) ] ; [ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ; FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
# only used by FreeType developers # Location of API Reference Documentation
#
if $(DOC_DIR)
{
DOC_DIR = $(DOCDIR:T) ;
}
else
{
DOC_DIR = docs/reference ;
}
# Only used by FreeType developers.
# #
if $(DEBUG_HINTER) if $(DEBUG_HINTER)
{ {
@ -104,11 +117,12 @@ HDRS += $(FT2_INCLUDE) ;
# Uncomment the following line if you want to build individual source files # Uncomment the following line if you want to build individual source files
# for each FreeType 2 module. this is only useful during development, and # for each FreeType 2 module. This is only useful during development, and
# is better defined as an environment variable anyway ! # is better defined as an environment variable anyway!
# #
# FT2_MULTI = true ; # FT2_MULTI = true ;
# The file <freetype/config/ftheader.h> is used to define macros that are # The file <freetype/config/ftheader.h> is used to define macros that are
# later used in #include statements. It needs to be parsed in order to # later used in #include statements. It needs to be parsed in order to
# record these definitions. # record these definitions.
@ -116,17 +130,26 @@ HDRS += $(FT2_INCLUDE) ;
HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ; HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ;
HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ; HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ;
# Now include the Jamfile in "freetype2/src", used to drive the compilation # Now include the Jamfile in "freetype2/src", used to drive the compilation
# of each FreeType 2 component and/or module. # of each FreeType 2 component and/or module.
# #
SubInclude FT2_TOP $(FT2_SRC_DIR) ; SubInclude FT2_TOP $(FT2_SRC_DIR) ;
# tests files (hinter debugging). only used by FreeType developers # Test files (hinter debugging). Only used by FreeType developers.
# #
if $(DEBUG_HINTER) if $(DEBUG_HINTER)
{ {
SubInclude FT2_TOP tests ; SubInclude FT2_TOP tests ;
} }
actions RefDoc
{
python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.1.5 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h $(FT2_INCLUDE)/freetype/cache/*.h
}
RefDoc refdoc ;
# end of top Jamfile # end of top Jamfile

View file

@ -1,21 +1,22 @@
# FreeType 2 top Jamfile (c) 2001-2002 David Turner # FreeType 2 top Jamfile (c) 2001, 2002, 2003 David Turner
# #
# The HDRMACRO is already defined in FTJam and is used to add # The HDRMACRO is already defined in FTJam and is used to add
# the content of certain macros to the list of included header # the content of certain macros to the list of included header
# files. # files.
# #
# we can compile FreeType 2 with classic Jam however thanks to # We can compile FreeType 2 with classic Jam however thanks to
# the following code # the following code
# #
if ! $(JAM_TOOLSET) if ! $(JAM_TOOLSET)
{ {
rule HDRMACRO rule HDRMACRO
{ {
# nothing !! # nothing
} }
} }
# We need to invoke a SubDir rule if the FT2 source directory top is not the # We need to invoke a SubDir rule if the FT2 source directory top is not the
# current directory. This allows us to build FreeType 2 as part of a larger # current directory. This allows us to build FreeType 2 as part of a larger
# project easily. # project easily.
@ -25,71 +26,71 @@ if $(FT2_TOP) != $(DOT)
SubDir FT2_TOP ; SubDir FT2_TOP ;
} }
#
# The following macros define the include directory, the source directory # The following macros define the include directory, the source directory,
# and the final library name (without library extensions). They can be # and the final library name (without library extensions). They can be
# replaced by other definitions when the library is compiled as part of # replaced by other definitions when the library is compiled as part of
# a larger project. # a larger project.
# #
# name of FreeType include directory during compilation. # Name of FreeType include directory during compilation.
# relative to FT2_TOP # This is relative to FT2_TOP.
# #
FT2_INCLUDE_DIR ?= include ; FT2_INCLUDE_DIR ?= include ;
# name of FreeType source directory during compilation. # Name of FreeType source directory during compilation.
# relative to FT2_TOP # This is relative to FT2_TOP.
# #
FT2_SRC_DIR ?= src ; FT2_SRC_DIR ?= src ;
# name of final library, without extension # Name of final library, without extension.
# #
FT2_LIB ?= $(LIBPREFIX)freetype ; FT2_LIB ?= $(LIBPREFIX)freetype ;
# define FT2_BUILD_INCLUDE to point to your build-specific directory # Define FT2_BUILD_INCLUDE to point to your build-specific directory.
# this is prepended to FT2_INCLUDE_DIR. This can be used to specify # This is prepended to FT2_INCLUDE_DIR. It can be used to specify
# the location of a custom <ft2build.h> which will point to custom # the location of a custom <ft2build.h> which will point to custom
# versions of "ftmodule.h" and "ftoption.h", for example # versions of "ftmodule.h" and "ftoption.h", for example.
# #
FT2_BUILD_INCLUDE ?= ; FT2_BUILD_INCLUDE ?= ;
# the list of modules to compile on any given build of the library # The list of modules to compile on any given build of the library.
# by default, this will contain _all_ modules defined in FT2_SRC_DIR # By default, this will contain _all_ modules defined in FT2_SRC_DIR.
# #
# IMPORTANT: You'll need to change the content of "ftmodule.h" as well # IMPORTANT: You'll need to change the content of "ftmodule.h" as well
# if you modify this list or provide your own. # if you modify this list or provide your own.
# #
FT2_COMPONENTS ?= gzip # support for gzip-compressed files. FT2_COMPONENTS ?= gzip # support for gzip-compressed files
autohint # auto-hinter autohint # auto-hinter
base # base component (public APIs) base # base component (public APIs)
bdf # BDF font driver bdf # BDF font driver
cache # cache sub-system cache # cache sub-system
cff # CFF/CEF font driver cff # CFF/CEF font driver
cid # Postscript CID-keyed font driver cid # PostScript CID-keyed font driver
pcf # PCF font driver pcf # PCF font driver
pfr # PFR/TrueDoc font driver pfr # PFR/TrueDoc font driver
psaux # Common Postscript routines module psaux # common PostScript routines module
pshinter # Postscript hinter module pshinter # PostScript hinter module
psnames # Postscript names handling psnames # PostScript names handling
raster # Monochrome rasterizer raster # monochrome rasterizer
smooth # Anti-aliased rasterizer smooth # anti-aliased rasterizer
sfnt # SFNT-based format support routines sfnt # SFNT-based format support routines
truetype # TrueType font driver truetype # TrueType font driver
type1 # Postscript Type 1 font driver type1 # PostScript Type 1 font driver
type42 # Postscript Type 42 (embedded TrueType) driver type42 # PostScript Type 42 (embedded TrueType) driver
winfonts # Windows FON/FNT font driver winfonts # Windows FON/FNT font driver
; ;
# don't touch # Don't touch.
# #
FT2_INCLUDE = $(FT2_BUILD_INCLUDE) FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
[ FT2_SubDir $(FT2_INCLUDE_DIR) ] ; [ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ; FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
# only used by FreeType developers # Only used by FreeType developers.
# #
if $(DEBUG_HINTER) if $(DEBUG_HINTER)
{ {
@ -103,13 +104,13 @@ if $(DEBUG_HINTER)
HDRS += $(FT2_INCLUDE) ; HDRS += $(FT2_INCLUDE) ;
#SubDirHdr += $(FT2_INCLUDE) ;
# Uncomment the following line if you want to build individual source files # Uncomment the following line if you want to build individual source files
# for each FreeType 2 module. # for each FreeType 2 module. This is only useful during development, and
# is better defined as an environment variable anyway!
# #
# FT2_MULTI = true ; # FT2_MULTI = true ;
# The file <freetype/config/ftheader.h> is used to define macros that are # The file <freetype/config/ftheader.h> is used to define macros that are
# later used in #include statements. It needs to be parsed in order to # later used in #include statements. It needs to be parsed in order to
# record these definitions. # record these definitions.
@ -117,13 +118,14 @@ HDRS += $(FT2_INCLUDE) ;
HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ; HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ;
HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ; HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ;
# Now include the Jamfile in "freetype2/src", used to drive the compilation # Now include the Jamfile in "freetype2/src", used to drive the compilation
# of each FreeType 2 component and/or module. # of each FreeType 2 component and/or module.
# #
SubInclude FT2_TOP $(FT2_SRC_DIR) ; SubInclude FT2_TOP $(FT2_SRC_DIR) ;
# tests files (hinter debugging). only used by FreeType developers # Test files (hinter debugging). Only used by FreeType developers.
# #
if $(DEBUG_HINTER) if $(DEBUG_HINTER)
{ {

View file

@ -1,4 +1,4 @@
# FreeType 2 JamRules (c) 2001 David Turner # FreeType 2 JamRules (c) 2001, 2002, 2003 David Turner
# #
# This file contains the Jam rules needed to build the FreeType 2 library. # This file contains the Jam rules needed to build the FreeType 2 library.
# It is shared by all Jamfiles and is included only once in the build # It is shared by all Jamfiles and is included only once in the build
@ -6,7 +6,7 @@
# #
# call SubDirHdrs on a list of directories # Call SubDirHdrs on a list of directories.
# #
rule AddSubDirHdrs rule AddSubDirHdrs
{ {

View file

@ -1,39 +1,36 @@
Special notes to Unix users Special notes to Unix users
=========================== ===========================
Please read the file "docs/UPGRADE.UNX", it contains important Please read the file "docs/UPGRADE.UNX". It contains important
information regarding the installation of FreeType on Unix systems, information regarding the installation of FreeType on Unix systems,
especially GNU based operating systems like GNU/Linux. especially GNU based operating systems like GNU/Linux.
FreeType 2's library is called `libfreetype', FreeType 1's library FreeType 2's library is called `libfreetype', FreeType 1's library
is called `libttf'. They are *not* compatible! is called `libttf'. They are *not* compatible!
FreeType 2.1.4 FreeType 2.1.5
============== ==============
Please read the docs/CHANGES file, it contains IMPORTANT Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION.
INFORMATION.
Read the files "docs/INSTALL" for installation instructions. Read the files "docs/INSTALL" for installation instructions.
Note that the FreeType 2 documentation is now available as a Note that the FreeType 2 documentation is now available as a
separate package from our sites. See: separate package from our sites. See:
ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.1.4.tar.bz2 ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.1.5.tar.bz2
ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.1.4.tar.gz ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.1.5.tar.gz
ftp://ftp.freetype.org/pub/freetype2/ftdoc214.zip ftp://ftp.freetype.org/pub/freetype2/ftdoc215.zip
Reports Bugs
======= ====
Please report bugs by e-mail to `devel@freetype.org'. Don't
forget to send a detailed explanation of the problem -- there is
nothing worse than receiving a terse message that only says "it
doesn't work".
Please report bugs by e-mail to `devel@freetype.org'. Don't forget
to send a detailed explanation of the problem -- there is nothing
worse than receiving a terse message that only says "it doesn't
work".
Enjoy! Enjoy!

View file

@ -1,7 +1,7 @@
CREDITS CREDITS
The code in this tree is based (it is actually an exact copy with some The code in this tree is based (it is actually an exact copy with some
ReactOS specific extra files) on the FreeType library, version 2.1.3. ReactOS specific extra files) on the FreeType library, version 2.1.5.
It was written and is being maintained by the FreeType team. The projects It was written and is being maintained by the FreeType team. The projects
website is http://www.freetype.org. website is http://www.freetype.org.
@ -47,6 +47,7 @@ copy lib\freetype.old\rosglue.c lib\freetype
copy lib\freetype.old\i386\setjmplongjmp.s lib\freetype\i386 copy lib\freetype.old\i386\setjmplongjmp.s lib\freetype\i386
copy lib\freetype.old\Makefile lib\freetype copy lib\freetype.old\Makefile lib\freetype
copy lib\freetype.old\README.ROS lib\freetype copy lib\freetype.old\README.ROS lib\freetype
copy lib\freetype.old\Doxyfile lib\freetype
copy lib\freetype.old\.cvsignore lib\freetype copy lib\freetype.old\.cvsignore lib\freetype
copy lib\freetype.old\objs\.cvsignore lib\freetype\objs copy lib\freetype.old\objs\.cvsignore lib\freetype\objs
copy lib\freetype.old\i386\.cvsignore lib\freetype\i386 copy lib\freetype.old\i386\.cvsignore lib\freetype\i386
@ -65,4 +66,4 @@ file, so it is obvious to everyone which FreeType version we're using.
After testing, you can commit the new/changed files to CVS. ALthough files After testing, you can commit the new/changed files to CVS. ALthough files
config.mk and freetype.def are generated, they should be included in CVS. config.mk and freetype.def are generated, they should be included in CVS.
$Id: README.ROS,v 1.3 2003/04/18 10:48:12 gvg Exp $ $Id: README.ROS,v 1.4 2004/01/21 19:23:45 gvg Exp $

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -17,11 +17,10 @@ ifndef TOP_DIR
TOP_DIR := . TOP_DIR := .
endif endif
DELETE := rm -f DELETE := rm -f
SEP := / SEP := /
HOSTSEP := $(SEP) BUILD_DIR := $(TOP_DIR)/builds/ansi
BUILD := $(TOP_DIR)/builds/ansi PLATFORM := ansi
PLATFORM := ansi
# The directory where all object files are placed. # The directory where all object files are placed.
@ -34,7 +33,7 @@ PLATFORM := ansi
# make -f $TOP_DIR/Makefile # make -f $TOP_DIR/Makefile
# #
ifndef OBJ_DIR ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)$(SEP)objs OBJ_DIR := $(TOP_DIR)/objs
endif endif

View file

@ -17,4 +17,5 @@ include $(TOP_DIR)/builds/ansi/ansi-def.mk
include $(TOP_DIR)/builds/compiler/ansi-cc.mk include $(TOP_DIR)/builds/compiler/ansi-cc.mk
include $(TOP_DIR)/builds/link_std.mk include $(TOP_DIR)/builds/link_std.mk
# EOF # EOF

View file

@ -5,7 +5,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -19,11 +19,10 @@ ifndef TOP_DIR
TOP_DIR := . TOP_DIR := .
endif endif
DELETE := rm -f DELETE := rm -f
SEP := / SEP := /
HOSTSEP := $(SEP) BUILD_DIR := $(TOP_DIR)/builds/beos
BUILD := $(TOP_DIR)/builds/neos PLATFORM := beos
PLATFORM := beos
# The directory where all object files are placed. # The directory where all object files are placed.
@ -36,7 +35,7 @@ PLATFORM := beos
# make -f $TOP_DIR/Makefile # make -f $TOP_DIR/Makefile
# #
ifndef OBJ_DIR ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)$(SEP)objs OBJ_DIR := $(TOP_DIR)/objs
endif endif

View file

@ -15,5 +15,5 @@ include $(TOP_DIR)/builds/compiler/ansi-cc.mk
include $(TOP_DIR)/builds/beos/beos-def.mk include $(TOP_DIR)/builds/beos/beos-def.mk
include $(TOP_DIR)/builds/link_std.mk include $(TOP_DIR)/builds/link_std.mk
# EOF
# EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -27,15 +27,14 @@ endif
ifeq ($(PLATFORM),beos) ifeq ($(PLATFORM),beos)
DELETE := rm -f DELETE := rm -f
SEP := / SEP := /
HOSTSEP := $(SEP) BUILD_DIR := $(TOP_DIR)/builds/beos
BUILD := $(TOP_DIR)/builds/beos
CONFIG_FILE := beos.mk CONFIG_FILE := beos.mk
setup: std_setup setup: std_setup
endif # test PLATFORM beos endif # test PLATFORM beos
# EOF
# EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,9 @@
# Compiler command line name # Compiler command line name
# #
CC := cc CC := cc
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform. # .o, .tco, .obj, etc., depending on the platform.
@ -74,8 +76,9 @@ ANSIFLAGS :=
# Library linking # Library linking
# #
ifndef CLEAN_LIBRARY ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
endif endif
LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST) LINK_LIBRARY = $(AR) -r $@ $(subst /,$(COMPILER_SEP),$(OBJECTS_LIST))
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,9 @@
# Compiler command line name # Compiler command line name
# #
CC := bcc32 CC := bcc32
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform. # .o, .tco, .obj, etc., depending on the platform.
@ -72,9 +74,9 @@ ANSIFLAGS := -A
# Library linking # Library linking
# #
ifndef CLEAN_LIBRARY ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
endif endif
TARGET_OBJECTS = $(subst $(SEP),\\,$(OBJECTS_LIST)) LINK_LIBRARY = tlib /u $(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST:%=+%))
LINK_LIBRARY = tlib /u $(subst $(SEP),\\,$@) $(TARGET_OBJECTS:%=+%)
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,9 @@
# Compiler command line name # Compiler command line name
# #
CC := bcc32 CC := bcc32
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform. # .o, .tco, .obj, etc., depending on the platform.
@ -72,9 +74,9 @@ ANSIFLAGS := -A
# Library linking # Library linking
# #
ifndef CLEAN_LIBRARY ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
endif endif
TARGET_OBJECTS = $(subst $(SEP),\\,$(OBJECTS_LIST)) LINK_LIBRARY = tlib /u $(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST:%=+%))
LINK_LIBRARY = tlib /u $(subst $(SEP),\\,$@) $(TARGET_OBJECTS:%=+%)
# EOF # EOF

View file

@ -0,0 +1,81 @@
#
# FreeType 2 emx-specific definitions
#
# Copyright 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
# Compiler command line name
#
CC := set GCCOPT="-ansi -pedantic"; gcc
COMPILER_SEP := /
# The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform.
#
O := o
SO := o
# The library file extension (for standard and static libraries). This can
# be .a, .lib, etc., depending on the platform.
#
A := a
SA := a
# Path inclusion flag. Some compilers use a different flag than `-I' to
# specify an additional include path. Examples are `/i=' or `-J'.
#
I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
# The link flag used to specify a given library file on link. Note that
# this is only used to compile the demo programs, not the library itself.
#
L := -l
# Target flag.
#
T := -o$(space)
# C flags
#
# These should concern: debug output, optimization & warnings.
#
# Use the ANSIFLAGS variable to define the compiler flags used to enfore
# ANSI compliance.
#
ifndef CFLAGS
CFLAGS := -c -g -O6 -Wall
endif
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS :=
# Library linking
#
ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
endif
LINK_LIBRARY = $(foreach m,$(OBJECTS_LIST),$(AR) -r $@ $(m);) echo > nul
# EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,9 @@
# Compiler command line name # Compiler command line name
# #
CC := gcc CC := gcc
COMPILER_SEP := /
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform. # .o, .tco, .obj, etc., depending on the platform.
@ -62,6 +64,7 @@ T := -o$(space)
# #
ifndef CFLAGS ifndef CFLAGS
CFLAGS := -c -g -O0 \ CFLAGS := -c -g -O0 \
-fno-strict-aliasing \
-Wall \ -Wall \
-W \ -W \
-Wundef \ -Wundef \
@ -82,8 +85,9 @@ ANSIFLAGS := -ansi -pedantic
# Library linking # Library linking
# #
ifndef CLEAN_LIBRARY ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
endif endif
LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST) LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,9 @@
# Compiler command line name # Compiler command line name
# #
CC := gcc CC := gcc
COMPILER_SEP := /
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
# .o, .tco, .obj, etc., depending on the platform. # .o, .tco, .obj, etc., depending on the platform.
@ -60,7 +62,7 @@ T := -o$(space)
# ANSI compliance. # ANSI compliance.
# #
ifndef CFLAGS ifndef CFLAGS
CFLAGS := -c -g -O6 -Wall CFLAGS := -c -g -O6 -Wall -fno-strict-aliasing
endif endif
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant. # ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
@ -71,8 +73,9 @@ ANSIFLAGS := -ansi -pedantic
# Library linking # Library linking
# #
ifndef CLEAN_LIBRARY ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
endif endif
LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST) LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,8 @@
# compiler command line name # compiler command line name
# #
CC := icl CC := icl
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
@ -79,6 +80,7 @@ ANSIFLAGS := /Qansi /Za
# Library linking # Library linking
# #
#CLEAN_LIBRARY = #CLEAN_LIBRARY =
LINK_LIBRARY = lib /nologo /out:$@ $(OBJECTS_LIST) LINK_LIBRARY = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,8 @@
# Command line name # Command line name
# #
CC := lcc CC := lcc
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
@ -78,8 +79,9 @@ ANSIFLAGS := -A
# library linking # library linking
# #
ifndef CLEAN_LIBRARY ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) CLEAN_LIBRARY = $(DELETE) $(PROJECT_LIBRARY)
endif endif
LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST) LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,8 @@
# command line compiler name # command line compiler name
# #
CC := icc CC := icc
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
@ -71,6 +72,7 @@ ANSI_FLAGS := /Sa
# Library linking # Library linking
# #
#CLEAN_LIBRARY := #CLEAN_LIBRARY :=
LINK_LIBRARY = lib /nologo /out:$@ $(OBJECTS_LIST) LINK_LIBRARY = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,8 @@
# compiler command line name # compiler command line name
# #
CC := cl CC := cl
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
@ -74,6 +75,7 @@ ANSIFLAGS := /Za
# Library linking # Library linking
# #
#CLEAN_LIBRARY = #CLEAN_LIBRARY =
LINK_LIBRARY = lib /nologo /out:$@ $(OBJECTS_LIST) LINK_LIBRARY = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,8 @@
# Compiler command line name # Compiler command line name
# #
CC := wcc386 CC := wcc386
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
@ -74,8 +75,11 @@ ANSIFLAGS := -za
# Library linking # Library linking
# #
ifndef CLEAN_LIBRARY ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
endif endif
LINK_LIBRARY = wlib -q -o = $@ $(OBJECTS_LIST) LINK_LIBRARY = $(subst /,$(COMPILER_SEP), \
wlib -q -n $@; \
$(foreach m, $(OBJECTS_LIST), wlib -q $@ +$(m);) \
echo > nul)
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -15,7 +15,8 @@
# Command line name # Command line name
# #
CC := lcc CC := lcc
COMPILER_SEP := $(SEP)
# The object file extension (for standard and static libraries). This can be # The object file extension (for standard and static libraries). This can be
@ -76,6 +77,7 @@ ANSIFLAGS :=
# library linking # library linking
# #
#CLEAN_LIBRARY := #CLEAN_LIBRARY :=
LINK_LIBRARY = lcclib /out:$(subst $(SEP),\\,$@) $(subst $(SEP),\\,$(OBJECTS_LIST)) LINK_LIBRARY = lcclib /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2001, 2002, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -16,7 +16,7 @@
# This sub-Makefile is in charge of detecting the current platform. It sets # This sub-Makefile is in charge of detecting the current platform. It sets
# the following variables: # the following variables:
# #
# BUILD The configuration and system-specific directory. Usually # BUILD_DIR The configuration and system-specific directory. Usually
# `freetype/builds/$(PLATFORM)' but can be different for # `freetype/builds/$(PLATFORM)' but can be different for
# custom builds of the library. # custom builds of the library.
# #
@ -30,6 +30,7 @@
# DELETE The shell command used to remove a given file. # DELETE The shell command used to remove a given file.
# COPY The shell command used to copy one file. # COPY The shell command used to copy one file.
# SEP The platform-specific directory separator. # SEP The platform-specific directory separator.
# COMPILER_SEP The separator used in arguments of the compilation tools.
# CC The compiler to use. # CC The compiler to use.
# #
# You need to set the following variable(s) before calling it: # You need to set the following variable(s) before calling it:
@ -44,17 +45,17 @@ ifndef TOP_DIR
endif endif
# Set auto-detection default to `ansi' resp. UNIX-like operating systems. # Set auto-detection default to `ansi' resp. UNIX-like operating systems.
# Note that we delay evaluation of $(BUILD_CONFIG_), $(BUILD), and
# $(CONFIG_RULES).
# #
PLATFORM := ansi PLATFORM := ansi
DELETE := $(RM) DELETE := $(RM)
COPY := cp COPY := cp
SEP := / SEP := /
BUILD_CONFIG_ = $(TOP_DIR)$(SEP)builds$(SEP) BUILD_CONFIG := $(TOP_DIR)/builds
BUILD = $(BUILD_CONFIG_)$(PLATFORM)
CONFIG_RULES = $(BUILD)$(SEP)$(CONFIG_FILE) # These two assignments must be delayed.
BUILD_DIR = $(BUILD_CONFIG)/$(PLATFORM)
CONFIG_RULES = $(BUILD_DIR)/$(CONFIG_FILE)
# We define the BACKSLASH variable to hold a single back-slash character. # We define the BACKSLASH variable to hold a single back-slash character.
# This is needed because a line like # This is needed because a line like
@ -72,12 +73,12 @@ BACKSLASH := $(strip \ )
# Find all auto-detectable platforms. # Find all auto-detectable platforms.
# #
PLATFORMS_ := $(notdir $(subst /detect.mk,,$(wildcard $(BUILD_CONFIG_)*/detect.mk))) PLATFORMS := $(notdir $(subst /detect.mk,,$(wildcard $(BUILD_CONFIG)/*/detect.mk)))
.PHONY: $(PLATFORMS_) ansi .PHONY: $(PLATFORMS) ansi
# Filter out platform specified as setup target. # Filter out platform specified as setup target.
# #
PLATFORM := $(firstword $(filter $(MAKECMDGOALS),$(PLATFORMS_))) PLATFORM := $(firstword $(filter $(MAKECMDGOALS),$(PLATFORMS)))
# If no setup target platform was specified, enable auto-detection/ # If no setup target platform was specified, enable auto-detection/
# default platform. # default platform.
@ -94,7 +95,7 @@ ifeq ($(findstring ansi,$(MAKECMDGOALS)),)
# directories. Note that the calling order of the various `detect.mk' # directories. Note that the calling order of the various `detect.mk'
# files isn't predictable. # files isn't predictable.
# #
include $(wildcard $(BUILD_CONFIG_)*/detect.mk) include $(wildcard $(BUILD_CONFIG)/*/detect.mk)
endif endif
# In case no detection rule file was successful, use the default. # In case no detection rule file was successful, use the default.
@ -121,13 +122,14 @@ std_setup:
@echo "" @echo ""
@echo " platform $(PLATFORM)" @echo " platform $(PLATFORM)"
@echo " compiler $(CC)" @echo " compiler $(CC)"
@echo " configuration directory $(BUILD)" @echo " configuration directory $(BUILD_DIR)"
@echo " configuration rules $(CONFIG_RULES)" @echo " configuration rules $(CONFIG_RULES)"
@echo "" @echo ""
@echo "If this does not correspond to your system or settings please remove the file" @echo "If this does not correspond to your system or settings please remove the file"
@echo "\`$(CONFIG_MK)' from this directory then read the INSTALL file for help." @echo "\`$(CONFIG_MK)' from this directory then read the INSTALL file for help."
@echo "" @echo ""
@echo "Otherwise, simply type \`$(MAKE)' again to build the library." @echo "Otherwise, simply type \`$(MAKE)' again to build the library,"
@echo "or \`$(MAKE) refdoc' to build the API reference (the latter needs python)."
@echo "" @echo ""
@$(COPY) $(CONFIG_RULES) $(CONFIG_MK) @$(COPY) $(CONFIG_RULES) $(CONFIG_MK)
@ -140,4 +142,18 @@ dos_setup:
@type builds\newline @type builds\newline
@echo The following settings are used: @echo The following settings are used:
@type builds\newline @type builds\newline
@echo platform @echo platformÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$(PLATFORM)
@echo compilerÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$(CC)
@echo configuration directoryÿÿÿÿÿÿ$(subst /,\,$(BUILD_DIR))
@echo configuration rulesÿÿÿÿÿÿÿÿÿÿ$(subst /,\,$(CONFIG_RULES))
@type builds\newline
@echo If this does not correspond to your system or settings please remove the file
@echo '$(CONFIG_MK)' from this directory then read the INSTALL file for help.
@type builds\newline
@echo Otherwise, simply type 'make' again to build the library.
@echo or 'make refdoc' to build the API reference (the latter needs python).
@type builds\newline
@$(COPY) $(subst /,\,$(CONFIG_RULES) $(CONFIG_MK)) > nul
# EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -23,7 +23,8 @@ ifeq ($(PLATFORM),ansi)
# `make' utility is run). # `make' utility is run).
# #
# We test for the COMSPEC environment variable, then run the `ver' # We test for the COMSPEC environment variable, then run the `ver'
# command-line program to see if its output contains the word `Dos'. # command-line program to see if its output contains the word `Dos' or
# `DOS'.
# #
# If this is true, we are running a Dos-ish platform (or an emulation). # If this is true, we are running a Dos-ish platform (or an emulation).
# #
@ -31,7 +32,7 @@ ifeq ($(PLATFORM),ansi)
PLATFORM := dos PLATFORM := dos
else else
ifdef COMSPEC ifdef COMSPEC
is_dos := $(findstring Dos,$(shell ver)) is_dos := $(findstring DOS,$(subst Dos,DOS,$(shell ver)))
# We try to recognize a Dos session under OS/2. The `ver' command # We try to recognize a Dos session under OS/2. The `ver' command
# returns `Operating System/2 ...' there, so `is_dos' should be empty. # returns `Operating System/2 ...' there, so `is_dos' should be empty.
@ -57,16 +58,21 @@ ifeq ($(PLATFORM),dos)
# Use DJGPP (i.e. gcc) by default. # Use DJGPP (i.e. gcc) by default.
# #
CONFIG_FILE := dos-gcc.mk CONFIG_FILE := dos-gcc.mk
SEP := /
ifndef CC ifndef CC
CC := gcc CC := gcc
endif endif
# additionally, we provide hooks for various other compilers # additionally, we provide hooks for various other compilers
# #
ifneq ($(findstring emx,$(MAKECMDGOALS)),) # EMX gcc
CONFIG_FILE := dos-emx.mk
CC := gcc
emx: setup
.PHONY: emx
endif
ifneq ($(findstring turboc,$(MAKECMDGOALS)),) # Turbo C ifneq ($(findstring turboc,$(MAKECMDGOALS)),) # Turbo C
CONFIG_FILE := dos-tcc.mk CONFIG_FILE := dos-tcc.mk
SEP := $(BACKSLASH)
CC := tcc CC := tcc
turboc: setup turboc: setup
.PHONY: turboc .PHONY: turboc
@ -74,7 +80,6 @@ ifeq ($(PLATFORM),dos)
ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++ ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
CONFIG_FILE := dos-wat.mk CONFIG_FILE := dos-wat.mk
SEP := $(BACKSLASH)
CC := wcc386 CC := wcc386
watcom: setup watcom: setup
.PHONY: watcom .PHONY: watcom
@ -82,7 +87,6 @@ ifeq ($(PLATFORM),dos)
ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C/C++ 32-bit ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C/C++ 32-bit
CONFIG_FILE := dos-bcc.mk CONFIG_FILE := dos-bcc.mk
SEP := $(BACKSLASH)
CC := bcc32 CC := bcc32
borlandc: setup borlandc: setup
.PHONY: borlandc .PHONY: borlandc
@ -90,17 +94,18 @@ ifeq ($(PLATFORM),dos)
ifneq ($(findstring borlandc16,$(MAKECMDGOALS)),) # Borland C/C++ 16-bit ifneq ($(findstring borlandc16,$(MAKECMDGOALS)),) # Borland C/C++ 16-bit
CONFIG_FILE := dos-bcc.mk CONFIG_FILE := dos-bcc.mk
SEP := $(BACKSLASH)
CC := bcc CC := bcc
borlandc16: setup borlandc16: setup
.PHONY: borlandc16 .PHONY: borlandc16
endif endif
ifneq ($(findstring bash,$(SHELL)),) # check for bash ifneq ($(findstring bash,$(SHELL)),) # check for bash
SEP := /
DELETE := rm DELETE := rm
COPY := cp COPY := cp
setup: std_setup setup: std_setup
else else
SEP := $(BACKSLASH)
DELETE := del DELETE := del
COPY := copy COPY := copy
setup: dos_setup setup: dos_setup
@ -108,4 +113,5 @@ ifeq ($(PLATFORM),dos)
endif # test PLATFORM dos endif # test PLATFORM dos
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,15 +13,10 @@
# fully. # fully.
DELETE := del DELETE := del
HOSTSEP := $(strip \ ) SEP := $(strip \ )
BUILD := $(TOP_DIR)$(SEP)builds$(SEP)dos BUILD_DIR := $(TOP_DIR)/builds/dos
PLATFORM := dos PLATFORM := dos
# except for DJGPP/GCC on Dos
ifndef SEP
SEP := $(HOSTSEP)
endif
# The directory where all object files are placed. # The directory where all object files are placed.
@ -34,7 +29,7 @@ endif
# make -f %TOP_DIR%/Makefile # make -f %TOP_DIR%/Makefile
# #
ifndef OBJ_DIR ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)$(SEP)objs OBJ_DIR := $(TOP_DIR)/objs
endif endif

View file

@ -1,9 +1,9 @@
# #
# FreeType 2 Type1 driver compilation rules for VMS # FreeType 2 configuration rules for the EMX gcc compiler
# #
# Copyright 1996-2000, 2002 by # Copyright 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,11 +13,9 @@
# fully. # fully.
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type1]) include $(TOP_DIR)/builds/dos/dos-def.mk
include $(TOP_DIR)/builds/compiler/emx.mk
include $(TOP_DIR)/builds/link_dos.mk
OBJS=type1.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,10 +13,9 @@
# fully. # fully.
SEP := /
include $(TOP_DIR)/builds/dos/dos-def.mk include $(TOP_DIR)/builds/dos/dos-def.mk
include $(TOP_DIR)/builds/compiler/gcc.mk include $(TOP_DIR)/builds/compiler/gcc.mk
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -1,25 +1,17 @@
# #
# FreeType 2 system rules for VMS # FreeType 2 configuration rules for the Watcom C/C++ compiler
# #
# Copyright 2001 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license, # and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you # LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it # indicate that you have read the license and understand and accept it
# fully. # fully.
include $(TOP_DIR)/builds/dos/dos-def.mk
include $(TOP_DIR)/builds/compiler/watcom.mk
include $(TOP_DIR)/builds/link_dos.mk
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([],[--.include],[--.src.base])
OBJS=ftsystem.obj
all : $(OBJS)
library/create [--.lib]freetype.olb $(OBJS)
ftsystem.obj : ftsystem.c ftconfig.h
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002 by # Copyright 1996-2000, 2001, 2002, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -20,13 +20,15 @@
# The following variables (set by other Makefile components, in the # The following variables (set by other Makefile components, in the
# environment, or on the command line) are used: # environment, or on the command line) are used:
# #
# BUILD The architecture dependent directory, # BUILD_DIR The architecture dependent directory,
# e.g. `$(TOP_DIR)/builds/unix'. # e.g. `$(TOP_DIR)/builds/unix'.
# #
# OBJ_DIR The directory in which object files are created. # OBJ_DIR The directory in which object files are created.
# #
# LIB_DIR The directory in which the library is created. # LIB_DIR The directory in which the library is created.
# #
# DOC_DIR The directory in which the API reference is created.
#
# INCLUDES A list of directories to be included additionally. # INCLUDES A list of directories to be included additionally.
# Usually empty. # Usually empty.
# #
@ -63,6 +65,7 @@
# `distclean' target. # `distclean' target.
# #
# TOP_DIR, SEP, # TOP_DIR, SEP,
# COMPILER_SEP,
# LIBRARY, CC, # LIBRARY, CC,
# A, I, O, T Check `config.mk' for details. # A, I, O, T Check `config.mk' for details.
@ -70,7 +73,7 @@
# The targets `objects' and `library' are defined at the end of this # The targets `objects' and `library' are defined at the end of this
# Makefile after all other rules have been included. # Makefile after all other rules have been included.
# #
.PHONY: single multi objects library .PHONY: single multi objects library refdoc
# default target -- build single objects and library # default target -- build single objects and library
# #
@ -83,43 +86,29 @@ multi: objects library
# The FreeType source directory, usually `./src'. # The FreeType source directory, usually `./src'.
# #
SRC := $(TOP_DIR)$(SEP)src SRC_DIR := $(TOP_DIR)/src
# The directory where the base layer components are placed, usually # The directory where the base layer components are placed, usually
# `./src/base'. # `./src/base'.
# #
BASE_DIR := $(SRC)$(SEP)base BASE_DIR := $(SRC_DIR)/base
# The build header file used to define all public header file names # Other derived directories.
# as macro.
# #
ifndef FT_BUILD_H PUBLIC_DIR := $(TOP_DIR)/include/freetype
FT_BUILD_H := $(TOP_DIR)$(SEP)include$(SEP)ft2build.h INTERNAL_DIR := $(PUBLIC_DIR)/internal
FTBUILD_CMD := CONFIG_DIR := $(PUBLIC_DIR)/config
else CACHE_DIR := $(PUBLIC_DIR)/cache
FTBUILD_CMD = $(D)FT_BUILD_H=$(FT_BUILD_H)
# The documentation directory.
#
ifndef DOC_DIR
DOC_DIR := $(TOP_DIR)/docs/reference
endif endif
# A few short-cuts in order to avoid typing $(SEP) all the time for the
# directory separator.
#
# For example: $(SRC_) equals to `./src/' where `.' is $(TOP_DIR).
#
#
SRC_ := $(SRC)$(SEP)
BASE_ := $(BASE_DIR)$(SEP)
OBJ_ := $(OBJ_DIR)$(SEP)
LIB_ := $(LIB_DIR)$(SEP)
PUBLIC_ := $(TOP_DIR)$(SEP)include$(SEP)freetype$(SEP)
INTERNAL_ := $(PUBLIC_)internal$(SEP)
CONFIG_ := $(PUBLIC_)config$(SEP)
CACHE_ := $(PUBLIC_)cache$(SEP)
# The final name of the library file. # The final name of the library file.
# #
PROJECT_LIBRARY := $(LIB_)$(LIBRARY).$A PROJECT_LIBRARY := $(LIB_DIR)/$(LIBRARY).$A
# include paths # include paths
@ -130,7 +119,8 @@ PROJECT_LIBRARY := $(LIB_)$(LIBRARY).$A
# in the `freetype/builds/<system>' directory, as these # in the `freetype/builds/<system>' directory, as these
# files will override the default sources. # files will override the default sources.
# #
INCLUDES := $(OBJ_DIR) $(BUILD) $(TOP_DIR)$(SEP)include INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) $(BUILD_DIR) \
$(TOP_DIR)/include)
INCLUDE_FLAGS = $(INCLUDES:%=$I%) INCLUDE_FLAGS = $(INCLUDES:%=$I%)
@ -164,46 +154,47 @@ OBJECTS_LIST :=
# This is used to simplify the dependency rules -- if one of these files # This is used to simplify the dependency rules -- if one of these files
# changes, the whole library is recompiled. # changes, the whole library is recompiled.
# #
PUBLIC_H := $(wildcard $(PUBLIC_)*.h) PUBLIC_H := $(wildcard $(PUBLIC_DIR)/*.h)
BASE_H := $(wildcard $(INTERNAL_)*.h) BASE_H := $(wildcard $(INTERNAL_DIR)/*.h)
CONFIG_H := $(wildcard $(CONFIG_)*.h) \ CONFIG_H := $(wildcard $(CONFIG_DIR)/*.h) \
$(wildcard $(BUILD)$(SEP)freetype$(SEP)config$(SEP)*.h) $(wildcard $(BUILD_DIR)/freetype/config/*.h)
CACHE_H := $(wildcard $(CACHE_)*.h) CACHE_H := $(wildcard $(CACHE_DIR)/*.h)
DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h)
FREETYPE_H := $(PUBLIC_H) $(BASE_H) $(CONFIG_H) $(CACHE_H) FREETYPE_H := $(PUBLIC_H) $(BASE_H) $(CONFIG_H) $(CACHE_H) $(DEVEL_H)
# ftsystem component # ftsystem component
# #
ifndef FTSYS_SRC ifndef FTSYS_SRC
FTSYS_SRC = $(BASE_)ftsystem.c FTSYS_SRC = $(BASE_DIR)/ftsystem.c
endif endif
FTSYS_OBJ = $(OBJ_)ftsystem.$O FTSYS_OBJ = $(OBJ_DIR)/ftsystem.$O
OBJECTS_LIST += $(FTSYS_OBJ) OBJECTS_LIST += $(FTSYS_OBJ)
$(FTSYS_OBJ): $(FTSYS_SRC) $(FREETYPE_H) $(FTSYS_OBJ): $(FTSYS_SRC) $(FREETYPE_H)
$(FT_COMPILE) $T$@ $< $(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# ftdebug component # ftdebug component
# #
ifndef FTDEBUG_SRC ifndef FTDEBUG_SRC
FTDEBUG_SRC = $(BASE_)ftdebug.c FTDEBUG_SRC = $(BASE_DIR)/ftdebug.c
endif endif
FTDEBUG_OBJ = $(OBJ_)ftdebug.$O FTDEBUG_OBJ = $(OBJ_DIR)/ftdebug.$O
OBJECTS_LIST += $(FTDEBUG_OBJ) OBJECTS_LIST += $(FTDEBUG_OBJ)
$(FTDEBUG_OBJ): $(FTDEBUG_SRC) $(FREETYPE_H) $(FTDEBUG_OBJ): $(FTDEBUG_SRC) $(FREETYPE_H)
$(FT_COMPILE) $T$@ $< $(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# Include all rule files from FreeType components. # Include all rule files from FreeType components.
# #
include $(wildcard $(SRC)/*/rules.mk) include $(wildcard $(SRC_DIR)/*/rules.mk)
# ftinit component # ftinit component
@ -217,13 +208,13 @@ include $(wildcard $(SRC)/*/rules.mk)
# which contain additional include paths and macros used to compile the # which contain additional include paths and macros used to compile the
# single `ftinit.c' source. # single `ftinit.c' source.
# #
FTINIT_SRC := $(BASE_)ftinit.c FTINIT_SRC := $(BASE_DIR)/ftinit.c
FTINIT_OBJ := $(OBJ_)ftinit.$O FTINIT_OBJ := $(OBJ_DIR)/ftinit.$O
OBJECTS_LIST += $(FTINIT_OBJ) OBJECTS_LIST += $(FTINIT_OBJ)
$(FTINIT_OBJ): $(FTINIT_SRC) $(FREETYPE_H) $(FT_MODULE_LIST) $(FTINIT_OBJ): $(FTINIT_SRC) $(FREETYPE_H) $(FT_MODULE_LIST)
$(FT_COMPILE) $T$@ $< $(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# All FreeType library objects # All FreeType library objects
@ -255,7 +246,17 @@ objects: $(OBJECTS_LIST)
library: $(PROJECT_LIBRARY) library: $(PROJECT_LIBRARY)
.c.$O: .c.$O:
$(FT_COMPILE) $T$@ $< $(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
refdoc:
python $(SRC_DIR)/tools/docmaker/docmaker.py \
--prefix=ft2 \
--title=FreeType-2.1.5 \
--output=$(DOC_DIR) \
$(PUBLIC_DIR)/*.h \
$(PUBLIC_DIR)/config/*.h \
$(PUBLIC_DIR)/cache/*.h
.PHONY: clean_project_std distclean_project_std .PHONY: clean_project_std distclean_project_std
@ -280,10 +281,10 @@ distclean_project_std: clean_project_std
# working correctly on Win9x. # working correctly on Win9x.
# #
clean_project_dos: clean_project_dos:
-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(OBJ_))*.$O $(CLEAN) $(NO_OUTPUT) -$(DELETE) $(subst /,\,$(OBJ)/*.$O $(CLEAN) $(NO_OUTPUT))
distclean_project_dos: clean_project_dos distclean_project_dos: clean_project_dos
-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) $(DISTCLEAN) $(NO_OUTPUT) -$(DELETE) $(subst /,\,$(PROJECT_LIBRARY) $(DISTCLEAN) $(NO_OUTPUT))
.PHONY: remove_config_mk .PHONY: remove_config_mk
@ -291,7 +292,7 @@ distclean_project_dos: clean_project_dos
# Remove configuration file (used for distclean). # Remove configuration file (used for distclean).
# #
remove_config_mk: remove_config_mk:
-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(CONFIG_MK)) $(NO_OUTPUT) -$(DELETE) $(subst /,$(SEP),$(CONFIG_MK) $(NO_OUTPUT))
.PHONY: clean distclean .PHONY: clean distclean
@ -303,5 +304,7 @@ remove_config_mk:
# #
clean: clean_project clean: clean_project
distclean: distclean_project remove_config_mk distclean: distclean_project remove_config_mk
-$(DELETE) $(subst /,$(SEP),$(DOC_DIR)/*.html $(NO_OUTPUT))
# EOF # EOF

View file

@ -38,4 +38,5 @@ ifdef BUILD_PROJECT
endif endif
# EOF # EOF

View file

@ -38,4 +38,5 @@ ifdef BUILD_PROJECT
endif endif
# EOF # EOF

View file

@ -1,3 +1,109 @@
# Makefile for Apple MPW build environment (currently PPC only) # Makefile for Apple MPW build environment (currently PPC only)
MAKEFILE = Makefile MAKEFILE = Makefile
ÿMondoBuildÿ = #{MAKEFILE} # Make blank to avoid rebuilds when makefile is modified
SymÿPPC = #-sym on
ObjDirÿPPC = :obj:
CFLAGS = -i :include -i :src -includes unix {SymÿPPC}
OBJS = ÿ
"{ObjDirÿPPC}ftsystem.c.x" ÿ
"{ObjDirÿPPC}ftdebug.c.x" ÿ
"{ObjDirÿPPC}ftinit.c.x" ÿ
"{ObjDirÿPPC}ftbase.c.x" ÿ
"{ObjDirÿPPC}ftglyph.c.x" ÿ
"{ObjDirÿPPC}ftmm.c.x" ÿ
"{ObjDirÿPPC}ftbbox.c.x" ÿ
"{ObjDirÿPPC}autohint.c.x" ÿ
"{ObjDirÿPPC}ftcache.c.x" ÿ
"{ObjDirÿPPC}cff.c.x" ÿ
"{ObjDirÿPPC}type1cid.c.x" ÿ
"{ObjDirÿPPC}pcf.c.x" ÿ
"{ObjDirÿPPC}psaux.c.x" ÿ
"{ObjDirÿPPC}psmodule.c.x" ÿ
"{ObjDirÿPPC}raster.c.x" ÿ
"{ObjDirÿPPC}sfnt.c.x" ÿ
"{ObjDirÿPPC}smooth.c.x" ÿ
"{ObjDirÿPPC}truetype.c.x" ÿ
"{ObjDirÿPPC}type1.c.x" ÿ
"{ObjDirÿPPC}winfnt.c.x" ÿ
"{ObjDirÿPPC}ftmac.c.x" ÿ
# Main target - build a library
freetype ÿÿ {ÿMondoBuildÿ} directories freetype.o
# This is used to build the library
freetype.o ÿÿ {ÿMondoBuildÿ} {OBJS}
PPCLink ÿ
-o :lib:{Targ} {SymÿPPC} ÿ
{OBJS} -c '????' -xm l
# This is used to create the directories needed for build
directories ÿ
if !`Exists obj` ; NewFolder obj ; end
if !`Exists lib` ; NewFolder lib ; end
"{ObjDirÿPPC}ftsystem.c.x" ÿ {ÿMondoBuildÿ} ":src:base:ftsystem.c"
{PPCC} ":src:base:ftsystem.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}ftdebug.c.x" ÿ {ÿMondoBuildÿ} ":src:base:ftdebug.c"
{PPCC} ":src:base:ftdebug.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}ftinit.c.x" ÿ {ÿMondoBuildÿ} ":src:base:ftinit.c"
{PPCC} ":src:base:ftinit.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}ftbase.c.x" ÿ {ÿMondoBuildÿ} ":src:base:ftbase.c"
{PPCC} ":src:base:ftbase.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}ftglyph.c.x" ÿ {ÿMondoBuildÿ} ":src:base:ftglyph.c"
{PPCC} ":src:base:ftglyph.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}ftmm.c.x" ÿ {ÿMondoBuildÿ} ":src:base:ftmm.c"
{PPCC} ":src:base:ftmm.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}ftbbox.c.x" ÿ {ÿMondoBuildÿ} ":src:base:ftbbox.c"
{PPCC} ":src:base:ftbbox.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}autohint.c.x" ÿ {ÿMondoBuildÿ} ":src:autohint:autohint.c"
{PPCC} ":src:autohint:autohint.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}ftcache.c.x" ÿ {ÿMondoBuildÿ} ":src:cache:ftcache.c"
{PPCC} ":src:cache:ftcache.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}cff.c.x" ÿ {ÿMondoBuildÿ} ":src:cff:cff.c"
{PPCC} ":src:cff:cff.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}type1cid.c.x" ÿ {ÿMondoBuildÿ} ":src:cid:type1cid.c"
{PPCC} ":src:cid:type1cid.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}pcf.c.x" ÿ {ÿMondoBuildÿ} ":src:pcf:pcf.c"
{PPCC} ":src:pcf:pcf.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}psaux.c.x" ÿ {ÿMondoBuildÿ} ":src:psaux:psaux.c"
{PPCC} ":src:psaux:psaux.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}psmodule.c.x" ÿ {ÿMondoBuildÿ} ":src:psnames:psmodule.c"
{PPCC} ":src:psnames:psmodule.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}raster.c.x" ÿ {ÿMondoBuildÿ} ":src:raster:raster.c"
{PPCC} ":src:raster:raster.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}sfnt.c.x" ÿ {ÿMondoBuildÿ} ":src:sfnt:sfnt.c"
{PPCC} ":src:sfnt:sfnt.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}smooth.c.x" ÿ {ÿMondoBuildÿ} ":src:smooth:smooth.c"
{PPCC} ":src:smooth:smooth.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}truetype.c.x" ÿ {ÿMondoBuildÿ} ":src:truetype:truetype.c"
{PPCC} ":src:truetype:truetype.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}type1.c.x" ÿ {ÿMondoBuildÿ} ":src:type1:type1.c"
{PPCC} ":src:type1:type1.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}winfnt.c.x" ÿ {ÿMondoBuildÿ} ":src:winfonts:winfnt.c"
{PPCC} ":src:winfonts:winfnt.c" -o {Targ} {CFLAGS}
"{ObjDirÿPPC}ftmac.c.x" ÿ {ÿMondoBuildÿ} ":src:base:ftmac.c"
{PPCC} ":src:base:ftmac.c" -o {Targ} {CFLAGS}

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -26,7 +26,7 @@
# resides. For now, it is in `include/freetype/config/ftmodule.h'. # resides. For now, it is in `include/freetype/config/ftmodule.h'.
# #
ifndef MODULE_LIST ifndef MODULE_LIST
MODULE_LIST := $(TOP_DIR)$(SEP)include$(SEP)$(PROJECT)$(SEP)config$(SEP)ftmodule.h MODULE_LIST := $(TOP_DIR)/include/$(PROJECT)/config/ftmodule.h
endif endif
# To build the modules list, we invoke the `make_module_list' target. # To build the modules list, we invoke the `make_module_list' target.
@ -39,8 +39,8 @@ endif
ifneq ($(findstring $(PLATFORM),dos win32 win16 os2),) ifneq ($(findstring $(PLATFORM),dos win32 win16 os2),)
OPEN_MODULE := @echo$(space) OPEN_MODULE := @echo$(space)
CLOSE_MODULE := >> $(subst $(SEP),$(HOSTSEP),$(MODULE_LIST)) CLOSE_MODULE := >> $(subst /,\,$(MODULE_LIST))
REMOVE_MODULE := @-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(MODULE_LIST)) REMOVE_MODULE := @-$(DELETE) $(subst /,\,$(MODULE_LIST))
else else
OPEN_MODULE := @echo " OPEN_MODULE := @echo "
CLOSE_MODULE := " >> $(MODULE_LIST) CLOSE_MODULE := " >> $(MODULE_LIST)
@ -53,7 +53,7 @@ endif
# #
clean_module_list: clean_module_list:
$(REMOVE_MODULE) $(REMOVE_MODULE)
@-echo Regenerating the modules list in $(MODULE_LIST)... @-echo Regenerating modules list in $(MODULE_LIST)...
make_module_list: clean_module_list make_module_list: clean_module_list
@echo done. @echo done.
@ -73,4 +73,5 @@ ECHO_DRIVER_DONE := )"
# #
include $(wildcard $(TOP_DIR)/src/*/module.mk) include $(wildcard $(TOP_DIR)/src/*/module.mk)
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -27,18 +27,17 @@ endif
ifeq ($(PLATFORM),os2) ifeq ($(PLATFORM),os2)
COPY := copy COPY := copy
DELETE := del DELETE := del
SEP := $(BACKSLASH)
# gcc-emx by default # gcc-emx by default
CONFIG_FILE := os2-gcc.mk CONFIG_FILE := os2-gcc.mk
SEP := /
# additionally, we provide hooks for various other compilers # additionally, we provide hooks for various other compilers
# #
ifneq ($(findstring visualage,$(MAKECMDGOALS)),) # Visual Age C++ ifneq ($(findstring visualage,$(MAKECMDGOALS)),) # Visual Age C++
CONFIG_FILE := os2-icc.mk CONFIG_FILE := os2-icc.mk
SEP := $(BACKSLASH)
CC := icc CC := icc
visualage: setup visualage: setup
.PHONY: visualage .PHONY: visualage
@ -46,7 +45,6 @@ ifeq ($(PLATFORM),os2)
ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++ ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
CONFIG_FILE := os2-wat.mk CONFIG_FILE := os2-wat.mk
SEP := $(BACKSLASH)
CC := wcc386 CC := wcc386
watcom: setup watcom: setup
.PHONY: watcom .PHONY: watcom
@ -54,7 +52,6 @@ ifeq ($(PLATFORM),os2)
ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C++ 32-bit ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C++ 32-bit
CONFIG_FILE := os2-bcc.mk CONFIG_FILE := os2-bcc.mk
SEP := $(BACKSLASH)
CC := bcc32 CC := bcc32
borlandc: setup borlandc: setup
.PHONY: borlandc .PHONY: borlandc
@ -63,7 +60,6 @@ ifeq ($(PLATFORM),os2)
ifneq ($(findstring devel,$(MAKECMDGOALS)),) # development target ifneq ($(findstring devel,$(MAKECMDGOALS)),) # development target
CONFIG_FILE := os2-dev.mk CONFIG_FILE := os2-dev.mk
CC := gcc CC := gcc
SEP := /
devel: setup devel: setup
.PHONY: devel .PHONY: devel
endif endif
@ -72,4 +68,5 @@ ifeq ($(PLATFORM),os2)
endif # test PLATFORM os2 endif # test PLATFORM os2
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,15 +13,10 @@
# fully. # fully.
DELETE := del DELETE := del
HOSTSEP := $(strip \ ) SEP := $(strip \ )
BUILD := $(TOP_DIR)$(SEP)builds$(SEP)os2 BUILD_DIR := $(TOP_DIR)/builds/os2
PLATFORM := os2 PLATFORM := os2
# except for GCC+emx on OS/2
ifndef SEP
SEP := $(HOSTSEP)
endif
# The directory where all object files are placed. # The directory where all object files are placed.
@ -34,7 +29,7 @@ endif
# make -f %TOP_DIR%/Makefile # make -f %TOP_DIR%/Makefile
# #
ifndef OBJ_DIR ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)$(SEP)objs OBJ_DIR := $(TOP_DIR)/objs
endif endif
@ -55,4 +50,5 @@ LIBRARY := $(PROJECT)
# #
NO_OUTPUT = 2> nul NO_OUTPUT = 2> nul
# EOF # EOF

View file

@ -5,7 +5,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -19,10 +19,8 @@ ifndef TOP_DIR
TOP_DIR := . TOP_DIR := .
endif endif
SEP := /
include $(TOP_DIR)/builds/os2/os2-def.mk include $(TOP_DIR)/builds/os2/os2-def.mk
BUILD := $(TOP_DIR)/builds/devel BUILD_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/compiler/gcc-dev.mk include $(TOP_DIR)/builds/compiler/gcc-dev.mk

View file

@ -13,8 +13,6 @@
# fully. # fully.
SEP := /
# include OS/2-specific definitions # include OS/2-specific definitions
include $(TOP_DIR)/builds/os2/os2-def.mk include $(TOP_DIR)/builds/os2/os2-def.mk
@ -24,4 +22,5 @@ include $(TOP_DIR)/builds/compiler/gcc.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2001, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -99,7 +99,9 @@ ifdef check_platform
# #
# note: This test is duplicated in "builds/toplevel.mk". # note: This test is duplicated in "builds/toplevel.mk".
# #
is_unix := $(strip $(wildcard /sbin/init) $(wildcard /usr/sbin/init) $(wildcard /hurd/auth)) is_unix := $(strip $(wildcard /sbin/init) \
$(wildcard /usr/sbin/init) \
$(wildcard /hurd/auth))
ifneq ($(is_unix),) ifneq ($(is_unix),)
distclean: distclean:
@ -132,4 +134,5 @@ else
endif # test check_platform endif # test check_platform
# EOF # EOF

View file

@ -1574,7 +1574,7 @@ else
allow_undefined_flag='-undefined suppress' allow_undefined_flag='-undefined suppress'
;; ;;
*) # Darwin 1.3 on *) # Darwin 1.3 on
allow_undefined_flag='-flat_namespace -undefined suppress' # allow_undefined_flag='-undefined suppress'
;; ;;
esac esac
# FIXME: Relying on posixy $() will cause problems for # FIXME: Relying on posixy $() will cause problems for

View file

@ -1009,6 +1009,7 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--without-zlib use internal zlib instead of system-wide --without-zlib use internal zlib instead of system-wide
--with-old-mac-fonts allow Mac resource-based fonts to be used
--with-gnu-ld assume the C compiler uses GNU ld default=no --with-gnu-ld assume the C compiler uses GNU ld default=no
--with-pic try to use only PIC/non-PIC objects default=use both --with-pic try to use only PIC/non-PIC objects default=use both
@ -1402,7 +1403,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_config_headers="$ac_config_headers ftconfig.h:ftconfig.in" ac_config_headers="$ac_config_headers ftconfig.h:ftconfig.in"
version_info='9:3:3' version_info='9:4:3'
ft_version=`echo $version_info | tr : .` ft_version=`echo $version_info | tr : .`
@ -4125,9 +4126,9 @@ fi
rm -f conftest.mmap rm -f conftest.mmap
if test "$ac_cv_func_mmap_fixed_mapped" != yes; then if test "$ac_cv_func_mmap_fixed_mapped" != yes; then
FTSYS_SRC='$(BASE_)ftsystem.c' FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
else else
FTSYS_SRC='$(BUILD)/ftsystem.c' FTSYS_SRC='$(BUILD_DIR)/ftsystem.c'
echo "$as_me:$LINENO: checking whether munmap must be declared" >&5 echo "$as_me:$LINENO: checking whether munmap must be declared" >&5
echo $ECHO_N "checking whether munmap must be declared... $ECHO_C" >&6 echo $ECHO_N "checking whether munmap must be declared... $ECHO_C" >&6
@ -4299,7 +4300,6 @@ done
# Check whether --with-zlib or --without-zlib was given. # Check whether --with-zlib or --without-zlib was given.
if test "${with_zlib+set}" = set; then if test "${with_zlib+set}" = set; then
withval="$with_zlib" withval="$with_zlib"
@ -4472,6 +4472,19 @@ if test x$with_zlib != xno && test -n "$LIBZ"; then
fi fi
# Check whether --with-old-mac-fonts or --without-old-mac-fonts was given.
if test "${with_old_mac_fonts+set}" = set; then
withval="$with_old_mac_fonts"
fi;
if test x$with_old_mac_fonts = xyes; then
CFLAGS="$CFLAGS -DTARGET_API_MAC_CARBON"
LDFLAGS="$LDFLAGS -Xlinker -framework -Xlinker CoreServices \
-Xlinker -framework -Xlinker ApplicationServices"
else
CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"
fi
@ -5625,7 +5638,7 @@ test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
case $host in case $host in
*-*-irix6*) *-*-irix6*)
# Find out which ABI we are using. # Find out which ABI we are using.
echo '#line 5628 "configure"' > conftest.$ac_ext echo '#line 5641 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@ -6139,7 +6152,7 @@ chmod -w .
save_CFLAGS="$CFLAGS" save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
compiler_c_o=no compiler_c_o=no
if { (eval echo configure:6142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then if { (eval echo configure:6155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings # So say no if there are warnings
if test -s out/conftest.err; then if test -s out/conftest.err; then
@ -6701,7 +6714,7 @@ else
allow_undefined_flag='-undefined suppress' allow_undefined_flag='-undefined suppress'
;; ;;
*) # Darwin 1.3 on *) # Darwin 1.3 on
allow_undefined_flag='-flat_namespace -undefined suppress' # allow_undefined_flag='-undefined suppress'
;; ;;
esac esac
# FIXME: Relying on posixy $() will cause problems for # FIXME: Relying on posixy $() will cause problems for
@ -7913,7 +7926,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 7916 "configure" #line 7929 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -8011,7 +8024,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 8014 "configure" #line 8027 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -8739,7 +8752,7 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
ac_config_files="$ac_config_files unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in freetype-config" ac_config_files="$ac_config_files unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in freetype-config freetype2.pc:freetype2.in"
@ -9250,6 +9263,7 @@ do
"unix-cc.mk" ) CONFIG_FILES="$CONFIG_FILES unix-cc.mk:unix-cc.in" ;; "unix-cc.mk" ) CONFIG_FILES="$CONFIG_FILES unix-cc.mk:unix-cc.in" ;;
"unix-def.mk" ) CONFIG_FILES="$CONFIG_FILES unix-def.mk:unix-def.in" ;; "unix-def.mk" ) CONFIG_FILES="$CONFIG_FILES unix-def.mk:unix-def.in" ;;
"freetype-config" ) CONFIG_FILES="$CONFIG_FILES freetype-config" ;; "freetype-config" ) CONFIG_FILES="$CONFIG_FILES freetype-config" ;;
"freetype2.pc" ) CONFIG_FILES="$CONFIG_FILES freetype2.pc:freetype2.in" ;;
"ftconfig.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ftconfig.h:ftconfig.in" ;; "ftconfig.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ftconfig.h:ftconfig.in" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;} echo "$as_me: error: invalid argument: $ac_config_target" >&2;}

View file

@ -10,7 +10,7 @@ dnl configuration file -- stay in 8.3 limit
AC_CONFIG_HEADER(ftconfig.h:ftconfig.in) AC_CONFIG_HEADER(ftconfig.h:ftconfig.in)
dnl Don't forget to update VERSION.DLL! dnl Don't forget to update VERSION.DLL!
version_info='9:3:3' version_info='9:4:3'
AC_SUBST(version_info) AC_SUBST(version_info)
ft_version=`echo $version_info | tr : .` ft_version=`echo $version_info | tr : .`
AC_SUBST(ft_version) AC_SUBST(ft_version)
@ -70,9 +70,9 @@ dnl checks for library functions
dnl Here we check whether we can use our mmap file component. dnl Here we check whether we can use our mmap file component.
AC_FUNC_MMAP AC_FUNC_MMAP
if test "$ac_cv_func_mmap_fixed_mapped" != yes; then if test "$ac_cv_func_mmap_fixed_mapped" != yes; then
FTSYS_SRC='$(BASE_)ftsystem.c' FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
else else
FTSYS_SRC='$(BUILD)/ftsystem.c' FTSYS_SRC='$(BUILD_DIR)/ftsystem.c'
FT_MUNMAP_DECL FT_MUNMAP_DECL
FT_MUNMAP_PARAM FT_MUNMAP_PARAM
@ -81,7 +81,6 @@ AC_SUBST(FTSYS_SRC)
AC_CHECK_FUNCS(memcpy memmove) AC_CHECK_FUNCS(memcpy memmove)
dnl Check for system zlib dnl Check for system zlib
AC_ARG_WITH(zlib, AC_ARG_WITH(zlib,
[ --without-zlib use internal zlib instead of system-wide]) [ --without-zlib use internal zlib instead of system-wide])
@ -93,19 +92,32 @@ if test x$with_zlib != xno && test -n "$LIBZ"; then
LDFLAGS="$LDFLAGS $LIBZ" LDFLAGS="$LDFLAGS $LIBZ"
SYSTEM_ZLIB=yes SYSTEM_ZLIB=yes
fi fi
dnl Whether to use Mac OS resource-based fonts or not
AC_ARG_WITH(old-mac-fonts,
[ --with-old-mac-fonts allow Mac resource-based fonts to be used])
if test x$with_old_mac_fonts = xyes; then
CFLAGS="$CFLAGS -DTARGET_API_MAC_CARBON"
LDFLAGS="$LDFLAGS -Xlinker -framework -Xlinker CoreServices \
-Xlinker -framework -Xlinker ApplicationServices"
else
CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"
fi
AC_SUBST(LIBZ) AC_SUBST(LIBZ)
AC_SUBST(CFLAGS) AC_SUBST(CFLAGS)
AC_SUBST(LDFLAGS) AC_SUBST(LDFLAGS)
AC_SUBST(SYSTEM_ZLIB) AC_SUBST(SYSTEM_ZLIB)
AC_PROG_LIBTOOL AC_PROG_LIBTOOL
dnl create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk' dnl create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
dnl and 'builds/unix/unix-cc.mk' that will be used by the build system dnl and 'builds/unix/unix-cc.mk' that will be used by the build system
dnl dnl
AC_CONFIG_FILES([unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in freetype-config]) AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
unix-def.mk:unix-def.in
freetype-config
freetype2.pc:freetype2.in])
dnl re-generate the Jamfile to use libtool now dnl re-generate the Jamfile to use libtool now
dnl dnl

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002 by # Copyright 1996-2000, 2002, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -18,7 +18,9 @@ ifeq ($(PLATFORM),ansi)
# Note: this test is duplicated in "builds/toplevel.mk". # Note: this test is duplicated in "builds/toplevel.mk".
# #
is_unix := $(strip $(wildcard /sbin/init) $(wildcard /usr/sbin/init) $(wildcard /hurd/auth)) is_unix := $(strip $(wildcard /sbin/init) \
$(wildcard /usr/sbin/init) \
$(wildcard /hurd/auth))
ifneq ($(is_unix),) ifneq ($(is_unix),)
PLATFORM := unix PLATFORM := unix
@ -27,8 +29,8 @@ ifeq ($(PLATFORM),ansi)
endif # test PLATFORM ansi endif # test PLATFORM ansi
ifeq ($(PLATFORM),unix) ifeq ($(PLATFORM),unix)
COPY := cp COPY := cp
DELETE := rm -f DELETE := rm -f
# If `devel' is the requested target, we use a special configuration # If `devel' is the requested target, we use a special configuration
# file named `unix-dev.mk'. It disables optimization and libtool. # file named `unix-dev.mk'. It disables optimization and libtool.
@ -84,4 +86,5 @@ ifeq ($(PLATFORM),unix)
endif # test PLATFORM unix endif # test PLATFORM unix
# EOF # EOF

View file

@ -81,7 +81,7 @@ fi
if test "$echo_cflags" = "yes" ; then if test "$echo_cflags" = "yes" ; then
cflags="-I@includedir@/freetype2" cflags="-I@includedir@/freetype2"
if test "@includedir@" != "/usr/include" ; then if test "@includedir@" != "/usr/include" ; then
echo -I@includedir@ $cflags echo $cflags -I@includedir@
else else
echo $cflags echo $cflags
fi fi

View file

@ -0,0 +1,11 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: FreeType 2
Description: A free, high-quality, and portable font engine.
Version: @ft_version@
Requires:
Libs: -L${libdir} -lfreetype @LIBZ@
Cflags: -I${includedir}/freetype2

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002 by # Copyright 1996-2000, 2002, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -25,6 +25,7 @@
# Unix installation and deinstallation targets. # Unix installation and deinstallation targets.
install: $(PROJECT_LIBRARY) install: $(PROJECT_LIBRARY)
$(MKINSTALLDIRS) $(DESTDIR)$(libdir) \ $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
$(DESTDIR)$(libdir)/pkgconfig \
$(DESTDIR)$(includedir)/freetype2/freetype/config \ $(DESTDIR)$(includedir)/freetype2/freetype/config \
$(DESTDIR)$(includedir)/freetype2/freetype/internal \ $(DESTDIR)$(includedir)/freetype2/freetype/internal \
$(DESTDIR)$(includedir)/freetype2/freetype/cache \ $(DESTDIR)$(includedir)/freetype2/freetype/cache \
@ -48,11 +49,14 @@ install: $(PROJECT_LIBRARY)
$(INSTALL_DATA) \ $(INSTALL_DATA) \
$$P $(DESTDIR)$(includedir)/freetype2/freetype/cache ; \ $$P $(DESTDIR)$(includedir)/freetype2/freetype/cache ; \
done done
$(INSTALL_DATA) $(BUILD)/ft2unix.h $(DESTDIR)$(includedir)/ft2build.h $(INSTALL_DATA) $(BUILD_DIR)/ft2unix.h \
$(DESTDIR)$(includedir)/ft2build.h
$(INSTALL_SCRIPT) -m 755 $(OBJ_BUILD)/freetype-config \ $(INSTALL_SCRIPT) -m 755 $(OBJ_BUILD)/freetype-config \
$(DESTDIR)$(bindir)/freetype-config $(DESTDIR)$(bindir)/freetype-config
$(INSTALL_SCRIPT) -m 644 $(BUILD)/freetype2.m4 \ $(INSTALL_SCRIPT) -m 644 $(BUILD_DIR)/freetype2.m4 \
$(DESTDIR)$(datadir)/aclocal/freetype2.m4 $(DESTDIR)$(datadir)/aclocal/freetype2.m4
$(INSTALL_SCRIPT) -m 644 $(OBJ_BUILD)/freetype2.pc \
$(DESTDIR)$(libdir)/pkgconfig/freetype2.pc
uninstall: uninstall:
@ -69,6 +73,7 @@ uninstall:
-$(DELETE) $(DESTDIR)$(includedir)/ft2build.h -$(DELETE) $(DESTDIR)$(includedir)/ft2build.h
-$(DELETE) $(DESTDIR)$(bindir)/freetype-config -$(DELETE) $(DESTDIR)$(bindir)/freetype-config
-$(DELETE) $(DESTDIR)$(datadir)/aclocal/freetype2.m4 -$(DELETE) $(DESTDIR)$(datadir)/aclocal/freetype2.m4
-$(DELETE) $(DESTDIR)$(libdir)/pkgconfig/freetype2.pc
check: check:

View file

@ -2275,15 +2275,28 @@ compiler."
case $version_type in case $version_type in
none) ;; none) ;;
darwin) darwin* | rhapsody*)
# Like Linux, but with the current version available in case "$host_os" in
# verstring for coding it into the library header darwin1.[012])
major=.`expr $current - $age` # Like Linux, but with the current version available in
versuffix="$major.$age.$revision" # verstring for coding it into the library header
# Darwin ld doesn't like 0 for these options... major=.`expr $current - $age`
minor_current=`expr $current + 1` versuffix="$major.$age.$revision"
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" # Darwin ld doesn't like 0 for these options...
;; minor_current=`expr $current + 1`
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
;;
*)
# Like Linux, but with the current version available in
# verstring for coding it into the library header
major=`expr $current - $age`
versuffix="$major.$age.$revision"
compatage=`expr $age - 1`
compatver="$major.$compatage.0"
verstring="-compatibility_version $compatver -current_version $versuffix"
;;
esac
;;
freebsd-aout) freebsd-aout)
major=".$current" major=".$current"

View file

@ -1,10 +1,22 @@
# template for Unix-specific compiler definitions #
# FreeType 2 template for Unix-specific compiler definitions
# #
CC := @CC@ # Copyright 1996-2000, 2002, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
CC := @CC@
COMPILER_SEP := $(SEP)
ifndef LIBTOOL ifndef LIBTOOL
LIBTOOL := $(BUILD)/libtool LIBTOOL := $(BUILD_DIR)/libtool
endif endif
@ -48,7 +60,7 @@ L := -l
# Target flag. # Target flag.
# #
T := -o # Don't remove this comment line! We need the space after `-o'. T := -o$(space)
# C flags # C flags
@ -58,7 +70,7 @@ T := -o # Don't remove this comment line! We need the space after `-o'.
# Use the ANSIFLAGS variable to define the compiler flags used to enfore # Use the ANSIFLAGS variable to define the compiler flags used to enfore
# ANSI compliance. # ANSI compliance.
# #
CFLAGS := -c @XX_CFLAGS@ @CFLAGS@ CFLAGS := -c @XX_CFLAGS@ @CPPFLAGS@ @CFLAGS@
# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant. # ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
# #
@ -81,4 +93,5 @@ LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
-rpath $(libdir) -version-info $(version_info) \ -rpath $(libdir) -version-info $(version_info) \
$(LDFLAGS) $(LDFLAGS)
# EOF # EOF

View file

@ -18,16 +18,15 @@ ifndef TOP_DIR
endif endif
TOP_DIR := $(shell cd $(TOP_DIR); pwd) TOP_DIR := $(shell cd $(TOP_DIR); pwd)
DELETE := @RMF@ DELETE := @RMF@
DELDIR := @RMDIR@ DELDIR := @RMDIR@
SEP := / SEP := /
HOSTSEP := $(SEP) BUILD_DIR := $(TOP_DIR)/builds/unix
BUILD := $(TOP_DIR)/builds/unix PLATFORM := unix
PLATFORM := unix
# this is used for `make distclean' and `make install' # this is used for `make distclean' and `make install'
ifndef OBJ_BUILD ifndef OBJ_BUILD
OBJ_BUILD := $(BUILD) OBJ_BUILD := $(BUILD_DIR)
endif endif
# don't use `:=' here since the path stuff will be included after this file # don't use `:=' here since the path stuff will be included after this file
@ -38,7 +37,7 @@ INSTALL := @INSTALL@
INSTALL_DATA := @INSTALL_DATA@ INSTALL_DATA := @INSTALL_DATA@
INSTALL_PROGRAM := @INSTALL_PROGRAM@ INSTALL_PROGRAM := @INSTALL_PROGRAM@
INSTALL_SCRIPT := @INSTALL_SCRIPT@ INSTALL_SCRIPT := @INSTALL_SCRIPT@
MKINSTALLDIRS := $(BUILD)/mkinstalldirs MKINSTALLDIRS := $(BUILD_DIR)/mkinstalldirs
DISTCLEAN += $(OBJ_BUILD)/config.cache \ DISTCLEAN += $(OBJ_BUILD)/config.cache \
$(OBJ_BUILD)/config.log \ $(OBJ_BUILD)/config.log \
@ -47,6 +46,7 @@ DISTCLEAN += $(OBJ_BUILD)/config.cache \
$(OBJ_BUILD)/unix-cc.mk \ $(OBJ_BUILD)/unix-cc.mk \
$(OBJ_BUILD)/ftconfig.h \ $(OBJ_BUILD)/ftconfig.h \
$(OBJ_BUILD)/freetype-config \ $(OBJ_BUILD)/freetype-config \
$(OBJ_BUILD)/freetype2.pc \
$(LIBTOOL) \ $(LIBTOOL) \
$(OBJ_BUILD)/Makefile $(OBJ_BUILD)/Makefile
@ -96,4 +96,5 @@ SYSTEM_ZLIB := @SYSTEM_ZLIB@
# #
NO_OUTPUT := 2> /dev/null NO_OUTPUT := 2> /dev/null
# EOF # EOF

View file

@ -6,7 +6,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -17,9 +17,10 @@
include $(TOP_DIR)/builds/unix/unixddef.mk include $(TOP_DIR)/builds/unix/unixddef.mk
BUILD := $(TOP_DIR)/builds/devel BUILD_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/compiler/gcc-dev.mk include $(TOP_DIR)/builds/compiler/gcc-dev.mk
include $(TOP_DIR)/builds/link_std.mk include $(TOP_DIR)/builds/link_std.mk
# EOF # EOF

View file

@ -20,4 +20,5 @@ include $(TOP_DIR)/builds/unix/unixddef.mk
include $(TOP_DIR)/builds/compiler/unix-lcc.mk include $(TOP_DIR)/builds/compiler/unix-lcc.mk
include $(TOP_DIR)/builds/link_std.mk include $(TOP_DIR)/builds/link_std.mk
# EOF # EOF

View file

@ -4,7 +4,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -19,12 +19,11 @@ ifndef TOP_DIR
endif endif
TOP_DIR := $(shell cd $(TOP_DIR); pwd) TOP_DIR := $(shell cd $(TOP_DIR); pwd)
DELETE := rm -f DELETE := rm -f
SEP := / SEP := /
HOSTSEP := $(SEP)
# we use a special devel ftoption.h # we use a special devel ftoption.h
BUILD := $(TOP_DIR)/builds/devel BUILD_DIR := $(TOP_DIR)/devel
# do not set the platform to `unix', or libtool will trick you # do not set the platform to `unix', or libtool will trick you
PLATFORM := unixdev PLATFORM := unixdev
@ -50,7 +49,7 @@ LIBRARY := lib$(PROJECT)
LIB_DIR := $(OBJ_DIR) LIB_DIR := $(OBJ_DIR)
#
NO_OUTPUT := 2> /dev/null NO_OUTPUT := 2> /dev/null
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -46,16 +46,102 @@ endif # test PLATFORM ansi
ifeq ($(PLATFORM),win32) ifeq ($(PLATFORM),win32)
DELETE := del DELETE := del
COPY := copy COPY := copy
SEP := $(BACKSLASH)
# gcc Makefile by default # gcc Makefile by default
CONFIG_FILE := w32-gcc.mk CONFIG_FILE := w32-gcc.mk
SEP := /
ifeq ($(firstword $(CC)),cc) ifeq ($(firstword $(CC)),cc)
CC := gcc CC := gcc
endif endif
ifneq ($(findstring list,$(MAKECMDGOALS)),) # test for the "list" target ifneq ($(findstring list,$(MAKECMDGOALS)),) # test for the "list" target
dump_target_list: dump_target_list:
@echo @echo ÿ
@echo $(PROJECT_TITLE) build system -- supported compilers
@echo ÿ
@echo Several command-line compilers are supported on Win32:
@echo ÿ
@echo ÿÿmake setupÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿgcc (with Mingw)
@echo ÿÿmake setup visualcÿÿÿÿÿÿÿÿÿÿÿÿÿMicrosoft Visual C++
@echo ÿÿmake setup bcc32ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBorland C/C++
@echo ÿÿmake setup lccÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWin32-LCC
@echo ÿÿmake setup intelcÿÿÿÿÿÿÿÿÿÿÿÿÿÿIntel C/C++
@echo ÿ
setup: dump_target_list
.PHONY: dump_target_list list
else
setup: dos_setup
endif
# additionally, we provide hooks for various other compilers
#
ifneq ($(findstring visualc,$(MAKECMDGOALS)),) # Visual C/C++
CONFIG_FILE := w32-vcc.mk
CC := cl
visualc: setup
.PHONY: visualc
endif
ifneq ($(findstring intelc,$(MAKECMDGOALS)),) # Intel C/C++
CONFIG_FILE := w32-intl.mk
CC := cl
visualc: setup
.PHONY: intelc
endif
ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
CONFIG_FILE := w32-wat.mk
CC := wcc386
watcom: setup
.PHONY: watcom
endif
ifneq ($(findstring visualage,$(MAKECMDGOALS)),) # Visual Age C++
CONFIG_FILE := w32-icc.mk
CC := icc
visualage: setup
.PHONY: visualage
endif
ifneq ($(findstring lcc,$(MAKECMDGOALS)),) # LCC-Win32
CONFIG_FILE := w32-lcc.mk
CC := lcc
lcc: setup
.PHONY: lcc
endif
ifneq ($(findstring mingw32,$(MAKECMDGOALS)),) # mingw32
CONFIG_FILE := w32-mingw32.mk
CC := gcc
mingw32: setup
.PHONY: mingw32
endif
ifneq ($(findstring bcc32,$(MAKECMDGOALS)),) # Borland C++
CONFIG_FILE := w32-bcc.mk
CC := bcc32
bcc32: setup
.PHONY: bcc32
endif
ifneq ($(findstring devel-bcc,$(MAKECMDGOALS)),) # development target
CONFIG_FILE := w32-bccd.mk
CC := bcc32
devel-bcc: setup
.PHONY: devel-bcc
endif
ifneq ($(findstring devel-gcc,$(MAKECMDGOALS)),) # development target
CONFIG_FILE := w32-dev.mk
CC := gcc
devel-gcc: setup
.PHONY: devel-gcc
endif
endif # test PLATFORM win32
# EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,11 +13,11 @@
# fully. # fully.
SEP := /
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
include $(TOP_DIR)/builds/compiler/bcc.mk include $(TOP_DIR)/builds/compiler/bcc.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,14 +13,13 @@
# fully. # fully.
SEP := /
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
BUILD := $(TOP_DIR)/builds/devel BUILD_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/compiler/bcc-dev.mk include $(TOP_DIR)/builds/compiler/bcc-dev.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -5,7 +5,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -23,10 +23,8 @@ ifndef TOP_DIR
TOP_DIR := . TOP_DIR := .
endif endif
SEP := /
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
BUILD := $(TOP_DIR)/builds/devel BUILD_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/compiler/gcc-dev.mk include $(TOP_DIR)/builds/compiler/gcc-dev.mk
@ -34,5 +32,4 @@ include $(TOP_DIR)/builds/compiler/gcc-dev.mk
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,10 +13,6 @@
# fully. # fully.
# the separator must be set before including win32-def
# as it defaults to "\" on Win32
SEP := /
# include Win32-specific definitions # include Win32-specific definitions
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
@ -26,4 +22,5 @@ include $(TOP_DIR)/builds/compiler/gcc.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -19,4 +19,5 @@ include $(TOP_DIR)/builds/compiler/visualage.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,11 +13,11 @@
# fully. # fully.
SEP := /
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
include $(TOP_DIR)/builds/compiler/intelc.mk include $(TOP_DIR)/builds/compiler/intelc.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,10 +13,6 @@
# fully. # fully.
# the separator must be set before including win32-def
# as it defaults to "\" on Win32
SEP := /
# include Win32-specific definitions # include Win32-specific definitions
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
@ -28,4 +24,5 @@ include $(TOP_DIR)/builds/compiler/gcc.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,11 +13,11 @@
# fully. # fully.
SEP := /
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
include $(TOP_DIR)/builds/compiler/visualc.mk include $(TOP_DIR)/builds/compiler/visualc.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,14 +13,11 @@
# fully. # fully.
SEP := /
ISEP := $(strip \ )
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
include $(TOP_DIR)/builds/compiler/watcom.mk include $(TOP_DIR)/builds/compiler/watcom.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF
# EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,17 +13,10 @@
# fully. # fully.
DELETE := del DELETE := del
HOSTSEP := $(strip \ ) SEP := $(strip \ )
BUILD := $(TOP_DIR)$(SEP)builds$(SEP)win32 BUILD_DIR := $(TOP_DIR)/builds/win32
PLATFORM := win32 PLATFORM := win32
# by default, we use "\" as a separator on Win32
# but certain compilers accept "/" as well
#
ifndef SEP
SEP := $(HOSTSEP)
endif
# The directory where all object files are placed. # The directory where all object files are placed.
@ -36,7 +29,7 @@ endif
# make -f %TOP_DIR%/Makefile # make -f %TOP_DIR%/Makefile
# #
ifndef OBJ_DIR ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)$(SEP)objs OBJ_DIR := $(TOP_DIR)/objs
endif endif
@ -58,4 +51,5 @@ LIBRARY := $(PROJECT)
# #
NO_OUTPUT = 2> nul NO_OUTPUT = 2> nul
# EOF # EOF

View file

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000 by # Copyright 1996-2000, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -13,10 +13,6 @@
# fully. # fully.
# the separator must be set before including win32-def
# as it defaults to "\" on Win32
SEP := /
# include Win32-specific definitions # include Win32-specific definitions
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
@ -28,4 +24,5 @@ include $(TOP_DIR)/builds/compiler/gcc.mk
# include linking instructions # include linking instructions
include $(TOP_DIR)/builds/link_dos.mk include $(TOP_DIR)/builds/link_dos.mk
# EOF # EOF

View file

@ -46,11 +46,13 @@ abs_ft2_dir=`cd "$ft2_dir" && pwd`
# build a dummy Makefile if we are not building in the source tree # build a dummy Makefile if we are not building in the source tree
if test "$abs_curr_dir" != "$abs_ft2_dir"; then if test "$abs_curr_dir" != "$abs_ft2_dir"; then
echo "OBJ_DIR=$abs_curr_dir" > Makefile mkdir reference
echo "TOP_DIR=$abs_ft2_dir" >> Makefile echo "TOP_DIR=$abs_ft2_dir" > Makefile
echo "OBJ_BUILD=$abs_curr_dir" >> Makefile echo "OBJ_DIR=$abs_curr_dir" >> Makefile
echo "LIBTOOL=$abs_curr_dir/libtool" >> Makefile echo "OBJ_BUILD=$abs_curr_dir" >> Makefile
echo "include $abs_ft2_dir/Makefile" >> Makefile echo "DOC_DIR=$abs_curr_dir/reference" >> Makefile
echo "LIBTOOL=$abs_curr_dir/libtool" >> Makefile
echo "include $abs_ft2_dir/Makefile" >> Makefile
fi fi
# call make # call make

View file

@ -1,73 +0,0 @@
#
# FreeType 2 build system -- top-level Makefile for OpenVMS
#
# Copyright 2001 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
all :
define freetype [--.include.freetype]
define psaux [-.psaux]
define autohint [-.autohint]
define base [-.base]
define cache [-.cache]
define cff [-.cff]
define cid [-.cid]
define pcf [-.pcf]
define psnames [-.psnames]
define raster [-.raster]
define sfnt [-.sfnt]
define smooth [-.smooth]
define truetype [-.truetype]
define type1 [-.type1]
define winfonts [-.winfonts]
if f$search("lib.dir") .eqs. "" then create/directory [.lib]
set default [.builds.vms]
$(MMS)$(MMSQUALIFIERS)
set default [--.src.autohint]
$(MMS)$(MMSQUALIFIERS)
set default [-.base]
$(MMS)$(MMSQUALIFIERS)
set default [-.bdf]
$(MMS)$(MMSQUALIFIERS)
set default [-.cache]
$(MMS)$(MMSQUALIFIERS)
set default [-.cff]
$(MMS)$(MMSQUALIFIERS)
set default [-.cid]
$(MMS)$(MMSQUALIFIERS)
set default [-.pcf]
$(MMS)$(MMSQUALIFIERS)
set default [-.pfr]
$(MMS)$(MMSQUALIFIERS)
set default [-.psaux]
$(MMS)$(MMSQUALIFIERS)
set default [-.pshinter]
$(MMS)$(MMSQUALIFIERS)
set default [-.psnames]
$(MMS)$(MMSQUALIFIERS)
set default [-.raster]
$(MMS)$(MMSQUALIFIERS)
set default [-.sfnt]
$(MMS)$(MMSQUALIFIERS)
set default [-.smooth]
$(MMS)$(MMSQUALIFIERS)
set default [-.truetype]
$(MMS)$(MMSQUALIFIERS)
set default [-.type1]
$(MMS)$(MMSQUALIFIERS)
set default [-.type42]
$(MMS)$(MMSQUALIFIERS)
set default [-.winfonts]
$(MMS)$(MMSQUALIFIERS)
set default [--]
# EOF

View file

@ -5,7 +5,7 @@
/* FreeType 2 build and setup macros. */ /* FreeType 2 build and setup macros. */
/* (Generic version) */ /* (Generic version) */
/* */ /* */
/* Copyright 1996-2001 by */ /* Copyright 1996-2001, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -18,14 +18,14 @@
/* /*
* this is a development version of <ft2build.h> that is used * This is a development version of <ft2build.h> that is used
* to build the library in debug mode. Its only difference with * to build the library in debug mode. Its only difference with
* the reference is that is forces the use of the local "ftoption.h" * the reference is that it forces the use of the local "ftoption.h"
* which contains different settings for all configuration macros * which contains different settings for all configuration macros.
* *
* to use it, you must define the environment variable FT2_BUILD_INCLUDE * To use it, you must define the environment variable FT2_BUILD_INCLUDE
* to point to the directory containing these two files ("ft2build.h" and * to point to the directory containing these two files ("ft2build.h" and
* "ftoption.h"), then invoke Jam as usual * "ftoption.h"), then invoke Jam as usual.
*/ */
#ifndef __FT2_BUILD_GENERIC_H__ #ifndef __FT2_BUILD_GENERIC_H__

View file

@ -4,7 +4,7 @@
/* */ /* */
/* User-selectable configuration macros (specification only). */ /* User-selectable configuration macros (specification only). */
/* */ /* */
/* Copyright 1996-2001, 2002 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -22,11 +22,6 @@
#include <ft2build.h> #include <ft2build.h>
/*
* this is a special developer version of "ftoption.h", it is used
* to define all debugging options, as well as the TrueType bytecode
* interpreter
*/
FT_BEGIN_HEADER FT_BEGIN_HEADER
@ -86,16 +81,16 @@ FT_BEGIN_HEADER
/* by FreeType to speed up some computations. However, this will create */ /* by FreeType to speed up some computations. However, this will create */
/* some problems when compiling the library in strict ANSI mode. */ /* some problems when compiling the library in strict ANSI mode. */
/* */ /* */
/* For this reason, the use of 64-bit ints is normally disabled when */ /* For this reason, the use of 64-bit integers is normally disabled when */
/* the __STDC__ macro is defined. You can however disable this by */ /* the __STDC__ macro is defined. You can however disable this by */
/* defining here the macro FT_CONFIG_OPTION_FORCE_INT64. */ /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */
/* */ /* */
/* For most compilers, this will only create compilation warnings */ /* For most compilers, this will only create compilation warnings when */
/* when building the library. */ /* building the library. */
/* */ /* */
/* ObNote: The compiler-specific 64-bit integers are detected in the */ /* ObNote: The compiler-specific 64-bit integers are detected in the */
/* file "ftconfig.h" either statically, or through Autoconf */ /* file "ftconfig.h" either statically or through the */
/* on platforms that support it. */ /* `configure' script on supported platforms. */
/* */ /* */
#undef FT_CONFIG_OPTION_FORCE_INT64 #undef FT_CONFIG_OPTION_FORCE_INT64
@ -105,11 +100,11 @@ FT_BEGIN_HEADER
/* Gzip-compressed file support. */ /* Gzip-compressed file support. */
/* */ /* */
/* FreeType now handles font files that have been compressed with the */ /* FreeType now handles font files that have been compressed with the */
/* 'gzip' program. This is mostly used to parse many of the PCF files */ /* 'gzip' program. This is mostly used to parse many of the PCF files */
/* that come with XFree86. The implementation uses 'zlib' to */ /* that come with XFree86. The implementation uses `zlib' to */
/* partially uncompress the file on the fly (see src/base/ftgzip.c). */ /* partially uncompress the file on the fly (see src/base/ftgzip.c). */
/* */ /* */
/* Define this macro if you want to enable this "feature". Note that */ /* Define this macro if you want to enable this "feature". Note that */
/* this will however force you to link the zlib to any program that */ /* this will however force you to link the zlib to any program that */
/* also uses FreeType. */ /* also uses FreeType. */
/* */ /* */
@ -122,17 +117,17 @@ FT_BEGIN_HEADER
/* */ /* */
/* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */
/* It allows FreeType's "ftgzip" component to link to the system's */ /* It allows FreeType's "ftgzip" component to link to the system's */
/* installation of the ZLib library. This is useful on systems like */ /* installation of the ZLib library. This is useful on systems like */
/* Unix or VMS where it generally is already available. */ /* Unix or VMS where it generally is already available. */
/* */ /* */
/* If you let it undefined, the component will use its own copy */ /* If you let it undefined, the component will use its own copy */
/* of the zlib sources instead. These have been modified to be */ /* of the zlib sources instead. These have been modified to be */
/* included directly within the component and *not* export external */ /* included directly within the component and *not* export external */
/* function names. This allows you to link any program with FreeType */ /* function names. This allows you to link any program with FreeType */
/* _and_ ZLib without linking conflicts. */ /* _and_ ZLib without linking conflicts. */
/* */ /* */
/* do not #undef this macro here, since the build system might */ /* Do not #undef this macro here since the build system might define */
/* define for certain configurations */ /* it for certain configurations only. */
/* */ /* */
/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ /* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
@ -172,6 +167,9 @@ FT_BEGIN_HEADER
/* will be later automatically defined as `extern return_type' to */ /* will be later automatically defined as `extern return_type' to */
/* allow normal compilation. */ /* allow normal compilation. */
/* */ /* */
/* Do not #undef these macros here since the build system might define */
/* them for certain configurations only. */
/* */
/* #define FT_EXPORT(x) extern x */ /* #define FT_EXPORT(x) extern x */
/* #define FT_EXPORT_DEF(x) x */ /* #define FT_EXPORT_DEF(x) x */
@ -219,6 +217,19 @@ FT_BEGIN_HEADER
#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST #define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
/*************************************************************************/
/* */
/* Support for Mac fonts */
/* */
/* Define this macro if you want support for outline fonts in Mac */
/* format (mac dfont, mac resource, macbinary containing a mac */
/* resource) on non-Mac platforms. */
/* */
/* Note that the `FOND' resource isn't checked. */
/* */
#define FT_CONFIG_OPTION_MAC_FONTS
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* Allow the use of FT_Incremental_Interface to load typefaces that */ /* Allow the use of FT_Incremental_Interface to load typefaces that */
@ -226,7 +237,7 @@ FT_BEGIN_HEADER
/* This allows FreeType to be used with the PostScript language, using */ /* This allows FreeType to be used with the PostScript language, using */
/* the GhostScript interpreter. */ /* the GhostScript interpreter. */
/* */ /* */
/* #define FT_CONFIG_OPTION_INCREMENTAL */ /* #define FT_CONFIG_OPTION_INCREMENTAL */
/*************************************************************************/ /*************************************************************************/
@ -234,7 +245,7 @@ FT_BEGIN_HEADER
/* The size in bytes of the render pool used by the scan-line converter */ /* The size in bytes of the render pool used by the scan-line converter */
/* to do all of its work. */ /* to do all of its work. */
/* */ /* */
/* This must be greater than 4kByte. */ /* This must be greater than 4KByte. */
/* */ /* */
#define FT_RENDER_POOL_SIZE 16384L #define FT_RENDER_POOL_SIZE 16384L
@ -263,8 +274,11 @@ FT_BEGIN_HEADER
/* */ /* */
/* Don't define any of these macros to compile in `release' mode! */ /* Don't define any of these macros to compile in `release' mode! */
/* */ /* */
#define FT_DEBUG_LEVEL_ERROR /* Do not #undef these macros here since the build system might define */
#define FT_DEBUG_LEVEL_TRACE /* them for certain configurations only. */
/* */
#define FT_DEBUG_LEVEL_ERROR
#define FT_DEBUG_LEVEL_TRACE
/*************************************************************************/ /*************************************************************************/
@ -277,10 +291,12 @@ FT_BEGIN_HEADER
/* should define FT_DEBUG_MEMORY here. */ /* should define FT_DEBUG_MEMORY here. */
/* */ /* */
/* Note that the memory debugger is only activated at runtime when */ /* Note that the memory debugger is only activated at runtime when */
/* when the _environment_ variable "FT_DEBUG_MEMORY" is also defined! */ /* when the _environment_ variable "FT2_DEBUG_MEMORY" is defined also! */
/* */ /* */
#define FT_DEBUG_MEMORY /* Do not #undef this macro here since the build system might define */
/* it for certain configurations only. */
/* */
/* #define FT_DEBUG_MEMORY */
/*************************************************************************/ /*************************************************************************/
@ -380,10 +396,22 @@ FT_BEGIN_HEADER
/* By undefining this, you will only compile the code necessary to load */ /* By undefining this, you will only compile the code necessary to load */
/* TrueType glyphs without hinting. */ /* TrueType glyphs without hinting. */
/* */ /* */
/* do not #undef this macro here, since the build system might */ /* Do not #undef this macro here, since the build system might */
/* define for certain configurations */ /* define it for certain configurations only. */
/* */ /* */
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to */
/* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented */
/* work-around hinting system. Note that for the moment, the algorithm */
/* is only used when selected at runtime through the parameter tag */
/* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */
/* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally actived */
/* */
#define TT_CONFIG_OPTION_UNPATENTED_HINTING
/*************************************************************************/ /*************************************************************************/
@ -475,21 +503,21 @@ FT_BEGIN_HEADER
/* */ /* */
/* /*
* the FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent * The FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent
* improvements to the auto-hinter contributed by David Chester. They will * improvements to the auto-hinter contributed by David Chester. They will
* most likely disappear completely in the next release. For now, you should * most likely disappear completely in the next release. For now, you
* always keep them defined * should always keep them defined.
* *
*/ */
#define FT_CONFIG_OPTION_CHESTER_HINTS #define FT_CONFIG_OPTION_CHESTER_HINTS
#ifdef FT_CONFIG_OPTION_CHESTER_HINTS #ifdef FT_CONFIG_OPTION_CHESTER_HINTS
# define FT_CONFIG_CHESTER_SMALL_F #define FT_CONFIG_CHESTER_SMALL_F
# define FT_CONFIG_CHESTER_ASCENDER #define FT_CONFIG_CHESTER_ASCENDER
# define FT_CONFIG_CHESTER_SERIF #define FT_CONFIG_CHESTER_SERIF
# define FT_CONFIG_CHESTER_STEM #define FT_CONFIG_CHESTER_STEM
# define FT_CONFIG_CHESTER_BLUE_SCALE #define FT_CONFIG_CHESTER_BLUE_SCALE
#endif /* FT_CONFIG_OPTION_CHESTER_HINTS */ #endif /* FT_CONFIG_OPTION_CHESTER_HINTS */

View file

@ -1,86 +1,196 @@
LATEST CHANGES BETWEEN 2.1.5 and 2.1.4
I. IMPORTANT BUG FIXES
- Parsing the /CIDFontName field now removes the leading slash to
be in sync with other font drivers.
- gzip support was buggy. Some fonts could not be read.
- Fonts which have nested subglyphs more than one level deep no
longer cause a segfault.
- Creation of synthetic cmaps for fonts in CFF format was broken
partially.
- Numeric font dictionary entries for synthetic fonts are no longer
overwritten.
- The font matrix wasn't applied to the advance width for Type1, CID,
and CFF fonts. This caused problem when loading certain synthetic
Type 1 fonts like "Helvetica Narrow"
- The test for the charset registry in BDF and PCF fonts is now
case-insensitive.
- FT_Vector_Rotate rotating sometimes returned strange values due to
rounding errors.
- The PCF driver now returns the correct number of glyphs (including
an artificial `notdef' glyph at index 0).
- FreeType now supports buggy CMaps which are contained in many CJK
fonts from Dynalab.
- Opening an invalid font on a Mac caused a segfault due to
double-freeing memory.
- BDF fonts with more than 32768 glyphs weren't supported properly.
II. IMPORTANT CHANGES
- Accessing bitmap font formats has been synchronized. To do that
the FT_Bitmap_Size structure has been extended to contain new
fields `size', `x_ppem', and `y_ppem'.
- The FNT driver now returns multiple faces, not multiple strikes.
- The `psnames' module has been updated to the Adobe Glyph List
version 2.0.
- The `psnames' module now understands `uXXXX[X[X]]' glyph names.
- The algorithm for guessing the font style has been improved.
- For fonts in sfnt format, root->height is no longer increased if
the line gap is zero. There exist fonts (containing e.g. form
drawing characters) which intentionally have a zero line gap value.
- ft_glyph_bbox_xxx flags are now deprecated in favour of
FT_GLYPH_BBOX_XXX.
- ft_module_xxx flags are now deprecated in favour of FT_MODULE_XXX.
- FT_ENCODING_MS_{SJIS,GB2312,BIG5,WANSUNG,JOHAB} are now deprecated
in favour of FT_ENCODING_{SJIS,GB2312,GIB5,WANSONG,JOHAB} -- those
encodings are not specific to Microsoft.
III. MISCELLANEOUS
- The autohinter has been further improved; for example, `m' glyphs
now retain its vertical symmetry.
- Partial support of Mac fonts on non-Mac platforms.
- `make refdoc' (after first `make') builds the HTML documentation.
You need Python for this.
- The make build system should now work more reliably on DOS-like
platforms.
- Support for EMX gcc and Watson C/C++ compilers on MS-DOS has been
added.
- Better VMS build support.
- Support for the pkg-config package by providing a `freetype.pc'
file.
- New configure option --with-old-mac-fonts for Darwin.
- Some source files have been renamed (mainly to fit into the 8.3
naming scheme).
==============================================================================
LATEST CHANGES BETWEEN 2.1.4 and 2.1.3 LATEST CHANGES BETWEEN 2.1.4 and 2.1.3
I. IMPORTANT BUG FIXES I. IMPORTANT BUG FIXES
- updated to newest libtool version, fixes build problems on various - Updated to newest libtool version, fixing build problems on various
platforms. platforms.
- a fix in the Gzip stream reader, it couldn't read certain .gz files - A fix in the Gzip stream reader: It couldn't read certain .gz files
properly due to a small typo. In certain cases, FreeType could also properly due to a small typo. In certain cases, FreeType could also
loop endlessly when trying to load tiny gzipped files. loop endlessly when trying to load tiny gzipped files.
- the configure script now tries to use the system-wide zlib when - The configure script now tries to use the system-wide zlib when
it finds one (instead of the copy found in src/gzip). And it finds one (instead of the copy found in src/gzip). And
"freetype-config" has been updated to return relevant flags in this "freetype-config" has been updated to return relevant flags in this
case when invoked with "--libs" (e.g. "-lzlib") case when invoked with "--libs" (e.g. "-lzlib").
- certain fonts couldn't be loaded by 2.1.3 because they lacked a - Certain fonts couldn't be loaded by 2.1.3 because they lacked a
Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously rejected Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously rejected
them. them.
- the CFF loader was modified to accept fonts which only - The CFF loader was modified to accept fonts which only contain a
contain a subset of their reference charset. This prevented the subset of their reference charset. This prevented the correct use
correct use of PDF-embedded fonts. of PDF-embedded fonts.
- the logic to detect Unicode charmaps has been modified. this is required - The logic to detect Unicode charmaps has been modified. This is
to support fonts which include both 16-bit and 32-bit charmaps (like required to support fonts which include both 16-bit and 32-bit
very recent asian ones) using the new 10 and 12 SFNT formats. charmaps (like very recent asian ones) using the new 10 and 12 SFNT
formats.
- the TrueType loader now limits the depth of composite glyphs. This is - The TrueType loader now limits the depth of composite glyphs. This is
necessary to prevent broken fonts to break the engine by blowing the necessary to prevent broken fonts to break the engine by blowing the
stack with recursive glyph definitions. stack with recursive glyph definitions.
- the CMap cache is now capable of managing UCS-4 character codes that - The CMap cache is now capable of managing UCS-4 character codes that
are mapped through extended charmaps in recent TrueType/OpenType fonts are mapped through extended charmaps in recent TrueType/OpenType
fonts.
- the cache sub-system now properly manages out-of-memory conditions, - The cache sub-system now properly manages out-of-memory conditions
instead of blindly reporting them to the caller. This means that it instead of blindly reporting them to the caller. This means that it
will try to empty the cache before restarting its allocations to see will try to empty the cache before restarting its allocations to see
if that can help. if that can help.
- the PFR driver didn't return the list of available embedded bitmaps - The PFR driver didn't return the list of available embedded bitmaps
properly. properly.
- There was a nasty memory leak when using embedded bitmaps in certain
font formats.
II. IMPORTANT CHANGES II. IMPORTANT CHANGES
- David Chester contributed some enhancements to the auto-hinter that - David Chester contributed some enhancements to the auto-hinter that
significantly increase the quality of its output. The Postscript hinter significantly increase the quality of its output. The Postscript
was also improved in several ways.. hinter was also improved in several ways.
- the FT_RENDER_MODE_LIGHT render mode was implemented - The FT_RENDER_MODE_LIGHT render mode was implemented.
- a new API, called FT_Get_BDF_Property has been added to FT_BDF_H to - A new API function called `FT_Get_BDF_Property' has been added to
retrieve BDF properties from BDF _and_ PCF font files. THIS IS STILL FT_BDF_H to retrieve BDF properties from BDF _and_ PCF font files.
EXPERIMENTAL, since it hasn't been properly tested yet. THIS IS STILL EXPERIMENTAL, since it hasn't been properly tested yet.
- a Windows FNT specific API has been added, mostly to access font - A Windows FNT specific API has been added, mostly to access font
headers. This is used by Wine headers. This is used by Wine.
- TrueType tables without a "hmtx" table are now tolerated when an - TrueType tables without an "hmtx" table are now tolerated when an
incremental interface is used. This happens for certain Type42 fonts incremental interface is used. This happens for certain Type42 fonts
passed from Ghostscript to FreeType. passed from Ghostscript to FreeType.
- the PFR font driver is now capable of returning the font family and - The PFR font driver is now capable of returning the font family and
style names when they're available (instead of the sole "FontID"). This style names when they are available (instead of the sole "FontID").
is performed by parsing an *undocumented* portion of the font file !! This is performed by parsing an *undocumented* portion of the font
file!
III. MISCELLANEOUS III. MISCELLANEOUS
- the path stroker in FT_STROKER_H has entered beta stage. It now works - The path stroker in FT_STROKER_H has entered beta stage. It now works
very well, but it's interface might change a bit in the future. More very well, but its interface might change a bit in the future. More
on this in later releases on this in later releases.
- the documentation for FT_Size_Metrics didn't appear properly in the - The documentation for FT_Size_Metrics didn't appear properly in the
API reference API reference.
- the file docs/VERSION.DLL has been updated to explain versioning - The file docs/VERSION.DLL has been updated to explain versioning
with FreeType (i.e. comparing release/libtool/so numbers, and how with FreeType (i.e., comparing release/libtool/so numbers, and how to
to use them in Autoconf scripts) use them in autoconf scripts).
- The installation documentation has been seriously revamped.
Everything is now in the "docs" directory.
- the installation documentation has been seriously revamped. Everything
is now in the "docs" directory.
============================================================================== ==============================================================================
LATEST CHANGES BETWEEN 2.1.3 and 2.1.2 LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
I. IMPORTANT BUG FIXES I. IMPORTANT BUG FIXES
@ -111,17 +221,19 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
precisely, when trying to apply hints to an empty glyph outline). precisely, when trying to apply hints to an empty glyph outline).
- The TrueType glyph loader now supports composites in "Apple format" - The TrueType glyph loader now supports composites in "Apple format"
(they differ slightly from Microsoft/OpenType ones in the way transform (they differ slightly from Microsoft/OpenType ones in the way
offsets are computed). transformation offsets are computed).
- FreeType was very slow at opening certain asian CID/CFF fonts, due - FreeType was very slow at opening certain asian CID/CFF fonts, due
to fixed increment in dynamic array re-allocations. This has been to fixed increment in dynamic array re-allocations. This has been
changed to exponential behaviour to get acceptable performance changed to exponential behaviour to get acceptable performance.
II. IMPORTANT CHANGES II. IMPORTANT CHANGES
- the PCF driver now supports gzip-compressed font files natively. This - The PCF driver now supports gzip-compressed font files natively. This
means that you'll be able to use all these bitmap fonts that come means that you will be able to use all these bitmap fonts that come
with XFree86 with FreeType (and libXft/libXft2, by extension). with XFree86 with FreeType (and libXft/libXft2, by extension).
- The automatic and postscript hinters have both been updated. This - The automatic and postscript hinters have both been updated. This
@ -160,10 +272,10 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
Note that the 'ftview' demo program available in the 'ft2demos' package Note that the 'ftview' demo program available in the 'ft2demos' package
has been updated to support LCD-optimized display on non-paletted has been updated to support LCD-optimized display on non-paletted
displays (under Win32 and X11) displays (under Win32 and X11).
- The PFR driver now supports embedded bitmaps (all formats supported), - The PFR driver now supports embedded bitmaps (all formats supported),
and returns correct kerning metrics for all glyphs and returns correct kerning metrics for all glyphs.
- The TrueType charmap loader now supports certain "broken" fonts that - The TrueType charmap loader now supports certain "broken" fonts that
load under Windows without problems. load under Windows without problems.
@ -184,9 +296,10 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
- Added support for the DESTDIR variable during "make install". This - Added support for the DESTDIR variable during "make install". This
simplifies packaging of FreeType. simplifies packaging of FreeType.
- included modified copies of the ZLib sources in 'src/gzip' in order - Included modified copies of the ZLib sources in 'src/gzip' in order to
to support gzip-compressed PCF fonts. We do not use the system-provided support gzip-compressed PCF fonts. We do not use the system-provided
zlib for now, though this is a probable enhancement for future releases zlib for now, though this is a probable enhancement for future
releases.
- The DocMaker tool used to generate the on-line API reference has been - The DocMaker tool used to generate the on-line API reference has been
completely rewritten. It is now located in completely rewritten. It is now located in

View file

@ -1,79 +1,85 @@
How to customize the compilation of the library: How to customize the compilation of the library:
================================================ ================================================
FreeType is highly customizable to fit various needs, and this document FreeType is highly customizable to fit various needs, and this
details how it is possible to select options and components at compilation document describes how it is possible to select options and components
time. at compilation time.
I. Configuration macros: I. Configuration macros
the file found in "include/freetype/config/ftoption.h" contains a list The file found in "include/freetype/config/ftoption.h" contains a list
of commented configuration macros that can be toggled by developers to of commented configuration macros that can be toggled by developers to
indicate which features to activate in their build of the library. indicate which features should be active while building the library.
these options range from debug level to availability of certain These options range from debug level to availability of certain
features, like native TrueType hinting through a bytecode interpreter. features, like native TrueType hinting through a bytecode interpreter.
we invite you to read this file for more information. You can change We invite you to read this file for more information. You can change
the file's content to suit your needs, or override it with one of the the file's content to suit your needs, or override it with one of the
techniques described below.. techniques described below.
II. Modules list: II. Modules list
the file found in "include/freetype/config/ftmodule.h" contains a list The file found in "include/freetype/config/ftmodule.h" contains a list
of names corresponding to the modules / font drivers to be statically of names corresponding to the modules and font drivers to be
compiled in the FreeType library during the build. statically compiled in the FreeType library during the build.
you can change it to suit your own preferences. Be aware that certain You can change it to suit your own preferences. Be aware that certain
modules depend on others, as described by the file "modules.txt" in modules depend on others, as described by the file "modules.txt" in
this directory. this directory.
you can modify the file's content to suit your needs, or override it You can modify the file's content to suit your needs, or override it
at compile time with one of the methods described below at compile time with one of the methods described below.
III. System interface: III. System interface
FreeType's default interface to the system (i.e. the parts that deal with FreeType's default interface to the system (i.e., the parts that deal
memory management and i/o streams) is located in "src/base/ftsystem.c". with memory management and i/o streams) is located in
"src/base/ftsystem.c".
the current implementation uses standard C library calls to manage The current implementation uses standard C library calls to manage
memory and read font files. It is however possible to write custom memory and to read font files. It is however possible to write custom
implementations to suit specific systems. implementations to suit specific systems.
to tell the GNU Make-based build system to use a custom system interface, To tell the GNU Make-based build system to use a custom system
you'll need to define the environment variable FTSYS_SRC to point to interface, you have to define the environment variable FTSYS_SRC to
the relevant implementation, like in: point to the relevant implementation:
on Unix: on Unix:
./configure <youroptions>
export FTSYS_SRC=foo/my_ftsystem.c ./configure <your options>
make export FTSYS_SRC=foo/my_ftsystem.c
make install make
make install
on Windows: on Windows:
make setup <compiler>
set FTSYS_SRC=foo/my_ftsystem.c make setup <compiler>
make set FTSYS_SRC=foo/my_ftsystem.c
make
IV. Overriding default configuration and module headers: IV. Overriding default configuration and module headers
it is possible to over-ride the default configuration and module headers It is possible to override the default configuration and module
without changing the original files. There are two ways to do that: headers without changing the original files. There are two ways to do
that:
1. Using the C include path:
1. Using the C include path
use the C include path to ensure that your own versions of the Use the C include path to ensure that your own versions of the files
files are used at compile time when the lines: are used at compile time when the lines
#include FT_CONFIG_OPTIONS_H #include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_MODULES_H #include FT_CONFIG_MODULES_H
are compiled. Their default values being <freetype/config/ftoption.h> are compiled. Their default values being
and <freetype/config/ftmodule.h>, you can do something like: <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
can do something like:
custom/ custom/
freetype/ freetype/
@ -82,36 +88,38 @@ IV. Overriding default configuration and module headers:
ftmodule.h => custom modules list ftmodule.h => custom modules list
include/ => normal FreeType 2 include include/ => normal FreeType 2 include
freetype/ freetype/
... ...
then change the C include path to always give the path to "custom" then change the C include path to always give the path to "custom"
before the FreeType 2 "include" before the FreeType 2 "include".
2. Re-defining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H 2. Re-defining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
another way to do the same thing is to re-define the macros used Another way to do the same thing is to redefine the macros used to
to name the configuration headers. To do so, you'll need a custom name the configuration headers. To do so, you need a custom
"ft2build.h", whose content can be as simple as: "ft2build.h" whose content can be as simple as:
#ifndef __FT2_BUILD_GENERIC_H__ #ifndef __FT2_BUILD_GENERIC_H__
#define __FT2_BUILD_GENERIC_H__ #define __FT2_BUILD_GENERIC_H__
#define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h> #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
#define FT_CONFIG_MACROS_H <custom/my-ftmodule.h> #define FT_CONFIG_MACROS_H <custom/my-ftmodule.h>
#include <freetype/config/ftheader.h> #include <freetype/config/ftheader.h>
#endif /* __FT2_BUILD_GENERIC_H__ */ #endif /* __FT2_BUILD_GENERIC_H__ */
place them in: Place those files in a separate directory, e.g.:
custom/ custom/
ft2build.h => custom version described above ft2build.h => custom version described above
my-ftoption.h => custom options header my-ftoption.h => custom options header
my-ftmodule.h => custom modules list header my-ftmodule.h => custom modules list header
and change the C include path to ensure that "custom" is always placed and change the C include path to ensure that "custom" is always
before the FT2 "include" during compilation. placed before the FT2 "include" during compilation.
--- end of CUSTOMIZE ---

View file

@ -1,5 +1,5 @@
Debugging within the FreeType sources: Debugging within the FreeType sources
====================================== =====================================
I. Configuration macros I. Configuration macros
----------------------- -----------------------
@ -12,15 +12,15 @@ located in the file "ftoptions.h". The macros are:
FT_DEBUG_LEVEL_ERROR FT_DEBUG_LEVEL_ERROR
#define this macro if you want to compile the FT_ERROR macro calls #define this macro if you want to compile the FT_ERROR macro calls
used to print error messages during program execution. This will to print error messages during program execution. This will not
not stop the program, but is very useful to spot invalid fonts stop the program. Very useful to spot invalid fonts during
during development and code workarounds for them. development and to code workarounds for them.
FT_DEBUG_LEVEL_TRACE FT_DEBUG_LEVEL_TRACE
#define this macro if you want to compile both the FT_ERROR macro #define this macro if you want to compile both macros FT_ERROR and
and the FT_TRACE one. This also includes the variants FT_TRACE0, FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1,
FT_TRACE1, FT_TRACE2, ..., FT_TRACE6. FT_TRACE2, ..., FT_TRACE6.
The trace macros are used to send debugging messages when an The trace macros are used to send debugging messages when an
appropriate "debug level" is configured at runtime through the appropriate "debug level" is configured at runtime through the
@ -28,21 +28,21 @@ located in the file "ftoptions.h". The macros are:
FT_DEBUG_MEMORY FT_DEBUG_MEMORY
If this macro is #defined, the FreeType engines is linked with a If this macro is #defined, the FreeType engine is linked with a
small but effective debugging memory manager that tracks all small but effective debugging memory manager that tracks all
allocations and frees that are performed within the font engine. allocations and frees that are performed within the font engine.
When the FT2_DEBUG_MEMORY environment variable is defined at When the FT2_DEBUG_MEMORY environment variable is defined at
runtime, a call to FT_Done_FreeType will dump memory statistics, runtime, a call to FT_Done_FreeType will dump memory statistics,
including the list of leaked memory blocks with the source locations including the list of leaked memory blocks with the source locations
where these were allocated. It's always a very good idea to define where these were allocated. It is always a very good idea to define
this in development builds. This works with _any_ program linked to this in development builds. This works with _any_ program linked to
FreeType, but requires a big deal of memory (the debugging memory FreeType, but requires a big deal of memory (the debugging memory
manager never frees the blocks to the heap in order to detect double manager never frees the blocks to the heap in order to detect double
frees). frees).
When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory
manager is ignored, and performance is un-affected. manager is ignored, and performance is unaffected.
II. Debugging macros II. Debugging macros
@ -59,7 +59,7 @@ its code:
either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in
"ftoption.h". "ftoption.h".
Note that you must use with a printf-like signature, but with double Note that you have to use a printf-like signature, but with double
parentheses, like in: parentheses, like in:
FT_ERROR(( "your %s is not %s\n", "foo", "bar" )); FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
@ -93,9 +93,9 @@ its code:
trace_XXXX where XXXX is one of the component names defined in the trace_XXXX where XXXX is one of the component names defined in the
internal file <freetype/internal/fttrace.h>. internal file <freetype/internal/fttrace.h>.
Each such component is assigned a "debug level", ranging from 0 to 6 Each such component is assigned a "debug level", ranging from 0
when a program linked with FreeType starts, through the use of the to 6, through the use of the FT2_DEBUG environment variable
FT2_DEBUG environment variable, described later. (described below) when a program linked with FreeType starts.
When FT_TRACE is called, its level is compared to the one of the When FT_TRACE is called, its level is compared to the one of the
corresponding component. Messages with trace levels *higher* than corresponding component. Messages with trace levels *higher* than
@ -106,7 +106,7 @@ its code:
least* 2. least* 2.
The second parameter to FT_TRACE must contain parentheses and The second parameter to FT_TRACE must contain parentheses and
correspond to a print-like call, as in: correspond to a printf-like call, as in:
FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) ) FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
@ -123,7 +123,6 @@ III. Environment variables
The following environment variables control debugging output and The following environment variables control debugging output and
behaviour of FreeType at runtime: behaviour of FreeType at runtime:
FT2_DEBUG FT2_DEBUG
This variable is only used when FreeType is built with This variable is only used when FreeType is built with
@ -133,51 +132,52 @@ behaviour of FreeType at runtime:
component1:level1 component2:level2 component3:level3 ... component1:level1 component2:level2 component3:level3 ...
where "componentX" is the name of a tracing component, as defined in where "componentX" is the name of a tracing component, as defined in
"fttrace.h", but without the "trace_" prefix, and "levelX" is the "fttrace.h", but without the "trace_" prefix. "levelX" is the
corresponding level to use at runtime. corresponding level to use at runtime.
"any" is a special component name that will be interpreted as "any" is a special component name that will be interpreted as
"any/all components". For example, the following definitions "any/all components". For example, the following definitions
set FT2_DEBUG=any:2 memory:5 io:4 (on Windows) set FT2_DEBUG=any:2 memory:5 io:4 (on Windows)
export FT2_DEBUG="any:2 memory:5 io:4" (on Linux) export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash)
both stipulate that all components should have level 2, except for both stipulate that all components should have level 2, except for
the memory and io components which will be set to trace levels 5 and the memory and io components which will be set to trace levels 5
4 respectively. and 4, respectively.
FT2_DEBUG_MEMORY FT2_DEBUG_MEMORY
This environment variable, when defined, tells FreeType to use a This environment variable, when defined, tells FreeType to use a
debugging memory manager that will track leaked memory blocks as debugging memory manager that will track leaking memory blocks as
well as other common errors like double frees. It is also capable well as other common errors like double frees. It is also capable
of reporting _where_ the leaked blocks were allocated, which of reporting _where_ the leaking blocks were allocated, which
considerably saves time when debugging new additions to the library. considerably saves time when debugging new additions to the library.
This code is only compiled when FreeType is built with the This code is only compiled when FreeType is built with the
FT_DEBUG_MEMORY macro #defined in "ftoption.h" though, it will be FT_DEBUG_MEMORY macro #defined in "ftoption.h" though, it will be
ignored in other builds. ignored in other builds.
FT2_ALLOC_TOTAL_MAX FT2_ALLOC_TOTAL_MAX
this variable is ignored if FT2_DEBUG_MEMORY is not defined. It allows This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
you to specify a maximum heap size for all memory allocations performed allows you to specify a maximum heap size for all memory allocations
by FreeType. This is very useful to test the robustness of the font performed by FreeType. This is very useful to test the robustness
engine and programs that use it in tight memory conditions. of the font engine and programs that use it in tight memory
conditions.
If it is undefined, or if its value is not strictly positive, then no If it is undefined, or if its value is not strictly positive, then
allocation bounds are checked at runtime. no allocation bounds are checked at runtime.
FT2_ALLOC_COUNT_MAX FT2_ALLOC_COUNT_MAX
this variable is ignored if FT2_DEBUG_MEMORY is not defined. It allows This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
you to sepcify a maximum number of memory allocations performed by allows you to specify a maximum number of memory allocations
FreeType before returning the error FT_Err_Out_Of_Memory. This is performed by FreeType before returning the error
useful for debugging and testing the engine's robustness. FT_Err_Out_Of_Memory. This is useful for debugging and testing the
engine's robustness.
If it is undefined, or if its value is not strictly positive, then no If it is undefined, or if its value is not strictly positive, then
allocation bounsd are checked at runtime. no allocation bounsd are checked at runtime.
End of file
--- end of DEBUG ---

View file

@ -1,65 +1,66 @@
Welcome
There are several ways to build the FreeType library, depending on your There are several ways to build the FreeType library, depending on your
system and the level of customization you need. Here's a short overview system and the level of customization you need. Here is a short
of the documentation available: overview of the documentation available:
I. Normal installation and upgrades:
1. Native TrueType Hinting: I. Normal installation and upgrades
===================================
Native TrueType hinting is disabled by default[1]. If you really need it,
read the file "TRUETYPE" for information.
1. Native TrueType Hinting
2. Unix Systems (as well as Cygwin or MSys on Windows):
Native TrueType hinting is disabled by default[1]. If you really
need it, read the file "TRUETYPE" for information.
2. Unix Systems (as well as Cygwin or MSys on Windows)
Please read *both* UPGRADE.UNX and INSTALL.UNX to install or upgrade Please read *both* UPGRADE.UNX and INSTALL.UNX to install or upgrade
FreeType 2 on a Unix system. Note that you *will* need GNU Make, since FreeType 2 on a Unix system. Note that you *will* need GNU Make,
other make tools won't work (this includes BSD Make !!) since other make tools won't work (this includes BSD Make).
3. On VMS with the "mms" build tool: 3. On VMS with the "mms" build tool
see INSTALL.VMS for installation instructions on this platform See INSTALL.VMS for installation instructions on this platform.
4. Other systems using GNU Make: 4. Other systems using GNU Make
on non-Unix platforms, it's possible to build the library using On non-Unix platforms, it is possible to build the library using GNU
GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK* !! Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]! This
This methods supports several compilers on Windows, OS/2 and BeOS, methods supports several compilers on Windows, OS/2, and BeOS,
including Mingw, Visual C++, Borland C++, and more. including Mingw, Visual C++, Borland C++, and more.
instructions are provided in the file "INSTALL.GNU" Instructions are provided in the file "INSTALL.GNU".
5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior)
5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior):
we provide a small number of "project files" for various IDEs to We provide a small number of "project files" for various IDEs to
automatically build the library as well. Note that these files are automatically build the library as well. Note that these files are
not supported and sporadically maintained by FreeType developers, not supported and sporadically maintained by FreeType developers, so
so don't expect them to work in each release. don't expect them to work in each release.
to find them, have a look at the content of the "builds/<system>" To find them, have a look at the content of the "builds/<system>"
directory, where <system> stands for your OS or environment. directory, where <system> stands for your OS or environment.
6. From you own IDE, or own Makefiles
6. From you own IDE, or own Makefiles:
If you want to create your own project file, follow the instructions If you want to create your own project file, follow the instructions
given in the "INSTALL.ANY" document of this directory. given in the "INSTALL.ANY" document of this directory.
II. Custom builds of the library: II. Custom builds of the library
================================
Customizing the compilation of FreeType is easy, and allows you to select Customizing the compilation of FreeType is easy, and allows you to
only the components of the font engine that you really need. For more details select only the components of the font engine that you really need.
read the file "CUSTOMIZE" For more details read the file "CUSTOMIZE".
-------------------------------------------------------------------- ------------------------------------------------------------------------
[1] More details on: http://www.freetype.org/patents.html [1] More details on: http://www.freetype.org/patents.html
End of file [2] make++, a make tool written in Perl, has sufficient support of GNU
make extensions to build FreeType. See
http://makepp.sourceforge.net for more information.
--- end of INSTALL ---

View file

@ -1,96 +1,99 @@
Instructions on how to build FreeType with your own build tool: Instructions on how to build FreeType with your own build tool
==============================================================
see the file "CUSTOMIZE" to learn how to customize FreeType to See the file "CUSTOMIZE" to learn how to customize FreeType to specific
specific environments. environments.
follow these simple steps:
I. Normal way: I. Standard procedure
-------------- ---------------------
* DISABLE PRE-COMPILED HEADERS ! This is very important for Visual * DISABLE PRE-COMPILED HEADERS! This is very important for Visual
C++, because FreeType uses lines like: C++, because FreeType uses lines like:
#include FT_FREETYPE_H #include FT_FREETYPE_H
which are not correctly supported by this compiler, while being which are not correctly supported by this compiler while being ISO C
ISO C compliant !! compliant!
* You need to add the directories "freetype2/include" to your include * You need to add the directories "freetype2/include" to your include
path when compiling the library. path when compiling the library.
* FreeType 2 is made of several components; each one of them is * FreeType 2 is made of several components; each of them is located in
located in a subdirectory of "freetype2/src". For example, a subdirectory of "freetype2/src". For example,
'freetype2/src/truetype/' contains the TrueType font driver. 'freetype2/src/truetype/' contains the TrueType font driver.
* DO NOT COMPILE ALL C FILES! Rather, compile the following ones: * DO NOT COMPILE ALL C FILES! Rather, compile the following ones:
-- base components (required) -- base components (required)
src/base/ftsystem.c src/base/ftsystem.c
src/base/ftinit.c src/base/ftinit.c
src/base/ftdebug.c src/base/ftdebug.c
src/base/ftbase.c src/base/ftbase.c
src/base/ftglyph.c src/base/ftglyph.c
src/base/ftbbox.c src/base/ftbbox.c
src/base/ftmm.c src/base/ftmm.c
src/base/ftpfr.c -- optional, see <freetype/ftpfr.h> src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
src/base/ftbdf.c -- optional, see <freetype/ftbdf.h> src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h> src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
src/base/ftmac.c -- only on the Macintosh src/base/ftmac.c -- only on the Macintosh
-- other components are optional -- other components (optional)
src/autohint/autohint.c -- auto hinting module src/autohint/autohint.c -- auto hinting module
src/cache/ftcache.c -- cache sub-system (in beta) src/cache/ftcache.c -- cache sub-system (in beta)
src/sfnt/sfnt.c -- SFNT files support src/sfnt/sfnt.c -- SFNT files support
(TrueType & OpenType) (TrueType & OpenType)
src/cff/cff.c -- CFF/OpenType font driver src/cff/cff.c -- CFF/OpenType font driver
src/pfr/pfr.c -- PFR/TrueDoc font driver src/pfr/pfr.c -- PFR/TrueDoc font driver
src/bdf/bdf.c -- BDF font driver src/bdf/bdf.c -- BDF font driver
src/pcf/pcf.c -- PCF font driver src/pcf/pcf.c -- PCF font driver
src/psnames/psnames.c -- Postscript glyph names support src/psnames/psnames.c -- PostScript glyph names support
src/psaux/psaux.c -- Postscript Type 1 parsing src/psaux/psaux.c -- PostScript Type 1 parsing
src/truetype/truetype.c -- TrueType font driver src/truetype/truetype.c -- TrueType font driver
src/type1/type1.c -- Type 1 font driver src/type1/type1.c -- Type 1 font driver
src/cid/type1cid.c -- Type 1 CID-keyed font driver src/cid/type1cid.c -- Type 1 CID-keyed font driver
src/winfonts/winfonts.c -- Windows FONT / FNT font driver src/winfonts/winfonts.c -- Windows FONT / FNT font driver
src/raster1/raster1.c -- monochrome rasterizer src/raster1/raster1.c -- monochrome rasterizer
src/smooth/smooth.c -- anti-aliasing rasterizer src/smooth/smooth.c -- anti-aliasing rasterizer
Note: Notes:
`truetype.c' needs `sfnt.c' and `psnames.c' `truetype.c' needs `sfnt.c' and `psnames.c'
`type1.c' needs `psaux.c' and `psnames.c' `type1.c' needs `psaux.c' and `psnames.c'
`type1cid.c' needs `psaux.c' and `psnames.c' `type1cid.c' needs `psaux.c' and `psnames.c'
`cff.c' needs `sfnt.c', `psaux.c', and `psnames.c' `cff.c' needs `sfnt.c', `psaux.c', and `psnames.c'
that should be it ! in case of problems, see the archives of
the FreeType development mailing list. You are done. In case of problems, see the archives of the FreeType
development mailing list.
II. Support for flat-directory compilation II. Support for flat-directory compilation
------------------------------------------ ------------------------------------------
It is possible to put all FreeType 2 source files into a single It is possible to put all FreeType 2 source files into a single
directory, with the *exception* of the `include' hierarchy. directory, with the *exception* of the `include' hierarchy.
1. Copy all files in current directory: 1. Copy all files in current directory
cp freetype2/src/base/*.[hc] . cp freetype2/src/base/*.[hc] .
cp freetype2/src/raster1/*.[hc] . cp freetype2/src/raster1/*.[hc] .
cp freetype2/src/smooth/*.[hc] . cp freetype2/src/smooth/*.[hc] .
etc. etc.
2. Compile sources: 2. Compile sources
cc -c -Ifreetype2/include ftsystem.c cc -c -Ifreetype2/include ftsystem.c
cc -c -Ifreetype2/include ftinit.c cc -c -Ifreetype2/include ftinit.c
cc -c -Ifreetype2/include ftdebug.c cc -c -Ifreetype2/include ftdebug.c
cc -c -Ifreetype2/include ftbase.c cc -c -Ifreetype2/include ftbase.c
etc. etc.
You don't need to define the FT_FLAT_COMPILATION macro (as this was You don't need to define the FT_FLAT_COMPILATION macro (as this was
required in previous releases of FreeType 2). required in previous releases of FreeType 2).
--- end of INSTALL.ANY ---

View file

@ -1,128 +1,139 @@
This document contains instructions on how to build the FreeType library This document contains instructions how to build the FreeType library on
on non-Unix systems with the help of GNU Make. Note that if you're running non-Unix systems with the help of GNU Make. Note that if you are
Cygwin or MSys in Windows, you should follow the instructions of INSTALL.UNX running Cygwin or MSys in Windows, you should follow the instructions in
instead. the file INSTALL.UNX instead.
FreeType 2 includes a powerful and flexible build system that allows FreeType 2 includes a powerful and flexible build system that allows
you to easily compile it on a great variety of platforms from the you to easily compile it on a great variety of platforms from the
command line. To do so, just follow these simple instructions: command line. To do so, just follow these simple instructions:
a. Install GNU Make 1. Install GNU Make
-------------------
Because GNU Make is the only Make tool supported to compile Because GNU Make is the only Make tool supported to compile
FreeType 2, you should install it on your machine. FreeType 2, you should install it on your machine.
The FreeType 2 build system relies on many features special to GNU The FreeType 2 build system relies on many features special to GNU
Make -- trying to build the library with any other Make tool will Make -- trying to build the library with any other Make tool will
*fail*. *fail*.
NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO
REALLY INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM! REALLY INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
Make sure that you are invoking GNU Make from the command line, by Note that make++, a make tool written in Perl, supports enough
features of GNU make to compile FreeType. See
http://makepp.sourceforge.net for more information.
Make sure that you are invoking GNU Make from the command line, by
typing something like: typing something like:
make -v make -v
to display its version number. to display its version number.
VERSION 3.78.1 OR NEWER IS NEEDED! VERSION 3.78.1 OR NEWER IS NEEDED!
2. Invoke 'make'
----------------
b. Invoke 'make' Go to the root directory of FreeType 2, then simply invoke GNU Make
from the command line. This will launch the FreeType 2 host
Go to the root directory of FreeType 2, then simply invoke GNU platform detection routines. A summary will be displayed, for
Make from the command line. This will launch the FreeType 2 host
platform detection routines. A summary will be displayed, for
example, on Win32: example, on Win32:
============================================================== ==============================================================
FreeType build system -- automatic system detection FreeType build system -- automatic system detection
The following settings are used: The following settings are used:
platform win32 platform win32
compiler gcc compiler gcc
configuration directory ./builds/win32 configuration directory ./builds/win32
configuration rules ./builds/win32/w32-gcc.mk configuration rules ./builds/win32/w32-gcc.mk
If this does not correspond to your system or settings please If this does not correspond to your system or settings please
remove the file 'config.mk' from this directory then read the remove the file 'config.mk' from this directory then read the
INSTALL file for help. INSTALL file for help.
Otherwise, simply type 'make' again to build the library. Otherwise, simply type 'make' again to build the library.
============================================================= =============================================================
If the detected settings correspond to your platform and compiler, If the detected settings correspond to your platform and compiler,
skip to step e. Note that if your platform is completely alien to skip to step 5. Note that if your platform is completely alien to
the build system, the detected platform will be 'ansi'. the build system, the detected platform will be 'ansi'.
c. Configure the build system for a different compiler 3. Configure the build system for a different compiler
------------------------------------------------------
If the build system correctly detected your platform, but you want If the build system correctly detected your platform, but you want
to use a different compiler than the one specified in the summary to use a different compiler than the one specified in the summary
(for most platforms, gcc is the defaut compiler), invoke GNU Make (for most platforms, gcc is the defaut compiler), invoke GNU Make
with with
make setup <compiler> make setup <compiler>
For example: Examples:
to use Visual C++ on Win32, type: "make setup visualc" to use Visual C++ on Win32, type: "make setup visualc"
to use Borland C++ on Win32, type "make setup bcc32" to use Borland C++ on Win32, type "make setup bcc32"
to use Watcom C++ on Win32, type "make setup watcom" to use Watcom C++ on Win32, type "make setup watcom"
to use Intel C++ on Win32, type "make setup intelc" to use Intel C++ on Win32, type "make setup intelc"
to use LCC-Win32 on Win32, type: "make setup lcc" to use LCC-Win32 on Win32, type: "make setup lcc"
to use Watcom C++ on OS/2, type "make setup watcom" to use Watcom C++ on OS/2, type "make setup watcom"
to use VisualAge C++ on OS/2, type "make setup visualage" to use VisualAge C++ on OS/2, type "make setup visualage"
The <compiler> name to use is platform-dependent. The list of The <compiler> name to use is platform-dependent. The list of
available compilers for your system is available in the file available compilers for your system is available in the file
`builds/<system>/detect.mk' `builds/<system>/detect.mk'
If you are satisfied by the new configuration summary, skip to If you are satisfied by the new configuration summary, skip to
step e. step 5.
d. Configure the build system for an unknown platform/compiler
The auto-detection/setup phase of the build system copies a file 4. Configure the build system for an unknown platform/compiler
to the current directory under the name `config.mk'. --------------------------------------------------------------
For example, on OS/2+gcc, it would simply copy The auto-detection/setup phase of the build system copies a file to
the current directory under the name `config.mk'.
For example, on OS/2+gcc, it would simply copy
`builds/os2/os2-gcc.mk' to `./config.mk'. `builds/os2/os2-gcc.mk' to `./config.mk'.
If for some reason your platform isn't correctly detected, copy If for some reason your platform isn't correctly detected, copy
manually the configuration sub-makefile to `./config.mk' and go to manually the configuration sub-makefile to `./config.mk' and go to
step e. step 5.
Note that this file is a sub-Makefile used to specify Make Note that this file is a sub-Makefile used to specify Make variables
variables for compiler and linker invocation during the build. for compiler and linker invocation during the build. You can easily
You can easily create your own version from one of the existing create your own version from one of the existing configuration
configuration files, then copy it to the current directory under files, then copy it to the current directory under the name
the name `./config.mk'. `./config.mk'.
e. Build the library
The auto-detection/setup phase should have copied a file in the 5. Build the library
current directory, called `./config.mk'. This file contains --------------------
definitions of various Make variables used to invoke the compiler
The auto-detection/setup phase should have copied a file in the
current directory, called `./config.mk'. This file contains
definitions of various Make variables used to invoke the compiler
and linker during the build. and linker during the build.
To launch the build, simply invoke GNU Make again: The top To launch the build, simply invoke GNU Make again: The top Makefile
Makefile will detect the configuration file and run the build with will detect the configuration file and run the build with it.
it.
Final note
Final note:
the build system builds a statically linked library of the font engine The build system builds a statically linked library of the font
in the "objs" directory. It does _not_ support the build of DLLs on engine in the "objs" directory. It does _not_ support the build of
Windows and OS/2, if you need these, you'll have to either use DLLs on Windows and OS/2. If you need these, you have to either use
a IDE-specific project file, or follow the instructions in a IDE-specific project file, or follow the instructions in
"INSTALL.ANY" to create your own Makefiles. "INSTALL.ANY" to create your own Makefiles.
--- end of INSTALL.GNU ---

View file

@ -1,181 +1,64 @@
This document contains instructions on how to build the FreeType library This document contains instructions on how to build the FreeType library
on Unix systems. This also works for emulations like Cygwin or MSys on on Unix systems. This also works for emulations like Cygwin or MSys on
Win32: Win32:
I. Ensure that you are using GNU Make 1. Ensure that you are using GNU Make
------------------------------------- -------------------------------------
The FreeType build system _exclusively_ works with GNU Make. You The FreeType build system _exclusively_ works with GNU Make. You
will not be able to compile the library with the instructions will not be able to compile the library with the instructions below
below using any other alternative (including BSD Make). using any other alternative (including BSD Make).
Trying to compile the library with a different Make tool will [Well, this is not really correct. Recently, a perl implementation
print a message like: of make called `makepp' has appeared which can also build FreeType 2
successfully on Unix platforms. See http://makepp.sourceforge.net
for more details.]
Trying to compile the library with a different Make tool will print
a message like:
Sorry, GNU make is required to build FreeType2. Sorry, GNU make is required to build FreeType2.
and the build process will be aborted. If this happens, install and the build process will be aborted. If this happens, install GNU
GNU Make on your system, and use the GNUMAKE environment variable Make on your system, and use the GNUMAKE environment variable to
to name it. name it.
2. Build and install the library
--------------------------------
IV. Build and install the library The following should work on all Unix systems where the `make'
---------------------------------
The following should work on all Unix systems where the 'make'
command invokes GNU Make: command invokes GNU Make:
./configure --prefix=<yourprefix> ./configure [options]
make make
make install (as root) make install (as root)
where "<yourprefix>" must be replaced by the prefix returned by The default installation path is "/usr/local". It can be changed
the "freetype-config" command. with the `--prefix=<path>' option. Example:
When using a different command to invoke GNU Make, use the GNUMAKE ./configure --prefix=/usr
variable. For example, if `gmake' is the command to use on your
When using a different command to invoke GNU Make, use the GNUMAKE
variable. For example, if `gmake' is the command to use on your
system, do something like: system, do something like:
GNUMAKE=gmake ./configure --prefix=<yourprefix> GNUMAKE=gmake ./configure [options]
gmake gmake
gmake install (as root) gmake install (as root)
If this still doesn't work, something's rotten on your system( If this still doesn't work, something's rotten on your system
(e.g. you're using a very old version of GNU Make) (e.g. you are using a very old version of GNU Make).
It is possible to compile FreeType in a different directory.
Assuming the FreeType source files in directory `/src/freetype' a
compilation in directory `foo' works as follows:
cd foo
/src/freetype/configure [options]
make
make install
--- end of INSTALL.UNX --
I. Unix systems
---------------
If you have GNU Make installed, simply type
./configure
make
make install
on the command line to configure, build and install FreeType on your
system. Note that the default installation path is "/usr/local".
Please read the file README.UNX, it contains _critical_ information
regarding the installation of FreeType on many Unix systems.
II. From the command line
-------------------------
If you are not using Unix, there are two ways to quickly build
FreeType 2 from the command line.
The first, and favorite one, is to use the "Jam" build tool. Jam is
a highly portable replacement for Make whose control files do not
depend on the current platform or compiler toolset.
For more information, please see:
http://www.freetype.org/jam/index.html
The second one is to use "GNU Make" (and NO OTHER MAKE TOOL).
1. Building FT2 with "Jam"
--------------------------
Once you've got *our version* of the Jam tool installed on your
system, simply go to the top-level FT2 directory, then type
"jam"
on the command line. This will build the library and place it in
the "objs" directory.
By default, a static library is built. On Unix systems, it is
possible to build a shared library through the "libtool" script.
You need to have libtool installed on your system, then re-define
a few environment variables before invoking Jam, as in
export CC="libtool --mode=compile cc"
export LINK="libtool --mode=link cc"
jam
In later releases of FT2, building shared libraries with Jam
should become automatic on Unix systems.
2. Building FT2 with "GNU Make"
-------------------------------
You need to have GNU Make (version 3.78.1 or newer) installed on
your system to compile the library from the command line. This will
_NOT_ work with other make tools (including BSD make)!
[Well, this is not really correct. Recently, a perl implementation
of make called `makepp' has appeared which can also build FreeType 2
successfully on Unix platforms. See http://makepp.sourceforge.net
for more details.]
- Go to the `freetype2' directory.
- Unix (any C compiler should work):
- make setup (don't worry, this will invoke a configure script)
- make
- make install
Alternatively, you can pass parameters to the configure script
within the CFG variable, as in:
- make setup CFG="--prefix=/usr"
- make
- make install
If the configure script isn't run, try to add `unix' as a target
on the command line, e.g.:
- make setup unix CFG="--prefix=/opt/experimental"
- Windows:
We provide a version of GNU Make for Win32 on the FreeType site.
See http://www.freetype.org/download.html for details.
- gcc (Mingw, _not_ CygWin):
- make setup
- make
- Visual C++:
- make setup visualc
- make
- other compilers:
- make setup bcc32 -> Borland C++ 32 bits
- make setup intelc -> Intel C++
- make setup watcom -> Watcom C++
- make setup lcc -> Win32-LCC
If you want to build FreeType 2 in another directory, you must set
two environment variables, `OJB_DIR' and `TOP_DIR'. The former
gives the directory where the object files and the library should be
created (this directory must exist), the latter the top directory of
the FreeType 2 source tree. Example:
OBJ_DIR=~/freetype2.compiled TOP_DIR=~/freetype2 \
make -f$TOP_DIR/Makefile setup ansi
OBJ_DIR=~/freetype2.compiled TOP_DIR=~/freetype2 \
make -f$TOP_DIR/Makefile
On Unix boxes, calling `configure' from the build directory is
sufficient; it will build a small Makefile which calls the
FreeType 2 Makefile with the necessary parameters.
--- end of INSTALL --

View file

@ -1,8 +1,8 @@
How to build the freetype2 library on VMS How to build the freetype2 library on VMS
----------------------------------------- -----------------------------------------
Just type one of the following depending on the type of external entries you Just type one of the following depending on the type of external entries
want: you want:
mms mms
@ -14,22 +14,23 @@ The library is avalaible in the directory
[.LIB] [.LIB]
To compile applications using freetype2 you'll need to define the logical To compile applications using FreeType 2 you have to define the logical
FREETYPE pointing to the directory FREETYPE pointing to the directory
[.INCLUDE.FREETYPE] [.INCLUDE.FREETYPE]
(i.e., if the directory in which this README.VMS file is located is i.e., if the directory in which this INSTALL.VMS file is located is
$disk:[freetype] then define the logical with $disk:[freetype] then define the logical with
define freetype $disk:[freetype.include.freetype] define freetype $disk:[freetype.include.freetype]
This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha V7.2-1. This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha
V7.2-1.
Any problems can be reported to Any problems can be reported to
joukj@hrem.stm.tudelft.nl Jouk Jansen <joukj@hrem.stm.tudelft.nl>
Jouk Jansen --- end of INSTALL.VMS ---

View file

@ -1,13 +1,23 @@
Note that the list of known bugs for FreeType 2 is now located in the
document "docs/BUGS".
Here is a list of items that need to be addressed in FreeType 2; they are Here is a list of items that need to be addressed in FreeType 2; they are
not exactly bugs, but should be considered though: not exactly bugs, but should be considered though:
* Implement stem3/counter hints properly in the Postscript hinter. * Implement stem3/counter hints properly in the Postscript hinter.
* FInalize the cache sub-system. If has been in beta for too long :-) * Finalize the cache sub-system. It has been in beta far too long :-)
* The automatic and Postscript hinters have been improved to increase * The automatic and Postscript hinters have been improved to increase
the quality of AA text, but Monochrome and LCD hinting still suck. we the quality of AA text, but Monochrome and LCD hinting still suck. We
need to do something about that.. need to do something about that.
* Add CIDCMap support to the CID driver.
* Add track kerning support to the Type1 and PFR driver and the API
(The degree of kerning, e.g. light, normal or tight, and
the glyph size has to be passed as parameter).
* Add kerning (AFM file) support to the CID driver.
* Possibly add support for reading PFM files.
--- end of TODO ---

View file

@ -1,14 +1,14 @@
How to enable the TrueType native hinter if you need it How to enable the TrueType native hinter if you need it
-------------------------------------------------------- --------------------------------------------------------
The TrueType bytecode interpreter is disabled in all public The TrueType bytecode interpreter is disabled in all public releases
releases of the FreeType packages for patents reasons (see of the FreeType packages for patents reasons (see
http://www.freetype.org/patents.html for more details). http://www.freetype.org/patents.html for more details).
However, many Linux distributions do enable the interpreter in the However, many Linux distributions do enable the interpreter in the
FreeType packages (DEB/RPM/etc.) they produce for their platforms. FreeType packages (DEB/RPM/etc.) they produce for their platforms. If
If you are using TrueType fonts on your system, you most probably you are using TrueType fonts on your system, you most probably want to
want to enable it manually by doing the following: enable it manually by doing the following:
- open the file "include/freetype/config/ftoption.h" - open the file "include/freetype/config/ftoption.h"
@ -20,4 +20,7 @@ How to enable the TrueType native hinter if you need it
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
of course, this must be done _before_ compiling the library These steps must be done _before_ compiling the library.
--- end of TRUETYPE ---

View file

@ -2,87 +2,88 @@
SPECIAL NOTE FOR UNIX USERS SPECIAL NOTE FOR UNIX USERS
=========================== ===========================
If you are installing this release of FreeType on a system that If you are installing this release of FreeType on a system that
already uses release 2.0.5 (or even an older version), you have to already uses release 2.0.5 (or even an older version), you have to
perform a few special steps to ensure that everything goes well. perform a few special steps to ensure that everything goes well.
I. Enable the TrueType bytecode hinter if you need it 1. Enable the TrueType bytecode hinter if you need it
----------------------------------------------------- -----------------------------------------------------
See the instructions in the file "TRUETYPE" of this directory. See the instructions in the file "TRUETYPE" of this directory.
Note that FreeType supports TrueType fonts without the bytecode Note that FreeType supports TrueType fonts without the bytecode
interpreter through its auto-hinter, which now generate relatively good interpreter through its auto-hinter, which now generates relatively
results with most fonts. good results with most fonts.
II. Determine the correct installation path 2. Determine the correct installation path
-------------------------------------------- ------------------------------------------
By default, the source package will install the library in By default, the configure script will install the library in
"/usr/local". However, many Unix distributions now install the "/usr/local". However, many Unix distributions now install the
library in "/usr", since FreeType is becoming a critical system library in "/usr", since FreeType is becoming a critical system
component. component.
If FreeType is already installed on your system, type If FreeType is already installed on your system, type
freetype-config --prefix freetype-config --prefix
on the command line. This should return the installation path to on the command line. This should return the installation path
use below (e.g. "/usr" or "/usr/local"). Otherwise, simply use (e.g., "/usr" or "/usr/local"). To avoid problems of parallel
"/usr" (or what you think is adequate for your installation). FreeType versions, use this path for the --prefix option of the
configure script.
Otherwise, simply use "/usr" (or whatever you think is adequate for
your installation).
3. Ensure that you are using GNU Make
-------------------------------------
III. Ensure that you are using GNU Make The FreeType build system _exclusively_ works with GNU Make (as an
--------------------------------------- exception you can use make++ which emulates GNU Make sufficiently;
see http://makepp.sourceforge.net). You will not be able to compile
the library with the instructions below using any other alternative
(including BSD Make).
The FreeType build system _exclusively_ works with GNU Make. You Trying to compile the library with a different Make tool will print
will not be able to compile the library with the instructions a message like:
below using any other alternative (including BSD Make).
Trying to compile the library with a different Make tool will
print a message like:
Sorry, GNU make is required to build FreeType2. Sorry, GNU make is required to build FreeType2.
and the build process will be aborted. If this happens, install and the build process will be aborted. If this happens, install GNU
GNU Make on your system, and use the GNUMAKE environment variable Make on your system, and use the GNUMAKE environment variable to
to name it. name it.
4. Build and install the library
--------------------------------
IV. Build and install the library The following should work on all Unix systems where the `make'
---------------------------------
The following should work on all Unix systems where the `make'
command invokes GNU Make: command invokes GNU Make:
./configure --prefix=<yourprefix> ./configure --prefix=<yourprefix>
make make
make install (as root) make install (as root)
where "<yourprefix>" must be replaced by the prefix returned by where "<yourprefix>" must be replaced by the prefix returned by the
the "freetype-config" command. "freetype-config" command.
When using a different command to invoke GNU Make, use the GNUMAKE When using a different command to invoke GNU Make, use the GNUMAKE
variable. For example, if `gmake' is the command to use on your variable. For example, if `gmake' is the command to use on your
system, do something like: system, do something like:
GNUMAKE=gmake ./configure --prefix=<yourprefix> GNUMAKE=gmake ./configure --prefix=<yourprefix>
gmake gmake
gmake install (as root) gmake install (as root)
If this still doesn't work, read the detailed compilation
procedure available in the file "docs/BUILD" for troubleshooting.
5. Take care of XFree86 version 4
V. Take care of XFree86 version 4
--------------------------------- ---------------------------------
Certain recent Linux distributions will install _several_ versions Certain recent Linux distributions will install _several_ versions
of FreeType on your system. For example, on a fresh Mandrake 8.1 of FreeType on your system. For example, on a fresh Mandrake 8.1
system, you can find the following files: system, you can find the following files:
/usr/lib/libfreetype.so which links to /usr/lib/libfreetype.so which links to
@ -93,22 +94,21 @@ SPECIAL NOTE FOR UNIX USERS
/usr/X11R6/lib/libfreetype.so which links to /usr/X11R6/lib/libfreetype.so which links to
/usr/X11R6/lib/libfreetype.6.0.so /usr/X11R6/lib/libfreetype.6.0.so
Note that these files correspond to two distinct versions of the Note that these files correspond to two distinct versions of the
library! It seems that this surprising issue is due to the library! It seems that this surprising issue is due to the install
install scripts of recent XFree86 servers (from 4.1.0) which scripts of recent XFree86 servers (from 4.1.0) which install their
irremediably install their own (dated) version of the library in own (dated) version of the library in "/usr/X11R6/lib".
"/usr/X11R6/lib".
In certain _rare_ cases you may experience minor problems if you In certain _rare_ cases you may experience minor problems if you
install this release of the library in "/usr" only, namely, that install this release of the library in "/usr" only, namely, that
certain applications will not benefit from the bug fixes and certain applications will not benefit from the bug fixes and
rendering improvements you'd expect. rendering improvements you would expect.
There are two good ways to deal with this situation: There are two good ways to deal with this situation:
- Install the library _twice_, in "/usr" and in "/usr/X11R6" - Install the library _twice_, in "/usr" and in "/usr/X11R6" (you
(you have to do that each time you install a new FreeType have to do that each time you install a new FreeType release
release though). though).
- Change the link in /usr/X11R6/lib/libfreetype.so to point to - Change the link in /usr/X11R6/lib/libfreetype.so to point to
@ -118,7 +118,10 @@ SPECIAL NOTE FOR UNIX USERS
/usr/X11R6/lib/libfreetype.6.0.so /usr/X11R6/lib/libfreetype.6.0.so
The FreeType Team is not responsible for this problem, so please The FreeType Team is not responsible for this problem, so please
contact either the XFree86 development team or your Linux contact either the XFree86 development team or your Linux
distributor to help clear this issue in case the information given distributor to help clear this issue in case the information given
here doesn't help. here doesn't help.
---- end of UPGRADE.UNX ---

View file

@ -1,90 +1,104 @@
Due to our use of "libtool" to generate and install the FreeType 2 libraries Due to our use of "libtool" to generate and install the FreeType 2
on Unix systems, as well as other historical events, it is generally very libraries on Unix systems, as well as other historical events, it is
difficult to know precisely which release of the font engine is installed generally very difficult to know precisely which release of the font
on a given system. engine is installed on a given system.
This file tries to explain why and to document ways to properly detect This file tries to explain why and to document ways to properly detect
FreeType on Unix. FreeType on Unix.
I. Version & Release numbers: 1. Version & Release numbers
----------------------------
For each new public release of FreeType 2, there are generally *three* For each new public release of FreeType 2, there are generally *three*
distinct "version" numbers to consider: distinct "version" numbers to consider:
* the official FT2 release number, like 2.0.9, or 2.1.3 * The official FT2 release number, like 2.0.9, or 2.1.3.
* the libtool (and Unix) specific version number, like "9.2.3". This * The libtool (and Unix) specific version number, like "9.2.3". This
is what "freetype-config --version" will return is what "freetype-config --version" will return.
* the platform-specific shared object number, used for example when * The platform-specific shared object number, used for example when
the library is installed as "/usr/lib/libfreetype.so.6.3.2" the library is installed as "/usr/lib/libfreetype.so.6.3.2".
The platform-specific number is, unsurprisingly, platform-specific and
varies with the operating system you are using (several variants of
Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even
for simple tests.
the platform-specific number is, unsurprisingly, platform-specific and varies The libtool-specific number does not equal the release number but is
with the operating system you're using (several variants of Linux, FreeBSD, tied to it.
Solaris, etc...). You should thus _never_ use it, even for simple tests.
the libtool-specific number does not equal the release number but is tied The release number is available at *compile* time through the following
to it.
the release number is available at *compile* time through the following
macros defined in FT_FREETYPE_H: macros defined in FT_FREETYPE_H:
- FREETYPE_MAJOR : major release number - FREETYPE_MAJOR : major release number
- FREETYPE_MINOR : minor release number - FREETYPE_MINOR : minor release number
- FREETYPE_PATCH : patch release number - FREETYPE_PATCH : patch release number
see below for some Autoconf fragment to See below for a small autoconf fragment.
The release number is also available at *runtime* through the
"FT_Library_Version" API. Unfortunately, this one wasn't available or
working correctly before the 2.1.3 official release.
the release number is also available at *runtime* through the 2. History
"FT_Library_Version" API. Unfortunately, this one wasn't available or ----------
working correctly before the 2.1.3 official release !!
The following table gives, for each official release, the corresponding
libtool number, as well as the shared object number found on _most_
systems, but not all of them:
release libtool so
--------------------------------------------------------------------
2.1.5 9.4.3 6.3.4
2.1.4 9.3.3 6.3.3
2.1.3 9.2.3 6.3.2
2.1.2 9.1.3 6.3.1
2.1.1 9.0.3 ?
2.1.0 8.0.2 ?
2.0.9 9.0.3 ?
2.0.8 8.0.2 ?
The libtool numbers are a bit inconsistent due to the library's history:
- 2.1.0 was created as a development branch from 2.0.8 (hence the same
libtool numbers).
- 2.0.9 was a bug-fix release of the "stable" branch, and we
incorrectly increased its libtool number.
- 2.1.4 is still in the "development" branch, however it is stable
enough to be the basis of an upcoming 2.2.0 release.
II. Table: 3. Autoconf Code Fragment
-------------------------
the following is a simple table that gives, for each official release, Lars Clausen contributed the following autoconf fragment to detect which
the corresponding libtool number, as well as the shared object number version of FreeType is installed on a system. This one tests for a
found on _most_ systems, but not all of them: version that is at least 2.0.9; you should change it to check against
other release numbers.
release libtool so
-------------------------------------
2.1.4 9.3.3 6.3.3
2.1.3 9.2.3 6.3.2
2.1.2 9.1.3 6.3.1
2.1.1 9.0.3 ?
2.1.0 8.0.2 ?
2.0.9 9.0.3 ?
2.0.8 8.0.2 ?
the libtool numbers are a bit inconsistent due to the library's history:
- 2.1.0 was created as a development branch from 2.0.8
(hence the same libtool numbers)
- 2.0.9 was a bug-fix release of the "stable" branch, we
apparently incorrectly increased its libtool number
- 2.1.4 is still in the "development" branch, however it's stable enough
to be the basis of an upcoming 2.2.0 release
AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
old_CPPFLAGS="$CPPFLAGS"
CPPFLAGS=`freetype-config --cflags`
AC_TRY_CPP([
#include <freetype/freetype.h>
#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
#error Freetype version too low.
#endif
],[
AC_MSG_RESULT(yes)
FREETYPE_LIBS=`freetype-config --libs`
AC_SUBST(FREETYPE_LIBS)
AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
CPPFLAGS="$old_CPPFLAGS"
],[
AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])
])
III. AutoConf Code Fragment:
Lars Clausen contributed the following Autoconf fragment to detect at
which version of FreeType is installed on your system. This one tests
for a version that is at least 2.0.9, you should change the last line to
check against other release numbers.
AC_MSG_CHECKING([for version of FreeType])
FREETYPE_INCLUDE=`freetype-config --cflags | cut -c3-`
FREETYPE_MAJOR=`grep '^#define FREETYPE_MAJOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
FREETYPE_MINOR=`grep '^#define FREETYPE_MINOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
FREETYPE_PATCH=`grep '^#define FREETYPE_PATCH' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
FREETYPE_VERSION=`echo | awk "BEGIN { printf \"%d\", ($FREETYPE_MAJOR * 1000 + $FREETYPE_MINOR) * 1000 + $FREETYPE_PATCH;}"`
AC_MSG_RESULT([$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH])
if test "$FREETYPE_VERSION" -ge 2000009; then
--- end of VERSION.DLL ---

View file

@ -1,28 +1,25 @@
The FreeType 2 font engine is copyrighted work, and cannot be The FreeType 2 font engine is copyrighted work and cannot be used
used legally without a software license. In order to make this legally without a software license. In order to make this project
project usable to a vast majority of developers, we distribute it usable to a vast majority of developers, we distribute it under two
under two dual licenses. mutually exclusive licenses.
What this means is that *you* must choose *one* license among those This means that *you* must choose *one* license of the two described
described below, then obey all its terms and conditions when using below, then obey all its terms and conditions when using FreeType 2 in
FreeType 2 in any of your projects or products: any of your projects or products.
- The FreeType License, found in the file "FTL.TXT", which is an
BSD-style open-source license *with* an advertising clause that
forces you to explicitely cite the FreeType project in your
product's documentation. All details are in the license file.
- The GNU General Public License, found in "GPL.TXT", which is the
traditionnal and "viral" GPL license that forces you to redistribute
the _complete_ sources of all your products that use FreeType 2.
Note that the contributed PCF driver comes with a license similar to
that of X Window System which is compatible to the above two licenses
(see file src/pcf/readme).
- The FreeType License, found in the file "FTL.TXT", which is --- end of licence.txt ---
an BSD-style open-source license *with* an advertising
clause that forces you to explicitely cite the
FreeType project in your product's documentation. All
details are in the license file
- The GNU General Public License, found in "GPL.TXT", which is
the traditionnal and "viral" GPL license, that
forces you to redistribute the _complete_ sources of all
your products that simply use FreeType 2.
Note that the contributed PCF driver comes with a license similar to
that of X Window System which is compatible to the above two
licenses (see file src/pcf/readme).

View file

@ -0,0 +1,2 @@
After saying `make refdoc' this directory contains the FreeType API
reference. You need python to make this target.

View file

@ -0,0 +1,18 @@
How to prepare a new release
----------------------------
. include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR, and
FREETYPE_PATCH.
. builds/unix/configure.ac (version_info): Update according to the libtool
rules, then regenerate the configure script.
. builds/freetype.mk (refdoc): Update the --title option.
. docs/CHANGES: Document differences to last release.
. README: Update.
. docs/VERSION.DLL: Document changed version_info.
. ChangeLog: Announce new release.

View file

@ -97,7 +97,6 @@ FT_Select_Charmap
FT_Set_Char_Size FT_Set_Char_Size
FT_Set_Charmap FT_Set_Charmap
FT_Set_Debug_Hook FT_Set_Debug_Hook
FT_Set_Hint_Flags
FT_Set_Pixel_Sizes FT_Set_Pixel_Sizes
FT_Set_Renderer FT_Set_Renderer
FT_Set_Transform FT_Set_Transform
@ -245,9 +244,7 @@ t1_cmap_expert_class_rec
t1_cmap_standard_class_rec t1_cmap_standard_class_rec
t1_cmap_unicode_class_rec t1_cmap_unicode_class_rec
t1_decoder_funcs t1_decoder_funcs
ps1_hints_apply ps_hints_apply
ps2_hints_apply
ps3_hints_apply
pshinter_module_class pshinter_module_class
psnames_module_class psnames_module_class
ft_raster1_renderer_class ft_raster1_renderer_class

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType charmap cache (specification). */ /* FreeType charmap cache (specification). */
/* */ /* */
/* Copyright 2000-2001 by */ /* Copyright 2000-2001, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -36,7 +36,7 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* @type: */ /* @type: */
/* FTC_CmapCache */ /* FTC_CMapCache */
/* */ /* */
/* @description: */ /* @description: */
/* An opaque handle used to manager a charmap cache. This cache is */ /* An opaque handle used to manager a charmap cache. This cache is */
@ -54,8 +54,8 @@ FT_BEGIN_HEADER
/* A handle to an @FTC_CMapDescRec structure used to describe a given */ /* A handle to an @FTC_CMapDescRec structure used to describe a given */
/* charmap in a charmap cache. */ /* charmap in a charmap cache. */
/* */ /* */
/* Each @FTC_CMapDesc describes which charmap (of which @FTC_Face) we */ /* Each @FTC_CMapDesc describes which charmap (of which @FTC_FaceID) */
/* want to use in @FTC_CMapCache_Lookup. */ /* we want to use in @FTC_CMapCache_Lookup. */
/* */ /* */
typedef struct FTC_CMapDescRec_* FTC_CMapDesc; typedef struct FTC_CMapDescRec_* FTC_CMapDesc;
@ -66,8 +66,8 @@ FT_BEGIN_HEADER
/* FTC_CMapType */ /* FTC_CMapType */
/* */ /* */
/* @description: */ /* @description: */
/* The list of valid @FTC_CMap types. They indicate how we want to */ /* The list of valid @FTC_CMapDesc types. They indicate how we want */
/* address a charmap within an @FTC_FaceID. */ /* to address a charmap within an @FTC_FaceID. */
/* */ /* */
/* @values: */ /* @values: */
/* FTC_CMAP_BY_INDEX :: */ /* FTC_CMAP_BY_INDEX :: */

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType abstract glyph cache (specification). */ /* FreeType abstract glyph cache (specification). */
/* */ /* */
/* Copyright 2000-2001 by */ /* Copyright 2000-2001, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -120,10 +120,10 @@ FT_BEGIN_HEADER
FTC_GLYPH_FAMILY( gfam )->item_count ) FTC_GLYPH_FAMILY( gfam )->item_count )
/* compute a glyph request's hash value */ /* compute a glyph request's hash value */
#define FTC_GLYPH_FAMILY_HASH( gfam, gindex ) \ #define FTC_GLYPH_FAMILY_HASH( gfam, gindex ) \
( (FT_UFast)( \ ( (FT_UFast)( \
( FTC_GLYPH_FAMILY( gfam )->hash << 16 ) | \ ( FTC_GLYPH_FAMILY( gfam )->hash << 16 ) | \
( FTC_GLYPH_FAMILY_CHUNK( gfam, gindex ) & 0xFFFF ) ) ) ( FTC_GLYPH_FAMILY_CHUNK( gfam, gindex ) & 0xFFFFU ) ) )
/* must be called in an FTC_Family_CompareFunc to update the query */ /* must be called in an FTC_Family_CompareFunc to update the query */
/* whenever a glyph set is matched in the lookup, or when it */ /* whenever a glyph set is matched in the lookup, or when it */
@ -138,8 +138,8 @@ FT_BEGIN_HEADER
} while ( 0 ) } while ( 0 )
/* retrieve glyph index of glyph node */ /* retrieve glyph index of glyph node */
#define FTC_GLYPH_NODE_GINDEX( x ) \ #define FTC_GLYPH_NODE_GINDEX( x ) \
( (FT_UInt)( FTC_GLYPH_NODE( x )->node.hash & 0xFFFF ) ) ( (FT_UInt)( FTC_GLYPH_NODE( x )->node.hash & 0xFFFFU ) )
/*************************************************************************/ /*************************************************************************/

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType Image cache (specification). */ /* FreeType Image cache (specification). */
/* */ /* */
/* Copyright 2000-2001, 2002 by */ /* Copyright 2000-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -202,18 +202,19 @@ FT_BEGIN_HEADER
/* scaled outline */ /* scaled outline */
#define ftc_image_outline ftc_image_format_outline #define ftc_image_outline ftc_image_format_outline
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* <Struct> */ /* <Struct> */
/* FTC_Image_Desc */ /* FTC_Image_Desc */
/* */ /* */
/* <Description> */ /* <Description> */
/* THIS TYPE IS DEPRECATED. Use @FTC_ImageDesc instead. */ /* THIS TYPE IS DEPRECATED. Use @FTC_ImageTypeRec instead. */
/* */ /* */
/* A simple structure used to describe a given glyph image category. */ /* A simple structure used to describe a given glyph image category. */
/* */ /* */
/* <Fields> */ /* <Fields> */
/* size :: An @FTC_SizeRec used to describe the glyph's face */ /* font :: An @FTC_FontRec used to describe the glyph's face */
/* and size. */ /* and size. */
/* */ /* */
/* image_type :: The glyph image's type. */ /* image_type :: The glyph image's type. */

View file

@ -4,7 +4,7 @@
/* */ /* */
/* ANSI-specific configuration file (specification only). */ /* ANSI-specific configuration file (specification only). */
/* */ /* */
/* Copyright 1996-2001, 2002 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -108,7 +108,8 @@ FT_BEGIN_HEADER
/* This is the only necessary change, so it is defined here instead */ /* This is the only necessary change, so it is defined here instead */
/* providing a new configuration file. */ /* providing a new configuration file. */
/* */ /* */
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) #if ( defined( __APPLE__ ) && !defined( DARWIN_NO_CARBON ) ) || \
( defined( __MWERKS__ ) && defined( macintosh ) )
#define FT_MACINTOSH 1 #define FT_MACINTOSH 1
#endif #endif
@ -177,10 +178,10 @@ FT_BEGIN_HEADER
/* Watcom doesn't provide 64-bit data types */ /* Watcom doesn't provide 64-bit data types */
#elif defined( __MWKS__ ) /* Metrowerks CodeWarrior */ #elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
/* I don't know if it provides 64-bit data types, any suggestion */ #define FT_LONG64
/* is welcome. */ #define FT_INT64 long long int
#elif defined( __GNUC__ ) #elif defined( __GNUC__ )

View file

@ -509,7 +509,7 @@
/* */ /* */
#define FT_TRIGONOMETRY_H <freetype/fttrigon.h> #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
#define FT_STROKER_H <freetype/ftstroker.h> #define FT_STROKER_H <freetype/ftstroke.h>
#define FT_SYNTHESIS_H <freetype/ftsynth.h> #define FT_SYNTHESIS_H <freetype/ftsynth.h>
#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
@ -523,6 +523,8 @@
#define FT_INCREMENTAL_H <freetype/ftincrem.h> #define FT_INCREMENTAL_H <freetype/ftincrem.h>
#define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
/* now include internal headers definitions from <freetype/internal/...> */ /* now include internal headers definitions from <freetype/internal/...> */
#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>

View file

@ -4,7 +4,7 @@
/* */ /* */
/* User-selectable configuration macros (specification only). */ /* User-selectable configuration macros (specification only). */
/* */ /* */
/* Copyright 1996-2001, 2002 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -81,16 +81,16 @@ FT_BEGIN_HEADER
/* by FreeType to speed up some computations. However, this will create */ /* by FreeType to speed up some computations. However, this will create */
/* some problems when compiling the library in strict ANSI mode. */ /* some problems when compiling the library in strict ANSI mode. */
/* */ /* */
/* For this reason, the use of 64-bit ints is normally disabled when */ /* For this reason, the use of 64-bit integers is normally disabled when */
/* the __STDC__ macro is defined. You can however disable this by */ /* the __STDC__ macro is defined. You can however disable this by */
/* defining here the macro FT_CONFIG_OPTION_FORCE_INT64. */ /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */
/* */ /* */
/* For most compilers, this will only create compilation warnings */ /* For most compilers, this will only create compilation warnings when */
/* when building the library. */ /* building the library. */
/* */ /* */
/* ObNote: The compiler-specific 64-bit integers are detected in the */ /* ObNote: The compiler-specific 64-bit integers are detected in the */
/* file "ftconfig.h" either statically, or through Autoconf */ /* file "ftconfig.h" either statically or through the */
/* on platforms that support it. */ /* `configure' script on supported platforms. */
/* */ /* */
#undef FT_CONFIG_OPTION_FORCE_INT64 #undef FT_CONFIG_OPTION_FORCE_INT64
@ -100,11 +100,11 @@ FT_BEGIN_HEADER
/* Gzip-compressed file support. */ /* Gzip-compressed file support. */
/* */ /* */
/* FreeType now handles font files that have been compressed with the */ /* FreeType now handles font files that have been compressed with the */
/* 'gzip' program. This is mostly used to parse many of the PCF files */ /* 'gzip' program. This is mostly used to parse many of the PCF files */
/* that come with XFree86. The implementation uses 'zlib' to */ /* that come with XFree86. The implementation uses `zlib' to */
/* partially uncompress the file on the fly (see src/base/ftgzip.c). */ /* partially uncompress the file on the fly (see src/base/ftgzip.c). */
/* */ /* */
/* Define this macro if you want to enable this "feature". Note that */ /* Define this macro if you want to enable this "feature". Note that */
/* this will however force you to link the zlib to any program that */ /* this will however force you to link the zlib to any program that */
/* also uses FreeType. */ /* also uses FreeType. */
/* */ /* */
@ -117,17 +117,17 @@ FT_BEGIN_HEADER
/* */ /* */
/* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */
/* It allows FreeType's "ftgzip" component to link to the system's */ /* It allows FreeType's "ftgzip" component to link to the system's */
/* installation of the ZLib library. This is useful on systems like */ /* installation of the ZLib library. This is useful on systems like */
/* Unix or VMS where it generally is already available. */ /* Unix or VMS where it generally is already available. */
/* */ /* */
/* If you let it undefined, the component will use its own copy */ /* If you let it undefined, the component will use its own copy */
/* of the zlib sources instead. These have been modified to be */ /* of the zlib sources instead. These have been modified to be */
/* included directly within the component and *not* export external */ /* included directly within the component and *not* export external */
/* function names. This allows you to link any program with FreeType */ /* function names. This allows you to link any program with FreeType */
/* _and_ ZLib without linking conflicts. */ /* _and_ ZLib without linking conflicts. */
/* */ /* */
/* do not #undef this macro here, since the build system might */ /* Do not #undef this macro here since the build system might define */
/* define for certain configurations */ /* it for certain configurations only. */
/* */ /* */
/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ /* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
@ -167,6 +167,9 @@ FT_BEGIN_HEADER
/* will be later automatically defined as `extern return_type' to */ /* will be later automatically defined as `extern return_type' to */
/* allow normal compilation. */ /* allow normal compilation. */
/* */ /* */
/* Do not #undef these macros here since the build system might define */
/* them for certain configurations only. */
/* */
/* #define FT_EXPORT(x) extern x */ /* #define FT_EXPORT(x) extern x */
/* #define FT_EXPORT_DEF(x) x */ /* #define FT_EXPORT_DEF(x) x */
@ -214,6 +217,19 @@ FT_BEGIN_HEADER
#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST #define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
/*************************************************************************/
/* */
/* Support for Mac fonts */
/* */
/* Define this macro if you want support for outline fonts in Mac */
/* format (mac dfont, mac resource, macbinary containing a mac */
/* resource) on non-Mac platforms. */
/* */
/* Note that the `FOND' resource isn't checked. */
/* */
#define FT_CONFIG_OPTION_MAC_FONTS
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* Allow the use of FT_Incremental_Interface to load typefaces that */ /* Allow the use of FT_Incremental_Interface to load typefaces that */
@ -221,7 +237,7 @@ FT_BEGIN_HEADER
/* This allows FreeType to be used with the PostScript language, using */ /* This allows FreeType to be used with the PostScript language, using */
/* the GhostScript interpreter. */ /* the GhostScript interpreter. */
/* */ /* */
/* #define FT_CONFIG_OPTION_INCREMENTAL */ /* #define FT_CONFIG_OPTION_INCREMENTAL */
/*************************************************************************/ /*************************************************************************/
@ -229,7 +245,7 @@ FT_BEGIN_HEADER
/* The size in bytes of the render pool used by the scan-line converter */ /* The size in bytes of the render pool used by the scan-line converter */
/* to do all of its work. */ /* to do all of its work. */
/* */ /* */
/* This must be greater than 4kByte. */ /* This must be greater than 4KByte. */
/* */ /* */
#define FT_RENDER_POOL_SIZE 16384L #define FT_RENDER_POOL_SIZE 16384L
@ -258,8 +274,11 @@ FT_BEGIN_HEADER
/* */ /* */
/* Don't define any of these macros to compile in `release' mode! */ /* Don't define any of these macros to compile in `release' mode! */
/* */ /* */
/* #define FT_DEBUG_LEVEL_ERROR */ /* Do not #undef these macros here since the build system might define */
/* #define FT_DEBUG_LEVEL_TRACE */ /* them for certain configurations only. */
/* */
/* #define FT_DEBUG_LEVEL_ERROR */
/* #define FT_DEBUG_LEVEL_TRACE */
/*************************************************************************/ /*************************************************************************/
@ -272,10 +291,12 @@ FT_BEGIN_HEADER
/* should define FT_DEBUG_MEMORY here. */ /* should define FT_DEBUG_MEMORY here. */
/* */ /* */
/* Note that the memory debugger is only activated at runtime when */ /* Note that the memory debugger is only activated at runtime when */
/* when the _environment_ variable "FT_DEBUG_MEMORY" is also defined! */ /* when the _environment_ variable "FT2_DEBUG_MEMORY" is defined also! */
/* */ /* */
/* #define FT_DEBUG_MEMORY */ /* Do not #undef this macro here since the build system might define */
/* it for certain configurations only. */
/* */
/* #define FT_DEBUG_MEMORY */
/*************************************************************************/ /*************************************************************************/
@ -375,12 +396,27 @@ FT_BEGIN_HEADER
/* By undefining this, you will only compile the code necessary to load */ /* By undefining this, you will only compile the code necessary to load */
/* TrueType glyphs without hinting. */ /* TrueType glyphs without hinting. */
/* */ /* */
/* do not #undef this macro here, since the build system might */ /* Do not #undef this macro here, since the build system might */
/* define for certain configurations */ /* define it for certain configurations only. */
/* */ /* */
/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ /* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to */
/* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented */
/* work-around hinting system. Note that for the moment, the algorithm */
/* is only used when selected at runtime through the parameter tag */
/* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */
/* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally actived */
/* */
/* XXX: WARNING: THIS DOESN'T WORK AS ADVERTISED YET. PLEASE DO NOT */
/* DEFINE FOR THE MOMENT.. */
/* */
/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */ /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */
@ -470,21 +506,21 @@ FT_BEGIN_HEADER
/* */ /* */
/* /*
* the FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent * The FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent
* improvements to the auto-hinter contributed by David Chester. They will * improvements to the auto-hinter contributed by David Chester. They will
* most likely disappear completely in the next release. For now, you should * most likely disappear completely in the next release. For now, you
* always keep them defined * should always keep them defined.
* *
*/ */
#define FT_CONFIG_OPTION_CHESTER_HINTS #define FT_CONFIG_OPTION_CHESTER_HINTS
#ifdef FT_CONFIG_OPTION_CHESTER_HINTS #ifdef FT_CONFIG_OPTION_CHESTER_HINTS
# define FT_CONFIG_CHESTER_SMALL_F #define FT_CONFIG_CHESTER_SMALL_F
# define FT_CONFIG_CHESTER_ASCENDER #define FT_CONFIG_CHESTER_ASCENDER
# define FT_CONFIG_CHESTER_SERIF #define FT_CONFIG_CHESTER_SERIF
# define FT_CONFIG_CHESTER_STEM #define FT_CONFIG_CHESTER_STEM
# define FT_CONFIG_CHESTER_BLUE_SCALE #define FT_CONFIG_CHESTER_BLUE_SCALE
#endif /* FT_CONFIG_OPTION_CHESTER_HINTS */ #endif /* FT_CONFIG_OPTION_CHESTER_HINTS */

View file

@ -82,6 +82,7 @@
#include <string.h> #include <string.h>
#define ft_strlen strlen #define ft_strlen strlen
#define ft_strcat strcat
#define ft_strcmp strcmp #define ft_strcmp strcmp
#define ft_strncmp strncmp #define ft_strncmp strncmp
#define ft_memcpy memcpy #define ft_memcpy memcpy

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType high-level API and common types (specification only). */ /* FreeType high-level API and common types (specification only). */
/* */ /* */
/* Copyright 1996-2001, 2002 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -35,7 +35,7 @@
/* */ /* */
#define FREETYPE_MAJOR 2 #define FREETYPE_MAJOR 2
#define FREETYPE_MINOR 1 #define FREETYPE_MINOR 1
#define FREETYPE_PATCH 4 #define FREETYPE_PATCH 5
#include <ft2build.h> #include <ft2build.h>
@ -113,7 +113,6 @@ FT_BEGIN_HEADER
/* FT_New_Memory_Face */ /* FT_New_Memory_Face */
/* FT_Open_Face */ /* FT_Open_Face */
/* FT_Open_Args */ /* FT_Open_Args */
/* FT_Open_Flags */
/* FT_Parameter */ /* FT_Parameter */
/* FT_Attach_File */ /* FT_Attach_File */
/* FT_Attach_Stream */ /* FT_Attach_Stream */
@ -126,6 +125,12 @@ FT_BEGIN_HEADER
/* FT_Get_Name_Index */ /* FT_Get_Name_Index */
/* FT_Load_Char */ /* FT_Load_Char */
/* */ /* */
/* FT_OPEN_MEMORY */
/* FT_OPEN_STREAM */
/* FT_OPEN_PATHNAME */
/* FT_OPEN_DRIVER */
/* FT_OPEN_PARAMS */
/* */
/* FT_LOAD_DEFAULT */ /* FT_LOAD_DEFAULT */
/* FT_LOAD_RENDER */ /* FT_LOAD_RENDER */
/* FT_LOAD_MONOCHROME */ /* FT_LOAD_MONOCHROME */
@ -142,6 +147,12 @@ FT_BEGIN_HEADER
/* FT_LOAD_NO_RECURSE */ /* FT_LOAD_NO_RECURSE */
/* FT_LOAD_PEDANTIC */ /* FT_LOAD_PEDANTIC */
/* */ /* */
/* FT_LOAD_TARGET_NORMAL */
/* FT_LOAD_TARGET_LIGHT */
/* FT_LOAD_TARGET_MONO */
/* FT_LOAD_TARGET_LCD */
/* FT_LOAD_TARGET_LCD_V */
/* */
/* FT_Render_Glyph */ /* FT_Render_Glyph */
/* FT_Render_Mode */ /* FT_Render_Mode */
/* FT_Get_Kerning */ /* FT_Get_Kerning */
@ -162,9 +173,10 @@ FT_BEGIN_HEADER
/* FT_Glyph_Metrics */ /* FT_Glyph_Metrics */
/* */ /* */
/* <Description> */ /* <Description> */
/* A structure used to model the metrics of a single glyph. Note */ /* A structure used to model the metrics of a single glyph. The */
/* that values are expressed in 26.6 fractional pixel format or in */ /* values are expressed in 26.6 fractional pixel format; if the flag */
/* font units, depending on context. */ /* FT_LOAD_NO_SCALE is used, values are returned in font units */
/* instead. */
/* */ /* */
/* <Fields> */ /* <Fields> */
/* width :: The glyph's width. */ /* width :: The glyph's width. */
@ -205,21 +217,62 @@ FT_BEGIN_HEADER
/* FT_Bitmap_Size */ /* FT_Bitmap_Size */
/* */ /* */
/* <Description> */ /* <Description> */
/* An extremely simple structure used to model the size of a bitmap */ /* This structure models the size of a bitmap strike (i.e., a bitmap */
/* strike (i.e., a bitmap instance of the font for a given */ /* instance of the font for a given resolution) in a fixed-size font */
/* resolution) in a fixed-size font face. This is used for the */ /* face. It is used for the `available_sizes' field of the */
/* `available_sizes' field of the FT_Face_Properties structure. */ /* @FT_FaceRec structure. */
/* */ /* */
/* <Fields> */ /* <Fields> */
/* height :: The character height in pixels. */ /* height :: The (vertical) baseline-to-baseline distance in pixels. */
/* It makes most sense to define the height of a bitmap */
/* font in this way. */
/* */ /* */
/* width :: The character width in pixels. */ /* width :: The average width of the font (in pixels). Since the */
/* algorithms to compute this value are different for the */
/* various bitmap formats, it can only give an additional */
/* hint if the `height' value isn't sufficient to select */
/* the proper font. For monospaced fonts the average width */
/* is the same as the maximum width. */
/* */
/* size :: The point size in 26.6 fractional format this font shall */
/* represent (for a given vertical resolution). */
/* */
/* x_ppem :: The horizontal ppem value (in 26.6 fractional format). */
/* */
/* y_ppem :: The vertical ppem value (in 26.6 fractional format). */
/* */
/* <Note> */
/* The values in this structure are taken from the bitmap font. If */
/* the font doesn't provide a parameter it is set to zero to indicate */
/* that the information is not available. */
/* */
/* The following formula converts from dpi to ppem: */
/* */
/* ppem = size * dpi / 72 */
/* */
/* where `size' is in points. */
/* */
/* Windows FNT: */
/* The `size', `x_ppem', and `y_ppem' parameters are not reliable: */
/* There exist fonts (e.g. app850.fon) which have a wrong size for */
/* some subfonts; since FNT files don't contain ppem but dpi values */
/* the computed x_ppem and y_ppem numbers are thus wrong also. */
/* */
/* TrueType embedded bitmaps: */
/* `size', `width', and `height' values are not contained in the */
/* bitmap strike itself. They are computed from the global font */
/* parameters. */
/* */ /* */
typedef struct FT_Bitmap_Size_ typedef struct FT_Bitmap_Size_
{ {
FT_Short height; FT_Short height;
FT_Short width; FT_Short width;
FT_Pos size;
FT_Pos x_ppem;
FT_Pos y_ppem;
} FT_Bitmap_Size; } FT_Bitmap_Size;
@ -386,6 +439,10 @@ FT_BEGIN_HEADER
/* @FT_Open_Face), the library looks for a Unicode charmap within */ /* @FT_Open_Face), the library looks for a Unicode charmap within */
/* the list and automatically activates it. */ /* the list and automatically activates it. */
/* */ /* */
/* <Also> */
/* The @FT_CharMapRec details the publicly accessible fields of a */
/* given character map. */
/* */
typedef struct FT_CharMapRec_* FT_CharMap; typedef struct FT_CharMapRec_* FT_CharMap;
@ -452,30 +509,28 @@ FT_BEGIN_HEADER
/* mathematical symbols in the 32..255 character code range. For */ /* mathematical symbols in the 32..255 character code range. For */
/* more information, see `http://www.ceviz.net/symbol.htm'. */ /* more information, see `http://www.ceviz.net/symbol.htm'. */
/* */ /* */
/* FT_ENCODING_MS_SJIS :: */ /* FT_ENCODING_SJIS :: */
/* Corresponds to Microsoft's Japanese SJIS encoding. More info */ /* Corresponds to Japanese SJIS encoding. More info at */
/* at `http://langsupport.japanreference.com/encoding.shtml'. */ /* at `http://langsupport.japanreference.com/encoding.shtml'. */
/* See note on multi-byte encodings below. */ /* See note on multi-byte encodings below. */
/* */ /* */
/* FT_ENCODING_MS_GB2312 :: */ /* FT_ENCODING_GB2312 :: */
/* Corresponds to the encoding system for Simplified Chinese, as */ /* Corresponds to an encoding system for Simplified Chinese as used */
/* used in China. Only found in some TrueType fonts. */ /* used in mainland China. */
/* */ /* */
/* FT_ENCODING_MS_BIG5 :: */ /* FT_ENCODING_BIG5 :: */
/* Corresponds to the encoding system for Traditional Chinese, as */ /* Corresponds to an encoding system for Traditional Chinese as used */
/* used in Taiwan and Hong Kong. Only found in some TrueType fonts. */ /* in Taiwan and Hong Kong. */
/* */ /* */
/* FT_ENCODING_MS_WANSUNG :: */ /* FT_ENCODING_WANSUNG :: */
/* Corresponds to the Korean encoding system known as Wansung. */ /* Corresponds to the Korean encoding system known as Wansung. */
/* This is a Microsoft encoding that is only found in some TrueType */ /* For more information see */
/* fonts. For more information, see */
/* `http://www.microsoft.com/typography/unicode/949.txt'. */ /* `http://www.microsoft.com/typography/unicode/949.txt'. */
/* */ /* */
/* FT_ENCODING_MS_JOHAB :: */ /* FT_ENCODING_JOHAB :: */
/* The Korean standard character set (KS C-5601-1992), which */ /* The Korean standard character set (KS C-5601-1992), which */
/* corresponds to Windows code page 1361. This character set */ /* corresponds to MS Windows code page 1361. This character set */
/* includes all possible Hangeul character combinations. */ /* includes all possible Hangeul character combinations. */
/* Only found on some rare TrueType fonts. */
/* */ /* */
/* FT_ENCODING_ADOBE_LATIN_1 :: */ /* FT_ENCODING_ADOBE_LATIN_1 :: */
/* Corresponds to a Latin-1 encoding as defined in a Type 1 */ /* Corresponds to a Latin-1 encoding as defined in a Type 1 */
@ -483,7 +538,7 @@ FT_BEGIN_HEADER
/* */ /* */
/* FT_ENCODING_ADOBE_STANDARD :: */ /* FT_ENCODING_ADOBE_STANDARD :: */
/* Corresponds to the Adobe Standard encoding, as found in Type 1, */ /* Corresponds to the Adobe Standard encoding, as found in Type 1, */
/* CFF, and OpenType/CFF fonts. It is limited to 256character */ /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
/* codes. */ /* codes. */
/* */ /* */
/* FT_ENCODING_ADOBE_EXPERT :: */ /* FT_ENCODING_ADOBE_EXPERT :: */
@ -504,6 +559,21 @@ FT_BEGIN_HEADER
/* This value is deprecated and was never used nor reported by */ /* This value is deprecated and was never used nor reported by */
/* FreeType. Don't use or test for it. */ /* FreeType. Don't use or test for it. */
/* */ /* */
/* FT_ENCODING_MS_SJIS :: */
/* Same as FT_ENCODING_SJIS. Deprecated. */
/* */
/* FT_ENCODING_MS_GB2312 :: */
/* Same as FT_ENCODING_GB2312. Deprecated. */
/* */
/* FT_ENCODING_MS_BIG5 :: */
/* Same as FT_ENCODING_BIG5. Deprecated. */
/* */
/* FT_ENCODING_MS_WANSUNG :: */
/* Same as FT_ENCODING_WANSUNG. Deprecated. */
/* */
/* FT_ENCODING_MS_JOHAB :: */
/* Same as FT_ENCODING_JOHAB. Deprecated. */
/* */
/* <Note> */ /* <Note> */
/* By default, FreeType automatically synthetizes a Unicode charmap */ /* By default, FreeType automatically synthetizes a Unicode charmap */
/* for Postscript fonts, using their glyph names dictionaries. */ /* for Postscript fonts, using their glyph names dictionaries. */
@ -518,11 +588,18 @@ FT_BEGIN_HEADER
FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ), FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ),
FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ), FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ),
FT_ENC_TAG( FT_ENCODING_MS_SJIS, 's', 'j', 'i', 's' ), FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ),
FT_ENC_TAG( FT_ENCODING_MS_GB2312, 'g', 'b', ' ', ' ' ), FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ),
FT_ENC_TAG( FT_ENCODING_MS_BIG5, 'b', 'i', 'g', '5' ), FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ),
FT_ENC_TAG( FT_ENCODING_MS_WANSUNG, 'w', 'a', 'n', 's' ), FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ),
FT_ENC_TAG( FT_ENCODING_MS_JOHAB, 'j', 'o', 'h', 'a' ), FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ),
/* for backwards compatibility */
FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS,
FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312,
FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5,
FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG,
FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB,
FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ), FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ),
FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT, 'A', 'D', 'B', 'E' ), FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT, 'A', 'D', 'B', 'E' ),
@ -550,11 +627,11 @@ FT_BEGIN_HEADER
/* ft_encoding_unicode :: see @FT_ENCODING_UNICODE */ /* ft_encoding_unicode :: see @FT_ENCODING_UNICODE */
/* ft_encoding_latin_2 :: see @FT_ENCODING_OLD_LATIN_2 */ /* ft_encoding_latin_2 :: see @FT_ENCODING_OLD_LATIN_2 */
/* ft_encoding_symbol :: see @FT_ENCODING_MS_SYMBOL */ /* ft_encoding_symbol :: see @FT_ENCODING_MS_SYMBOL */
/* ft_encoding_sjis :: see @FT_ENCODING_MS_SJIS */ /* ft_encoding_sjis :: see @FT_ENCODING_SJIS */
/* ft_encoding_gb2312 :: see @FT_ENCODING_MS_GB2312 */ /* ft_encoding_gb2312 :: see @FT_ENCODING_GB2312 */
/* ft_encoding_big5 :: see @FT_ENCODING_MS_BIG5 */ /* ft_encoding_big5 :: see @FT_ENCODING_BIG5 */
/* ft_encoding_wansung :: see @FT_ENCODING_MS_WANSUNG */ /* ft_encoding_wansung :: see @FT_ENCODING_WANSUNG */
/* ft_encoding_johab :: see @FT_ENCODING_MS_JOHAB */ /* ft_encoding_johab :: see @FT_ENCODING_JOHAB */
/* */ /* */
/* ft_encoding_adobe_standard :: see @FT_ENCODING_ADOBE_STANDARD */ /* ft_encoding_adobe_standard :: see @FT_ENCODING_ADOBE_STANDARD */
/* ft_encoding_adobe_expert :: see @FT_ENCODING_ADOBE_EXPERT */ /* ft_encoding_adobe_expert :: see @FT_ENCODING_ADOBE_EXPERT */
@ -563,21 +640,21 @@ FT_BEGIN_HEADER
/* */ /* */
/* ft_encoding_apple_roman :: see @FT_ENCODING_APPLE_ROMAN */ /* ft_encoding_apple_roman :: see @FT_ENCODING_APPLE_ROMAN */
/* */ /* */
#define ft_encoding_none FT_ENCODING_NONE #define ft_encoding_none FT_ENCODING_NONE
#define ft_encoding_unicode FT_ENCODING_UNICODE #define ft_encoding_unicode FT_ENCODING_UNICODE
#define ft_encoding_symbol FT_ENCODING_MS_SYMBOL #define ft_encoding_symbol FT_ENCODING_MS_SYMBOL
#define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1 #define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1
#define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2 #define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2
#define ft_encoding_sjis FT_ENCODING_MS_SJIS #define ft_encoding_sjis FT_ENCODING_SJIS
#define ft_encoding_gb2312 FT_ENCODING_MS_GB2312 #define ft_encoding_gb2312 FT_ENCODING_GB2312
#define ft_encoding_big5 FT_ENCODING_MS_BIG5 #define ft_encoding_big5 FT_ENCODING_BIG5
#define ft_encoding_wansung FT_ENCODING_MS_WANSUNG #define ft_encoding_wansung FT_ENCODING_WANSUNG
#define ft_encoding_johab FT_ENCODING_MS_JOHAB #define ft_encoding_johab FT_ENCODING_JOHAB
#define ft_encoding_adobe_standard FT_ENCODING_ADOBE_STANDARD #define ft_encoding_adobe_standard FT_ENCODING_ADOBE_STANDARD
#define ft_encoding_adobe_expert FT_ENCODING_ADOBE_EXPERT #define ft_encoding_adobe_expert FT_ENCODING_ADOBE_EXPERT
#define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM #define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM
#define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN #define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN
/*************************************************************************/ /*************************************************************************/
@ -692,8 +769,8 @@ FT_BEGIN_HEADER
/* */ /* */
/* num_fixed_sizes :: The number of fixed sizes available in this */ /* num_fixed_sizes :: The number of fixed sizes available in this */
/* face. This should be set to 0 for scalable */ /* face. This should be set to 0 for scalable */
/* fonts, unless its face includes a complete */ /* fonts, unless its face includes a set of */
/* set of glyphs (called a `strike') for the */ /* glyphs (called a `strike') for the */
/* specified sizes. */ /* specified sizes. */
/* */ /* */
/* available_sizes :: An array of sizes specifying the available */ /* available_sizes :: An array of sizes specifying the available */
@ -743,10 +820,11 @@ FT_BEGIN_HEADER
/* descender :: The face's descender is the vertical */ /* descender :: The face's descender is the vertical */
/* distance from the baseline to the */ /* distance from the baseline to the */
/* bottommost point of any glyph in the face. */ /* bottommost point of any glyph in the face. */
/* This field's value is *negative*, expressed */ /* This field's value is *negative* for values */
/* in font units. Some font designs use a */ /* below the baseline. It is expressed in */
/* value different from `bbox.yMin'. Only */ /* font units. Some font designs use a value */
/* relevant for scalable formats. */ /* different from `bbox.yMin'. Only relevant */
/* for scalable formats. */
/* */ /* */
/* height :: The face's height is the vertical distance */ /* height :: The face's height is the vertical distance */
/* from one baseline to the next when writing */ /* from one baseline to the next when writing */
@ -862,7 +940,7 @@ FT_BEGIN_HEADER
/* FT_FACE_FLAG_SCALABLE :: */ /* FT_FACE_FLAG_SCALABLE :: */
/* Indicates that the face provides vectorial outlines. This */ /* Indicates that the face provides vectorial outlines. This */
/* doesn't prevent embedded bitmaps, i.e., a face can have both */ /* doesn't prevent embedded bitmaps, i.e., a face can have both */
/* this bit and @FT_FACE_FLAG_FIXED_SIZES set */ /* this bit and @FT_FACE_FLAG_FIXED_SIZES set. */
/* */ /* */
/* FT_FACE_FLAG_FIXED_SIZES :: */ /* FT_FACE_FLAG_FIXED_SIZES :: */
/* Indicates that the face contains `fixed sizes', i.e., bitmap */ /* Indicates that the face contains `fixed sizes', i.e., bitmap */
@ -901,9 +979,9 @@ FT_BEGIN_HEADER
/* */ /* */
/* FT_FACE_FLAG_GLYPH_NAMES :: */ /* FT_FACE_FLAG_GLYPH_NAMES :: */
/* Indicates that the font contains glyph names that can be */ /* Indicates that the font contains glyph names that can be */
/* retrieved through @FT_Get_Glyph_Names. Note that some TrueType */ /* retrieved through @FT_Get_Glyph_Name. Note that some TrueType */
/* fonts contain broken glyph name tables. Use the function */ /* fonts contain broken glyph name tables. Use the function */
/* @FT_Has_PS_Glyph_Name when needed. */ /* @FT_Has_PS_Glyph_Names when needed. */
/* */ /* */
/* FT_FACE_FLAG_EXTERNAL_STREAM :: */ /* FT_FACE_FLAG_EXTERNAL_STREAM :: */
/* Used internally by FreeType to indicate that a face's stream was */ /* Used internally by FreeType to indicate that a face's stream was */
@ -1016,12 +1094,12 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* @macro: */ /* @macro: */
/* FT_IS_FIXED_SIZES( face ) */ /* FT_HAS_FIXED_SIZES( face ) */
/* */ /* */
/* @description: */ /* @description: */
/* A macro that returns true whenever a face object contains some */ /* A macro that returns true whenever a face object contains some */
/* embedded bitmaps. See the `fixed_sizes' field of the @FT_FaceRec */ /* embedded bitmaps. See the `available_sizes' field of the */
/* structure. */ /* @FT_FaceRec structure. */
/* */ /* */
#define FT_HAS_FIXED_SIZES( face ) \ #define FT_HAS_FIXED_SIZES( face ) \
( face->face_flags & FT_FACE_FLAG_FIXED_SIZES ) ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
@ -1050,7 +1128,7 @@ FT_BEGIN_HEADER
/* */ /* */
/* @description: */ /* @description: */
/* A macro that returns true whenever a face object contains some */ /* A macro that returns true whenever a face object contains some */
/* glyph names that can be accessed through @FT_Get_Glyph_Names. */ /* glyph names that can be accessed through @FT_Get_Glyph_Name. */
/* */ /* */
#define FT_HAS_GLYPH_NAMES( face ) \ #define FT_HAS_GLYPH_NAMES( face ) \
( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES )
@ -1130,10 +1208,12 @@ FT_BEGIN_HEADER
/* units to fractional (26.6) pixel coordinates. */ /* units to fractional (26.6) pixel coordinates. */
/* */ /* */
/* ascender :: The ascender, expressed in 26.6 fixed point */ /* ascender :: The ascender, expressed in 26.6 fixed point */
/* pixels. Always positive. */ /* pixels. Positive for ascenders above the */
/* baseline. */
/* */ /* */
/* descender :: The descender, expressed in 26.6 fixed point */ /* descender :: The descender, expressed in 26.6 fixed point */
/* pixels. Always negative. */ /* pixels. Negative for descenders below the */
/* baseline. */
/* */ /* */
/* height :: The text height, expressed in 26.6 fixed point */ /* height :: The text height, expressed in 26.6 fixed point */
/* pixels. Always positive. */ /* pixels. Always positive. */
@ -1142,12 +1222,12 @@ FT_BEGIN_HEADER
/* fixed point pixels. Always positive. */ /* fixed point pixels. Always positive. */
/* */ /* */
/* <Note> */ /* <Note> */
/* The values of `ascender', `descender', and `height' are only the */ /* For scalable fonts, the values of `ascender', `descender', and */
/* scaled versions of `face->ascender', `face->descender', and */ /* `height' are scaled versions of `face->ascender', */
/* `face->height'. */ /* `face->descender', and `face->height', respectively. */
/* */ /* */
/* Unfortunately, due to glyph hinting, these values might not be */ /* Unfortunately, due to glyph hinting, these values might not be */
/* exact for certain fonts, they thus must be treated as unreliable */ /* exact for certain fonts. They thus must be treated as unreliable */
/* with an error margin of at least one pixel! */ /* with an error margin of at least one pixel! */
/* */ /* */
/* Indeed, the only way to get the exact pixel ascender and descender */ /* Indeed, the only way to get the exact pixel ascender and descender */
@ -1161,7 +1241,7 @@ FT_BEGIN_HEADER
FT_UShort y_ppem; /* vertical pixels per EM */ FT_UShort y_ppem; /* vertical pixels per EM */
FT_Fixed x_scale; /* two scales used to convert font units */ FT_Fixed x_scale; /* two scales used to convert font units */
FT_Fixed y_scale; /* to 26.6 frac. pixel coordinates.. */ FT_Fixed y_scale; /* to 26.6 frac. pixel coordinates */
FT_Pos ascender; /* ascender in 26.6 frac. pixels */ FT_Pos ascender; /* ascender in 26.6 frac. pixels */
FT_Pos descender; /* descender in 26.6 frac. pixels */ FT_Pos descender; /* descender in 26.6 frac. pixels */
@ -1311,16 +1391,18 @@ FT_BEGIN_HEADER
/* */ /* */
/* outline :: The outline descriptor for the current glyph */ /* outline :: The outline descriptor for the current glyph */
/* image if its format is */ /* image if its format is */
/* ft_glyph_bitmap_outline. */ /* FT_GLYPH_FORMAT_OUTLINE. */
/* */ /* */
/* num_subglyphs :: The number of subglyphs in a composite glyph. */ /* num_subglyphs :: The number of subglyphs in a composite glyph. */
/* This format is only valid for the composite */ /* This field is only valid for the composite */
/* glyph format, that should normally only be */ /* glyph format that should normally only be */
/* loaded with the FT_LOAD_NO_RECURSE flag. */ /* loaded with the @FT_LOAD_NO_RECURSE flag. */
/* For now this is internal to FreeType. */
/* */ /* */
/* subglyphs :: An array of subglyph descriptors for */ /* subglyphs :: An array of subglyph descriptors for */
/* composite glyphs. There are `num_subglyphs' */ /* composite glyphs. There are `num_subglyphs' */
/* elements in there. */ /* elements in there. Currently internal to */
/* FreeType. */
/* */ /* */
/* control_data :: Certain font drivers can also return the */ /* control_data :: Certain font drivers can also return the */
/* control data for a given glyph image (e.g. */ /* control data for a given glyph image (e.g. */
@ -1359,7 +1441,7 @@ FT_BEGIN_HEADER
FT_Library library; FT_Library library;
FT_Face face; FT_Face face;
FT_GlyphSlot next; FT_GlyphSlot next;
FT_UInt flags; FT_UInt reserved; /* retained for binary compatibility */
FT_Generic generic; FT_Generic generic;
FT_Glyph_Metrics metrics; FT_Glyph_Metrics metrics;
@ -1474,13 +1556,13 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* <Enum> */ /* <Enum> */
/* FT_Open_Flags */ /* FT_OPEN_XXX */
/* */ /* */
/* <Description> */ /* <Description> */
/* An enumeration used to list the bit flags used within the */ /* A list of bit-field constants used within the `flags' field of the */
/* `flags' field of the @FT_Open_Args structure. */ /* @FT_Open_Args structure. */
/* */ /* */
/* <Fields> */ /* <Values> */
/* FT_OPEN_MEMORY :: This is a memory-based stream. */ /* FT_OPEN_MEMORY :: This is a memory-based stream. */
/* */ /* */
/* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */ /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */
@ -1492,35 +1574,31 @@ FT_BEGIN_HEADER
/* */ /* */
/* FT_OPEN_PARAMS :: Use the `num_params' & `params' field. */ /* FT_OPEN_PARAMS :: Use the `num_params' & `params' field. */
/* */ /* */
/* ft_open_memory :: deprecated. use @FT_OPEN_MEMORY instead */ /* ft_open_memory :: Deprecated; use @FT_OPEN_MEMORY instead. */
/* */ /* */
/* ft_open_stream :: deprecated. use @FT_OPEN_STREAM instead */ /* ft_open_stream :: Deprecated; use @FT_OPEN_STREAM instead. */
/* */ /* */
/* ft_open_pathname :: deprecated. use @FT_OPEN_PATHNAME instead */ /* ft_open_pathname :: Deprecated; use @FT_OPEN_PATHNAME instead. */
/* */ /* */
/* ft_open_driver :: deprecated, use @FT_OPEN_DRIVER instead */ /* ft_open_driver :: Deprecated; use @FT_OPEN_DRIVER instead. */
/* */ /* */
/* ft_open_params :: deprecated, use @FT_OPEN_PARAMS instead */ /* ft_open_params :: Deprecated; use @FT_OPEN_PARAMS instead. */
/* */ /* */
/* <Note> */ /* <Note> */
/* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */ /* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */
/* flags are mutually exclusive. */ /* flags are mutually exclusive. */
/* */ /* */
typedef enum #define FT_OPEN_MEMORY 0x1
{ #define FT_OPEN_STREAM 0x2
FT_OPEN_MEMORY = 1, #define FT_OPEN_PATHNAME 0x4
FT_OPEN_STREAM = 2, #define FT_OPEN_DRIVER 0x8
FT_OPEN_PATHNAME = 4, #define FT_OPEN_PARAMS 0x10
FT_OPEN_DRIVER = 8,
FT_OPEN_PARAMS = 16
} FT_Open_Flags; #define ft_open_memory FT_OPEN_MEMORY /* deprecated */
#define ft_open_stream FT_OPEN_STREAM /* deprecated */
#define ft_open_memory FT_OPEN_MEMORY /* deprecated */ #define ft_open_pathname FT_OPEN_PATHNAME /* deprecated */
#define ft_open_stream FT_OPEN_STREAM /* deprecated */ #define ft_open_driver FT_OPEN_DRIVER /* deprecated */
#define ft_open_pathname FT_OPEN_PATHNAME /* deprecated */ #define ft_open_params FT_OPEN_PARAMS /* deprecated */
#define ft_open_driver FT_OPEN_DRIVER /* deprecated */
#define ft_open_params FT_OPEN_PARAMS /* deprecated */
/*************************************************************************/ /*************************************************************************/
@ -1602,14 +1680,14 @@ FT_BEGIN_HEADER
/* */ /* */
typedef struct FT_Open_Args_ typedef struct FT_Open_Args_
{ {
FT_Open_Flags flags; FT_UInt flags;
const FT_Byte* memory_base; const FT_Byte* memory_base;
FT_Long memory_size; FT_Long memory_size;
FT_String* pathname; FT_String* pathname;
FT_Stream stream; FT_Stream stream;
FT_Module driver; FT_Module driver;
FT_Int num_params; FT_Int num_params;
FT_Parameter* params; FT_Parameter* params;
} FT_Open_Args; } FT_Open_Args;
@ -1853,7 +1931,7 @@ FT_BEGIN_HEADER
/* character dimensions is zero, its value is set equal to the other. */ /* character dimensions is zero, its value is set equal to the other. */
/* */ /* */
/* <InOut> */ /* <InOut> */
/* size :: A handle to a target size object. */ /* face :: A handle to a target face object. */
/* */ /* */
/* <Input> */ /* <Input> */
/* char_width :: The character width, in 26.6 fractional points. */ /* char_width :: The character width, in 26.6 fractional points. */
@ -1870,7 +1948,7 @@ FT_BEGIN_HEADER
/* */ /* */
/* <Note> */ /* <Note> */
/* When dealing with fixed-size faces (i.e., non-scalable formats), */ /* When dealing with fixed-size faces (i.e., non-scalable formats), */
/* use the function @FT_Set_Pixel_Sizes. */ /* @FT_Set_Pixel_Sizes provides a more convenient interface. */
/* */ /* */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Set_Char_Size( FT_Face face, FT_Set_Char_Size( FT_Face face,
@ -1903,7 +1981,6 @@ FT_BEGIN_HEADER
/* <Return> */ /* <Return> */
/* FreeType error code. 0 means success. */ /* FreeType error code. 0 means success. */
/* */ /* */
/* */
/* <Note> */ /* <Note> */
/* The values of `pixel_width' and `pixel_height' correspond to the */ /* The values of `pixel_width' and `pixel_height' correspond to the */
/* pixel values of the _typographic_ character size, which are NOT */ /* pixel values of the _typographic_ character size, which are NOT */
@ -1919,6 +1996,11 @@ FT_BEGIN_HEADER
/* guarantee in any way that you will get glyph bitmaps that all fit */ /* guarantee in any way that you will get glyph bitmaps that all fit */
/* within an 8x8 cell (sometimes even far from it). */ /* within an 8x8 cell (sometimes even far from it). */
/* */ /* */
/* For bitmap fonts, `pixel_height' usually is a reliable value for */
/* the height of the bitmap cell. Drivers for bitmap font formats */
/* which contain a single bitmap strike only (BDF, PCF, FNT) ignore */
/* `pixel_width'. */
/* */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Set_Pixel_Sizes( FT_Face face, FT_Set_Pixel_Sizes( FT_Face face,
FT_UInt pixel_width, FT_UInt pixel_width,
@ -2010,7 +2092,7 @@ FT_BEGIN_HEADER
FT_Int32 load_flags ); FT_Int32 load_flags );
/**************************************************************************** /***************************************************************************
* *
* @enum: * @enum:
* FT_LOAD_XXX * FT_LOAD_XXX
@ -2131,6 +2213,7 @@ FT_BEGIN_HEADER
* being used. This can be important for certain fonts where unhinted * being used. This can be important for certain fonts where unhinted
* output is better than auto-hinted one. * output is better than auto-hinted one.
*/ */
#define FT_LOAD_DEFAULT 0x0
#define FT_LOAD_NO_SCALE 0x1 #define FT_LOAD_NO_SCALE 0x1
#define FT_LOAD_NO_HINTING 0x2 #define FT_LOAD_NO_HINTING 0x2
#define FT_LOAD_RENDER 0x4 #define FT_LOAD_RENDER 0x4
@ -2151,16 +2234,43 @@ FT_BEGIN_HEADER
/* */ /* */
#define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 ) #define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 )
#define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) ) #define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )
/***************************************************************************
*
* @enum:
* FT_LOAD_TARGET_XXX
*
* @description:
* A list of load targets. XXX
*
* @values:
* FT_LOAD_TARGET_NORMAL ::
* XXX
*
* FT_LOAD_TARGET_LIGHT ::
* XXX
*
* FT_LOAD_TARGET_MONO ::
* XXX
*
* FT_LOAD_TARGET_LCD ::
* XXX
*
* FT_LOAD_TARGET_LCD_V ::
* XXX
*/
#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL ) #define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
#define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT ) #define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT )
#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO ) #define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO )
#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD ) #define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD )
#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V ) #define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V )
#define FT_LOAD_DEFAULT 0x0 /* */
/*************************************************************************/ /*************************************************************************/
@ -2186,7 +2296,7 @@ FT_BEGIN_HEADER
/* The transformation is only applied to scalable image formats after */ /* The transformation is only applied to scalable image formats after */
/* the glyph has been loaded. It means that hinting is unaltered by */ /* the glyph has been loaded. It means that hinting is unaltered by */
/* the transformation and is performed on the character size given in */ /* the transformation and is performed on the character size given in */
/* the last call to @FT_Set_Char_Sizes or @FT_Set_Pixel_Sizes. */ /* the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. */
/* */ /* */
FT_EXPORT( void ) FT_EXPORT( void )
FT_Set_Transform( FT_Face face, FT_Set_Transform( FT_Face face,
@ -2205,6 +2315,10 @@ FT_BEGIN_HEADER
/* conversion performed on the outline, as well as specific */ /* conversion performed on the outline, as well as specific */
/* hinting optimizations. */ /* hinting optimizations. */
/* */ /* */
/* For bitmap fonts the `bitmap->pixel_mode' field in the */
/* @FT_GlyphSlotRec structure gives the format of the returned */
/* bitmap. */
/* */
/* <Values> */ /* <Values> */
/* FT_RENDER_MODE_NORMAL :: */ /* FT_RENDER_MODE_NORMAL :: */
/* This is the default render mode; it corresponds to 8-bit */ /* This is the default render mode; it corresponds to 8-bit */
@ -2212,11 +2326,10 @@ FT_BEGIN_HEADER
/* */ /* */
/* FT_RENDER_MODE_LIGHT :: */ /* FT_RENDER_MODE_LIGHT :: */
/* This is similar to @FT_RENDER_MODE_NORMAL, except that this */ /* This is similar to @FT_RENDER_MODE_NORMAL, except that this */
/* changes the hinting to prevent stem width quantization. This */ /* changes the hinting to prevent stem width quantization. This */
/* results in glyph shapes that are more similar to the original, */ /* results in glyph shapes that are more similar to the original, */
/* while being a bit more fuzzy ("better shapes", instead of */ /* while being a bit more fuzzy ("better shapes", instead of */
/* "better contrast" if you want :-) THIS IS STILL EXPERIMENTAL, */ /* "better contrast" if you want :-). */
/* FOR NOW, THIS WILL PRODUCE RESULTS SIMILAR TO NORMAL MODE !! */
/* */ /* */
/* FT_RENDER_MODE_MONO :: */ /* FT_RENDER_MODE_MONO :: */
/* This mode corresponds to 1-bit bitmaps. */ /* This mode corresponds to 1-bit bitmaps. */
@ -2225,8 +2338,7 @@ FT_BEGIN_HEADER
/* This mode corresponds to horizontal RGB/BGR sub-pixel displays, */ /* This mode corresponds to horizontal RGB/BGR sub-pixel displays, */
/* like LCD-screens. It produces 8-bit bitmaps that are 3 times */ /* like LCD-screens. It produces 8-bit bitmaps that are 3 times */
/* the width of the original glyph outline in pixels, and which use */ /* the width of the original glyph outline in pixels, and which use */
/* the @FT_PIXEL_MODE_LCD mode. THIS IS STILL EXPERIMENTAL, DO NOT */ /* the @FT_PIXEL_MODE_LCD mode. */
/* USE FOR NOW !! */
/* */ /* */
/* FT_RENDER_MODE_LCD_V :: */ /* FT_RENDER_MODE_LCD_V :: */
/* This mode corresponds to vertical RGB/BGR sub-pixel displays */ /* This mode corresponds to vertical RGB/BGR sub-pixel displays */
@ -2237,8 +2349,7 @@ FT_BEGIN_HEADER
/* <Note> */ /* <Note> */
/* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph are */ /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph are */
/* _not filtered_ to reduce color-fringes. It is up to the caller to */ /* _not filtered_ to reduce color-fringes. It is up to the caller to */
/* perform this pass. THIS IS STILL EXPERIMENTAL, DO NOT USE FOR NOW */ /* perform this pass. */
/* !! */
/* */ /* */
typedef enum FT_Render_Mode_ typedef enum FT_Render_Mode_
{ {
@ -2770,7 +2881,7 @@ FT_BEGIN_HEADER
/* <Note> */ /* <Note> */
/* The optimization for FT_DivFix() is simple: If (a << 16) fits in */ /* The optimization for FT_DivFix() is simple: If (a << 16) fits in */
/* 32 bits, then the division is computed directly. Otherwise, we */ /* 32 bits, then the division is computed directly. Otherwise, we */
/* use a specialized version of the old @FT_MulDiv64. */ /* use a specialized version of @FT_MulDiv. */
/* */ /* */
FT_EXPORT( FT_Long ) FT_EXPORT( FT_Long )
FT_DivFix( FT_Long a, FT_DivFix( FT_Long a,

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for accessing BDF-specific strings (specification). */ /* FreeType API for accessing BDF-specific strings (specification). */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -49,22 +49,22 @@ FT_BEGIN_HEADER
* FT_PropertyType * FT_PropertyType
* *
* @description: * @description:
* list of BDF property types * A list of BDF property types.
* *
* @values: * @values:
* BDF_PROPERTY_TYPE_NONE :: * BDF_PROPERTY_TYPE_NONE ::
* value 0 is used to indicate a missing property * Value 0 is used to indicate a missing property.
* *
* BDF_PROPERTY_TYPE_ATOM :: * BDF_PROPERTY_TYPE_ATOM ::
* property is a string atom * Property is a string atom.
* *
* BDF_PROPERTY_TYPE_INTEGER :: * BDF_PROPERTY_TYPE_INTEGER ::
* property is a 32-bit signed integer * Property is a 32-bit signed integer.
* *
* BDF_PROPERTY_TYPE_CARDINAL :: * BDF_PROPERTY_TYPE_CARDINAL ::
* property is a 32-bit unsigned integer * Property is a 32-bit unsigned integer.
*/ */
typedef enum typedef enum BDF_PropertyType_
{ {
BDF_PROPERTY_TYPE_NONE = 0, BDF_PROPERTY_TYPE_NONE = 0,
BDF_PROPERTY_TYPE_ATOM = 1, BDF_PROPERTY_TYPE_ATOM = 1,
@ -76,34 +76,44 @@ FT_BEGIN_HEADER
/********************************************************************** /**********************************************************************
* *
* @type: BDF_Property * @type:
* BDF_Property
* *
* @description: * @description:
* handle to a @BDF_PropertyRec structure used to model a given * A handle to a @BDF_PropertyRec structure to model a given
* BDF/PCF property * BDF/PCF property.
*/ */
typedef struct BDF_PropertyRec_* BDF_Property; typedef struct BDF_PropertyRec_* BDF_Property;
/********************************************************************** /**********************************************************************
* *
* @struct: BDF_PropertyRec * @struct:
* BDF_PropertyRec
* *
* @description: * @description:
* models a given BDF/PCF property * This structure models a given BDF/PCF property.
* *
* @note: * @fields:
* type :: property type * type ::
* u.atom :: atom string, when type is @BDF_PROPERTY_TYPE_ATOM * The property type.
* u.integer :: signed integer, when type is @BDF_PROPERTY_TYPE_INTEGER *
* u.cardinal :: unsigned integer, when type is @BDF_PROPERTY_TYPE_CARDINAL * u.atom ::
* The atom string, if type is @BDF_PROPERTY_TYPE_ATOM.
*
* u.integer ::
* A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER.
*
* u.cardinal ::
* An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL.
*/ */
typedef struct BDF_PropertyRec_ typedef struct BDF_PropertyRec_
{ {
BDF_PropertyType type; BDF_PropertyType type;
union { union {
const char* atom; const char* atom;
FT_Int32 integer; FT_Int32 integer;
FT_UInt32 cardinal; FT_UInt32 cardinal;
} u; } u;
@ -121,7 +131,7 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* handle to input face * A handle to the input face.
* *
* @output: * @output:
* acharset_encoding :: * acharset_encoding ::
@ -131,7 +141,7 @@ FT_BEGIN_HEADER
* Charset registry, as a C string, owned by the face. * Charset registry, as a C string, owned by the face.
* *
* @return: * @return:
* FreeType rror code. 0 means success. * FreeType error code. 0 means success.
* *
* @note: * @note:
* This function only works with BDF faces, returning an error otherwise. * This function only works with BDF faces, returning an error otherwise.
@ -141,31 +151,33 @@ FT_BEGIN_HEADER
const char* *acharset_encoding, const char* *acharset_encoding,
const char* *acharset_registry ); const char* *acharset_registry );
/********************************************************************** /**********************************************************************
* *
* @function: * @function:
* FT_Get_BDF_Property * FT_Get_BDF_Property
* *
* @description: * @description:
* Retrieves a BDF property from a BDF or PCF font file * Retrieves a BDF property from a BDF or PCF font file.
* *
* @input: * @input:
* face :: handle to input face * face :: A handle to the input face.
* name :: property name *
* name :: The property name.
* *
* @output: * @output:
* aproperty :: the property * aproperty :: The property.
* *
* @return: * @return:
* FreeType error code. 0 means success. * FreeType error code. 0 means success.
* *
* @note: * @note:
* This function works with BDF _and_ PCF fonts. It returns an error * This function works with BDF _and_ PCF fonts. It returns an error
* otherwise. it also returns an error when the property is not in the * otherwise. It also returns an error if the property is not in the
* font. * font.
* *
* in case of error, "aproperty->type" is always set to * In case of error, "aproperty->type" is always set to
* @BDF_PROPERTY_TYPE_NONE * @BDF_PROPERTY_TYPE_NONE.
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Get_BDF_Property( FT_Face face, FT_Get_BDF_Property( FT_Face face,

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType Cache subsystem (specification). */ /* FreeType Cache subsystem (specification). */
/* */ /* */
/* Copyright 1996-2001 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -71,7 +71,6 @@ FT_BEGIN_HEADER
/* FTC_Node_Unref */ /* FTC_Node_Unref */
/* */ /* */
/* FTC_Font */ /* FTC_Font */
/* FTC_ImageDesc */
/* FTC_ImageCache */ /* FTC_ImageCache */
/* FTC_ImageCache_New */ /* FTC_ImageCache_New */
/* FTC_ImageCache_Lookup */ /* FTC_ImageCache_Lookup */
@ -242,9 +241,9 @@ FT_BEGIN_HEADER
/* If you lookup nodes, you have the ability to "acquire" them, i.e., */ /* If you lookup nodes, you have the ability to "acquire" them, i.e., */
/* to increment their reference count. This will prevent the node */ /* to increment their reference count. This will prevent the node */
/* from being flushed out of the cache until you explicitly "release" */ /* from being flushed out of the cache until you explicitly "release" */
/* it (see @FTC_Node_Release). */ /* it (see @FTC_Node_Unref). */
/* */ /* */
/* See also @FTC_BitsetCache_Lookup and @FTC_ImageCache_Lookup. */ /* See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. */
/* */ /* */
typedef struct FTC_NodeRec_* FTC_Node; typedef struct FTC_NodeRec_* FTC_Node;
@ -368,12 +367,12 @@ FT_BEGIN_HEADER
/* */ /* */
/* <Description> */ /* <Description> */
/* Retrieves the @FT_Face and @FT_Size objects that correspond to a */ /* Retrieves the @FT_Face and @FT_Size objects that correspond to a */
/* given @FTC_SizeID. */ /* given font. */
/* */ /* */
/* <Input> */ /* <Input> */
/* manager :: A handle to the cache manager. */ /* manager :: A handle to the cache manager. */
/* */ /* */
/* size_id :: The ID of the `font size' to use. */ /* font :: The font to use. */
/* */ /* */
/* <Output> */ /* <Output> */
/* aface :: A pointer to the handle of the face object. Set it to */ /* aface :: A pointer to the handle of the face object. Set it to */

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType convenience functions to handle glyphs (specification). */ /* FreeType convenience functions to handle glyphs (specification). */
/* */ /* */
/* Copyright 1996-2001 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -282,7 +282,64 @@ FT_BEGIN_HEADER
FT_Matrix* matrix, FT_Matrix* matrix,
FT_Vector* delta ); FT_Vector* delta );
/* */
/*************************************************************************/
/* */
/* <Enum> */
/* FT_Glyph_BBox_Mode */
/* */
/* <Description> */
/* The mode how the values of @FT_Glyph_Get_CBox are returned. */
/* */
/* <Values> */
/* FT_GLYPH_BBOX_UNSCALED :: */
/* Return unscaled font units. */
/* */
/* FT_GLYPH_BBOX_SUBPIXELS :: */
/* Return unfitted 26.6 coordinates. */
/* */
/* FT_GLYPH_BBOX_GRIDFIT :: */
/* Return grid-fitted 26.6 coordinates. */
/* */
/* FT_GLYPH_BBOX_TRUNCATE :: */
/* Return coordinates in integer pixels. */
/* */
/* FT_GLYPH_BBOX_PIXELS :: */
/* Return grid-fitted pixel coordinates. */
/* */
typedef enum FT_Glyph_BBox_Mode_
{
FT_GLYPH_BBOX_UNSCALED = 0,
FT_GLYPH_BBOX_SUBPIXELS = 0,
FT_GLYPH_BBOX_GRIDFIT = 1,
FT_GLYPH_BBOX_TRUNCATE = 2,
FT_GLYPH_BBOX_PIXELS = 3
} FT_Glyph_BBox_Mode;
/*************************************************************************/
/* */
/* <Enum> */
/* ft_glyph_bbox_xxx */
/* */
/* <Description> */
/* These constants are deprecated. Use the corresponding */
/* @FT_Glyph_BBox_Mode values instead. */
/* */
/* <Values> */
/* ft_glyph_bbox_unscaled :: see @FT_GLYPH_BBOX_UNSCALED */
/* ft_glyph_bbox_subpixels :: see @FT_GLYPH_BBOX_SUBPIXELS */
/* ft_glyph_bbox_gridfit :: see @FT_GLYPH_BBOX_GRIDFIT */
/* ft_glyph_bbox_truncate :: see @FT_GLYPH_BBOX_TRUNCATE */
/* ft_glyph_bbox_pixels :: see @FT_GLYPH_BBOX_PIXELS */
/* */
#define ft_glyph_bbox_unscaled FT_GLYPH_BBOX_UNSCALED
#define ft_glyph_bbox_subpixels FT_GLYPH_BBOX_SUBPIXELS
#define ft_glyph_bbox_gridfit FT_GLYPH_BBOX_GRIDFIT
#define ft_glyph_bbox_truncate FT_GLYPH_BBOX_TRUNCATE
#define ft_glyph_bbox_pixels FT_GLYPH_BBOX_PIXELS
/*************************************************************************/ /*************************************************************************/
/* */ /* */
@ -316,11 +373,9 @@ FT_BEGIN_HEADER
/* convention. */ /* convention. */
/* */ /* */
/* If the glyph has been loaded with FT_LOAD_NO_SCALE, `bbox_mode' */ /* If the glyph has been loaded with FT_LOAD_NO_SCALE, `bbox_mode' */
/* must be set to `ft_glyph_bbox_unscaled' to get unscaled font */ /* must be set to `FT_GLYPH_BBOX_UNSCALED' to get unscaled font */
/* units. */ /* units in 26.6 pixel format. The value `FT_GLYPH_BBOX_SUBPIXELS' */
/* */ /* is another name for this constant. */
/* If `bbox_mode' is set to `ft_glyph_bbox_subpixels' the bbox */
/* coordinates are returned in 26.6 pixels (i.e. 1/64th of pixels). */
/* */ /* */
/* Note that the maximum coordinates are exclusive, which means that */ /* Note that the maximum coordinates are exclusive, which means that */
/* one can compute the width and height of the glyph image (be it in */ /* one can compute the width and height of the glyph image (be it in */
@ -330,7 +385,7 @@ FT_BEGIN_HEADER
/* height = bbox.yMax - bbox.yMin; */ /* height = bbox.yMax - bbox.yMin; */
/* */ /* */
/* Note also that for 26.6 coordinates, if `bbox_mode' is set to */ /* Note also that for 26.6 coordinates, if `bbox_mode' is set to */
/* `ft_glyph_bbox_gridfit', the coordinates will also be grid-fitted, */ /* `FT_GLYPH_BBOX_GRIDFIT', the coordinates will also be grid-fitted, */
/* which corresponds to: */ /* which corresponds to: */
/* */ /* */
/* bbox.xMin = FLOOR(bbox.xMin); */ /* bbox.xMin = FLOOR(bbox.xMin); */
@ -339,23 +394,11 @@ FT_BEGIN_HEADER
/* bbox.yMax = CEILING(bbox.yMax); */ /* bbox.yMax = CEILING(bbox.yMax); */
/* */ /* */
/* To get the bbox in pixel coordinates, set `bbox_mode' to */ /* To get the bbox in pixel coordinates, set `bbox_mode' to */
/* `ft_glyph_bbox_truncate'. */ /* `FT_GLYPH_BBOX_TRUNCATE'. */
/* */ /* */
/* To get the bbox in grid-fitted pixel coordinates, set `bbox_mode' */ /* To get the bbox in grid-fitted pixel coordinates, set `bbox_mode' */
/* to `ft_glyph_bbox_pixels'. */ /* to `FT_GLYPH_BBOX_PIXELS'. */
/* */ /* */
/* The default value for `bbox_mode' is `ft_glyph_bbox_pixels'. */
/* */
enum
{
ft_glyph_bbox_unscaled = 0, /* return unscaled font units */
ft_glyph_bbox_subpixels = 0, /* return unfitted 26.6 coordinates */
ft_glyph_bbox_gridfit = 1, /* return grid-fitted 26.6 coordinates */
ft_glyph_bbox_truncate = 2, /* return coordinates in integer pixels */
ft_glyph_bbox_pixels = 3 /* return grid-fitted pixel coordinates */
};
FT_EXPORT( void ) FT_EXPORT( void )
FT_Glyph_Get_CBox( FT_Glyph glyph, FT_Glyph_Get_CBox( FT_Glyph glyph,
FT_UInt bbox_mode, FT_UInt bbox_mode,
@ -391,8 +434,7 @@ FT_BEGIN_HEADER
/* */ /* */
/* <Note> */ /* <Note> */
/* The glyph image is translated with the `origin' vector before */ /* The glyph image is translated with the `origin' vector before */
/* rendering. In case of error, it it translated back to its */ /* rendering. */
/* original position and the glyph is left untouched. */
/* */ /* */
/* The first parameter is a pointer to a FT_Glyph handle, that will */ /* The first parameter is a pointer to a FT_Glyph handle, that will */
/* be replaced by this function. Typically, you would use (omitting */ /* be replaced by this function. Typically, you would use (omitting */
@ -413,7 +455,7 @@ FT_BEGIN_HEADER
/* // convert to a bitmap (default render mode + destroy old) */ /* // convert to a bitmap (default render mode + destroy old) */
/* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) */ /* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) */
/* { */ /* { */
/* error = FT_Glyph_To_Bitmap( &glyph, ft_render_mode_default, */ /* error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_DEFAULT, */
/* 0, 1 ); */ /* 0, 1 ); */
/* if ( error ) // glyph unchanged */ /* if ( error ) // glyph unchanged */
/* ... */ /* ... */

View file

@ -4,7 +4,7 @@
/* */ /* */
/* Gzip-compressed stream support. */ /* Gzip-compressed stream support. */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -40,47 +40,54 @@ FT_BEGIN_HEADER
/* */ /* */
/*************************************************************************/ /*************************************************************************/
/************************************************************************ /************************************************************************
* *
* @type: FT_Stream_OpenGzip * @function:
* FT_Stream_OpenGzip
* *
* @description: * @description:
* open a new stream to parse gzip-compressed font files. This is * Open a new stream to parse gzip-compressed font files. This is
* mainly used to support the compressed *.pcf.gz fonts that come * mainly used to support the compressed *.pcf.gz fonts that come
* with XFree86 * with XFree86.
* *
* @input: * @input:
* stream :: target embedding stream * stream :: The target embedding stream.
* source :: source stream, used to *
* source :: The source stream.
* *
* @return: * @return:
* error code. 0 means success * FreeType error code. 0 means success.
* *
* @note: * @note:
* the source stream must be opened _before_ calling this function. * The source stream must be opened _before_ calling this function.
* *
* calling @FT_Stream_Close on the new stream will *not* call * Calling the internal function FT_Stream_Close on the new stream will
* @FT_Stream_Close on the source stream. None of the stream objects * *not* call FT_Stream_Close on the source stream. None of the stream
* will be released to the heap. * objects will be released to the heap.
* *
* the stream implementation is very basic, and resets the decompression * The stream implementation is very basic and resets the decompression
* process each time seeking backwards is needed within the stream * process each time seeking backwards is needed within the stream.
* *
* in certain builds of the library, gzip compression recognition is * In certain builds of the library, gzip compression recognition is
* automatic when calling @FT_New_Face or @FT_Open_Face. This means that * automatically handled when calling @FT_New_Face or @FT_Open_Face.
* if no font driver is capable of handling the raw compressed file, * This means that if no font driver is capable of handling the raw
* the library will try to open a gzip stream from it and re-open * compressed file, the library will try to open a gzipped stream from
* the face with it. * it and re-open the face with it.
* *
* this function may return "FT_Err_Unimplemented" if your build of * This function may return "FT_Err_Unimplemented" if your build of
* FreeType was not compiled with zlib support. * FreeType was not compiled with zlib support.
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Stream_OpenGzip( FT_Stream stream, FT_Stream_OpenGzip( FT_Stream stream,
FT_Stream source ); FT_Stream source );
/* */ /* */
FT_END_HEADER FT_END_HEADER
#endif /* __FTGZIP_H__ */ #endif /* __FTGZIP_H__ */
/* END */

View file

@ -5,7 +5,7 @@
/* FreeType glyph image formats and default raster interface */ /* FreeType glyph image formats and default raster interface */
/* (specification). */ /* (specification). */
/* */ /* */
/* Copyright 1996-2001, 2002 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -261,7 +261,8 @@ FT_BEGIN_HEADER
/* `FT_PIXEL_MODE_GRAY'; it gives the number of gray */ /* `FT_PIXEL_MODE_GRAY'; it gives the number of gray */
/* levels used in the bitmap. */ /* levels used in the bitmap. */
/* */ /* */
/* pixel_mode :: The pixel_mode, i.e., how pixel bits are stored. */ /* pixel_mode :: The pixel mode, i.e., how pixel bits are stored. */
/* See @FT_Pixel_Mode for possible values. */
/* */ /* */
/* palette_mode :: This field is only used with paletted pixel modes; */ /* palette_mode :: This field is only used with paletted pixel modes; */
/* it indicates how the palette is stored. */ /* it indicates how the palette is stored. */
@ -357,11 +358,11 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* <Enum> */ /* <Enum> */
/* FT_Outline_Flags */ /* FT_OUTLINE_FLAGS */
/* */ /* */
/* <Description> */ /* <Description> */
/* A simple type used to enumerates the flags in an outline's */ /* A list of bit-field constants use for the flags in an outline's */
/* `outline_flags' field. */ /* `flags' field. */
/* */ /* */
/* <Values> */ /* <Values> */
/* FT_OUTLINE_NONE :: Value 0 is reserved. */ /* FT_OUTLINE_NONE :: Value 0 is reserved. */
@ -414,27 +415,24 @@ FT_BEGIN_HEADER
/* completely ignored by a given */ /* completely ignored by a given */
/* scan-converter. */ /* scan-converter. */
/* */ /* */
typedef enum FT_Outline_Flags_ #define FT_OUTLINE_NONE 0x0
{ #define FT_OUTLINE_OWNER 0x1
FT_OUTLINE_NONE = 0, #define FT_OUTLINE_EVEN_ODD_FILL 0x2
FT_OUTLINE_OWNER = 1, #define FT_OUTLINE_REVERSE_FILL 0x4
FT_OUTLINE_EVEN_ODD_FILL = 2, #define FT_OUTLINE_IGNORE_DROPOUTS 0x8
FT_OUTLINE_REVERSE_FILL = 4,
FT_OUTLINE_IGNORE_DROPOUTS = 8,
FT_OUTLINE_HIGH_PRECISION = 256,
FT_OUTLINE_SINGLE_PASS = 512
} FT_Outline_Flags; #define FT_OUTLINE_HIGH_PRECISION 0x100
#define FT_OUTLINE_SINGLE_PASS 0x200
/************************************************************************* /*************************************************************************
* *
* @enum: * @enum:
* ft_outline_xxx * ft_outline_flags
* *
* @description: * @description:
* These constants are deprecated. Please use the corresponding * These constants are deprecated. Please use the corresponding
* @FT_OUTLINE_XXX values. * @FT_OUTLINE_FLAGS values.
* *
* @values: * @values:
* ft_outline_none :: See @FT_OUTLINE_NONE. * ft_outline_none :: See @FT_OUTLINE_NONE.
@ -689,8 +687,8 @@ FT_BEGIN_HEADER
/* */ /* */
/* FT_GLYPH_FORMAT_COMPOSITE :: */ /* FT_GLYPH_FORMAT_COMPOSITE :: */
/* The glyph image is a composite of several other images. This */ /* The glyph image is a composite of several other images. This */
/* format is _only_ used with @FT_LOAD_FLAG_NO_RECURSE, and is */ /* format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to */
/* used to report compound glyphs (like accented characters). */ /* report compound glyphs (like accented characters). */
/* */ /* */
/* FT_GLYPH_FORMAT_BITMAP :: */ /* FT_GLYPH_FORMAT_BITMAP :: */
/* The glyph image is a bitmap, and can be described as an */ /* The glyph image is a bitmap, and can be described as an */
@ -937,11 +935,11 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* <Enum> */ /* <Enum> */
/* FT_Raster_Flag */ /* FT_RASTER_FLAG_XXX */
/* */ /* */
/* <Description> */ /* <Description> */
/* An enumeration to list the bit flags as used in the `flags' field */ /* A list of bit flag constants as used in the `flags' field of a */
/* of a FT_Raster_Params structure. */ /* @FT_Raster_Params structure. */
/* */ /* */
/* <Values> */ /* <Values> */
/* FT_RASTER_FLAG_DEFAULT :: This value is 0. */ /* FT_RASTER_FLAG_DEFAULT :: This value is 0. */
@ -949,7 +947,7 @@ FT_BEGIN_HEADER
/* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */ /* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */
/* anti-aliased glyph image should be */ /* anti-aliased glyph image should be */
/* generated. Otherwise, it will be */ /* generated. Otherwise, it will be */
/* monochrome (1-bit) */ /* monochrome (1-bit). */
/* */ /* */
/* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */ /* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */
/* rendering. In this mode, client */ /* rendering. In this mode, client */
@ -974,15 +972,12 @@ FT_BEGIN_HEADER
/* in direct rendering mode where all spans */ /* in direct rendering mode where all spans */
/* are generated if no clipping box is set. */ /* are generated if no clipping box is set. */
/* */ /* */
typedef enum #define FT_RASTER_FLAG_DEFAULT 0x0
{ #define FT_RASTER_FLAG_AA 0x1
FT_RASTER_FLAG_DEFAULT = 0, #define FT_RASTER_FLAG_DIRECT 0x2
FT_RASTER_FLAG_AA = 1, #define FT_RASTER_FLAG_CLIP 0x4
FT_RASTER_FLAG_DIRECT = 2,
FT_RASTER_FLAG_CLIP = 4
} FT_Raster_Flag;
/* deprecated */
#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT #define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT
#define ft_raster_flag_aa FT_RASTER_FLAG_AA #define ft_raster_flag_aa FT_RASTER_FLAG_AA
#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT #define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType incremental loading (specification). */ /* FreeType incremental loading (specification). */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -186,10 +186,10 @@ FT_BEGIN_HEADER
*/ */
typedef FT_Error typedef FT_Error
(*FT_Incremental_GetGlyphMetricsFunc) (*FT_Incremental_GetGlyphMetricsFunc)
( FT_Incremental incremental, ( FT_Incremental incremental,
FT_UInt glyph_index, FT_UInt glyph_index,
FT_Bool vertical, FT_Bool vertical,
FT_Incremental_MetricsRec *ametrics ); FT_Incremental_MetricsRec *ametrics );
/************************************************************************** /**************************************************************************
@ -199,7 +199,7 @@ FT_BEGIN_HEADER
* *
* @description: * @description:
* A table of functions for accessing fonts that load data * A table of functions for accessing fonts that load data
* incrementally. Used in @FT_Incremental_Interface. * incrementally. Used in @FT_Incremental_InterfaceRec.
* *
* @fields: * @fields:
* get_glyph_data :: * get_glyph_data ::
@ -246,8 +246,7 @@ FT_BEGIN_HEADER
* parameter.data = &inc_int; * parameter.data = &inc_int;
* *
* // set up FT_Open_Args structure * // set up FT_Open_Args structure
* open_args.flags = (FT_Open_Flags)( FT_OPEN_PATHNAME | * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS;
* FT_OPEN_PARAMS );
* open_args.pathname = my_font_pathname; * open_args.pathname = my_font_pathname;
* open_args.num_params = 1; * open_args.num_params = 1;
* open_args.params = &parameter; // we use one optional argument * open_args.params = &parameter; // we use one optional argument

View file

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType module error offsets (specification). */ /* FreeType module error offsets (specification). */
/* */ /* */
/* Copyright 2001, 2002 by */ /* Copyright 2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -23,8 +23,8 @@
/* The lower byte gives the error code, the higher byte gives the */ /* The lower byte gives the error code, the higher byte gives the */
/* module. The base module has error offset 0. For example, the error */ /* module. The base module has error offset 0. For example, the error */
/* `FT_Err_Invalid_File_Format' has value 0x003, the error */ /* `FT_Err_Invalid_File_Format' has value 0x003, the error */
/* `TT_Err_Invalid_File_Format' has value 0xB03, the error */ /* `TT_Err_Invalid_File_Format' has value 0xF03, the error */
/* `T1_Err_Invalid_File_Format' has value 0xC03, etc. */ /* `T1_Err_Invalid_File_Format' has value 0x1003, etc. */
/* */ /* */
/* Undefine the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in ftoption.h */ /* Undefine the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in ftoption.h */
/* to make the higher byte always zero (disabling the module error */ /* to make the higher byte always zero (disabling the module error */
@ -102,21 +102,25 @@
#endif #endif
FT_MODERRDEF( Base, 0x000, "base module" ) FT_MODERRDEF( Base, 0x000, "base module" )
FT_MODERRDEF( Autohint, 0x100, "autohinter module" ) FT_MODERRDEF( Autohint, 0x100, "autohinter module" )
FT_MODERRDEF( Cache, 0x200, "cache module" ) FT_MODERRDEF( BDF, 0x200, "BDF module" )
FT_MODERRDEF( CFF, 0x300, "CFF module" ) FT_MODERRDEF( Cache, 0x300, "cache module" )
FT_MODERRDEF( CID, 0x400, "CID module" ) FT_MODERRDEF( CFF, 0x400, "CFF module" )
FT_MODERRDEF( PCF, 0x500, "PCF module" ) FT_MODERRDEF( CID, 0x500, "CID module" )
FT_MODERRDEF( PSaux, 0x600, "PS auxiliary module" ) FT_MODERRDEF( Gzip, 0x600, "Gzip module" )
FT_MODERRDEF( PSnames, 0x700, "PS names module" ) FT_MODERRDEF( PCF, 0x700, "PCF module" )
FT_MODERRDEF( Raster, 0x800, "raster module" ) FT_MODERRDEF( PFR, 0x800, "PFR module" )
FT_MODERRDEF( SFNT, 0x900, "SFNT module" ) FT_MODERRDEF( PSaux, 0x900, "PS auxiliary module" )
FT_MODERRDEF( Smooth, 0xA00, "smooth raster module" ) FT_MODERRDEF( PShinter, 0xA00, "PS hinter module" )
FT_MODERRDEF( TrueType, 0xB00, "TrueType module" ) FT_MODERRDEF( PSnames, 0xB00, "PS names module" )
FT_MODERRDEF( Type1, 0xC00, "Type 1 module" ) FT_MODERRDEF( Raster, 0xC00, "raster module" )
FT_MODERRDEF( Winfonts, 0xD00, "Windows FON/FNT module" ) FT_MODERRDEF( SFNT, 0xD00, "SFNT module" )
FT_MODERRDEF( PFR, 0xE00, "PFR module" ) FT_MODERRDEF( Smooth, 0xE00, "smooth raster module" )
FT_MODERRDEF( TrueType, 0xF00, "TrueType module" )
FT_MODERRDEF( Type1, 0x1000, "Type 1 module" )
FT_MODERRDEF( Type42, 0x1100, "Type 42 module" )
FT_MODERRDEF( Winfonts, 0x1200, "Windows FON/FNT module" )
#ifdef FT_MODERR_END_LIST #ifdef FT_MODERR_END_LIST

Some files were not shown because too many files have changed in this diff Show more