Implement new, simplified module selection. With GNU make it is now

sufficient to modify a single file, `modules.cfg', to control the
inclusion of modules and base extension files.

This change also fixes the creation of ftmodule.h; it now depends on
`modules.cfg' and thus is rebuilt only if necessary.

Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
default location.

* modules.cfg: New file.

* builds/freetype.mk: Don't include `modules.mk'.
Include all `rules.mk' files as specified in `modules.cfg'.
(FTOPTION_FLAG, FTOPTION_H): New variables.
(FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
Add FTOPTION_FLAG.
($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
(CONFIG_H): Add FTMODULE_H and FTOPTION_H.
(INCLUDES): Add DEVEL_DIR.
(INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
OBJ_M, OBJ_S): Use `:=', not `='.
(remove_ftmodule_h): New phony target to delete `ftmodule.h'.
(distclean): Add remove_ftmodule_h.

* builds/modules.mk: (MODULE_LIST): Removed.
(make_module_list, clean_module_list): Replace targets
with...
(FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
variables.  Reason for the change is that it is not possible to have
a phony prerequisite which is run only if the target file must be
rebuilt (phony prerequisites act like subroutines and are *always*
executed).  We only want to rebuild `ftmodule.h' if `module.cfg' is
changed.
Update all callers.
($FTMODULE_H)): Rule to create `ftmodule.h', depending on
`modules.cfg'.

* builds/toplevel.mk: Rewrite and simplify module handling.
(MODULES_CFG, FTMODULE_H): New variables.
Include MODULES_CFG.
(MODULES): New variable to include all `module.mk' and `rules.mk'
files.  We no longer use make's `wildcard' function for this.

* Makefile (USE_MODULES): Remove.  Update all users.
(OBJ_DIR): Define it here.

* src/*/module.mk: Change

    make_module_list: foo
    foo: ...

to

    FTMODULE_H_COMMANDS += FOO
    define FOO
    ...
    endef

in all files.  `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.

* src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.

* builds/unix/detect.mk (setup): Always execute `configure' script.
(have_mk): Rename to...
(have_Makefile): This.
Don't use `strip' function.

* builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
defined.
(have_mk): Don't use `strip' function.
Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
accordingly).

* builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.

* builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
BUILD_DIR but DEVEL_DIR for development header files.

* builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
(TOP_DIR, OBJ_DIR): Removed.  Defined elsewhere.

* builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
builds/win32/win32-def.mk (OBJ_DIR): Removed.  Defined elsewhere.

* builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
development header files.
Don't define PLATFORM.

* configure: Copy `modules.cfg' to builddir if builddir != srcdir.
Update snippet taken from autoconf's m4sh.m4 to current CVS version.
Be more verbose.

* include/freetype/config/ftmodule.h: Add comments -- this file is
no longer used if FreeType is built with GNU make.

* docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
Other minor updates.

* modules.txt: Removed.  Contents included in `modules.cfg'.


* include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.

* src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
[FT_STRICT_ALIASING]: Implement.
This commit is contained in:
Werner Lemberg 2006-01-31 20:17:42 +00:00
parent 5d146851df
commit 59939244ad
50 changed files with 1023 additions and 609 deletions

124
ChangeLog
View File

@ -1,9 +1,123 @@
2006-01-29 Werner Lemberg <wl@gnu.org>
Implement new, simplified module selection. With GNU make it is now
sufficient to modify a single file, `modules.cfg', to control the
inclusion of modules and base extension files.
This change also fixes the creation of ftmodule.h; it now depends on
`modules.cfg' and thus is rebuilt only if necessary.
Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
default location.
* modules.cfg: New file.
* builds/freetype.mk: Don't include `modules.mk'.
Include all `rules.mk' files as specified in `modules.cfg'.
(FTOPTION_FLAG, FTOPTION_H): New variables.
(FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
Add FTOPTION_FLAG.
($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
(CONFIG_H): Add FTMODULE_H and FTOPTION_H.
(INCLUDES): Add DEVEL_DIR.
(INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
OBJ_M, OBJ_S): Use `:=', not `='.
(remove_ftmodule_h): New phony target to delete `ftmodule.h'.
(distclean): Add remove_ftmodule_h.
* builds/modules.mk: (MODULE_LIST): Removed.
(make_module_list, clean_module_list): Replace targets
with...
(FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
variables. Reason for the change is that it is not possible to have
a phony prerequisite which is run only if the target file must be
rebuilt (phony prerequisites act like subroutines and are *always*
executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
changed.
Update all callers.
($FTMODULE_H)): Rule to create `ftmodule.h', depending on
`modules.cfg'.
* builds/toplevel.mk: Rewrite and simplify module handling.
(MODULES_CFG, FTMODULE_H): New variables.
Include MODULES_CFG.
(MODULES): New variable to include all `module.mk' and `rules.mk'
files. We no longer use make's `wildcard' function for this.
* Makefile (USE_MODULES): Remove. Update all users.
(OBJ_DIR): Define it here.
* src/*/module.mk: Change
make_module_list: foo
foo: ...
to
FTMODULE_H_COMMANDS += FOO
define FOO
...
endef
in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
* src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
* builds/unix/detect.mk (setup): Always execute `configure' script.
(have_mk): Rename to...
(have_Makefile): This.
Don't use `strip' function.
* builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
defined.
(have_mk): Don't use `strip' function.
Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
accordingly).
* builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
* builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
BUILD_DIR but DEVEL_DIR for development header files.
* builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
(TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
* builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
* builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
development header files.
Don't define PLATFORM.
* configure: Copy `modules.cfg' to builddir if builddir != srcdir.
Update snippet taken from autoconf's m4sh.m4 to current CVS version.
Be more verbose.
* include/freetype/config/ftmodule.h: Add comments -- this file is
no longer used if FreeType is built with GNU make.
* docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
Other minor updates.
* modules.txt: Removed. Contents included in `modules.cfg'.
* include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
* src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
[FT_STRICT_ALIASING]: Implement.
2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw> 2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
* src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
(cid_face_init), src/pfr/pfrobjs.c (pfr_face_init), src/type1/t1objs.c (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
(T1_Face_Init): Set face->height to src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
MAX(1.2 * units_per_EM, ascender - descender). units_per_EM, ascender - descender).
2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw> 2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
@ -13,8 +127,8 @@
* src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM. * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
* include/freetype/freetype.h (FT_FaceRec): Mention that fields may be * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
changed after file attachment. be changed after file attachment.
2006-01-28 Werner Lemberg <wl@gnu.org> 2006-01-28 Werner Lemberg <wl@gnu.org>

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002 by # Copyright 1996-2000, 2002, 2006 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,8 +18,6 @@
PROJECT := freetype PROJECT := freetype
PROJECT_TITLE := FreeType PROJECT_TITLE := FreeType
USE_MODULES := 1
# The variable TOP_DIR holds the path to the topmost directory in the project # The variable TOP_DIR holds the path to the topmost directory in the project
# engine source hierarchy. If it is not defined, default it to `.'. # engine source hierarchy. If it is not defined, default it to `.'.
# #
@ -27,6 +25,14 @@ ifndef TOP_DIR
TOP_DIR := . TOP_DIR := .
endif endif
# The variable OBJ_DIR gives the location where object files and the
# FreeType library are built.
#
ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)/objs
endif
include $(TOP_DIR)/builds/toplevel.mk include $(TOP_DIR)/builds/toplevel.mk
# EOF # EOF

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2003 by # Copyright 1996-2000, 2003, 2006 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,30 +13,12 @@
# fully. # fully.
ifndef TOP_DIR
TOP_DIR := .
endif
DELETE := rm -f DELETE := rm -f
SEP := / SEP := /
BUILD_DIR := $(TOP_DIR)/builds/ansi BUILD_DIR := $(TOP_DIR)/builds/ansi
PLATFORM := ansi PLATFORM := ansi
# The directory where all object files are placed.
#
# This lets you build the library in your own directory with something like
#
# set TOP_DIR=.../path/to/freetype2/top/dir...
# set OBJ_DIR=.../path/to/obj/dir
# make -f $TOP_DIR/Makefile setup [options]
# make -f $TOP_DIR/Makefile
#
ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)/objs
endif
# The directory where all library files are placed. # The directory where all library files are placed.
# #
# By default, this is the same as $(OBJ_DIR); however, this can be changed # By default, this is the same as $(OBJ_DIR); however, this can be changed

View File

@ -5,7 +5,7 @@
# #
# Copyright 1996-2000, 2003 by # Copyright 1996-2000, 2003, 2006 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,30 +15,12 @@
# fully. # fully.
ifndef TOP_DIR
TOP_DIR := .
endif
DELETE := rm -f DELETE := rm -f
SEP := / SEP := /
BUILD_DIR := $(TOP_DIR)/builds/beos BUILD_DIR := $(TOP_DIR)/builds/beos
PLATFORM := beos PLATFORM := beos
# The directory where all object files are placed.
#
# This lets you build the library in your own directory with something like
#
# set TOP_DIR=.../path/to/freetype2/top/dir...
# set OBJ_DIR=.../path/to/obj/dir
# make -f $TOP_DIR/Makefile setup [options]
# make -f $TOP_DIR/Makefile
#
ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)/objs
endif
# The directory where all library files are placed. # The directory where all library files are placed.
# #
# By default, this is the same as $(OBJ_DIR); however, this can be changed # By default, this is the same as $(OBJ_DIR); however, this can be changed

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2003, 2005 by # Copyright 1996-2000, 2003, 2005, 2006 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,20 +23,6 @@ PLATFORM := dos
# #
E := .exe E := .exe
# The directory where all object files are placed.
#
# This lets you build the library in your own directory with something like
#
# set TOP_DIR=.../path/to/freetype2/top/dir...
# set OBJ_DIR=.../path/to/obj/dir
# make -f %TOP_DIR%/Makefile setup [options]
# make -f %TOP_DIR%/Makefile
#
ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)/objs
endif
# The directory where all library files are placed. # The directory where all library files are placed.
# #
# By default, this is the same as $(OBJ_DIR); however, this can be changed # By default, this is the same as $(OBJ_DIR); however, this can be changed

View File

@ -21,7 +21,7 @@
# environment, or on the command line) are used: # environment, or on the command line) are used:
# #
# BUILD_DIR The architecture dependent directory, # BUILD_DIR The architecture dependent directory,
# e.g. `$(TOP_DIR)/builds/unix'. # e.g. `$(TOP_DIR)/builds/unix'. Added to INCLUDES also.
# #
# OBJ_DIR The directory in which object files are created. # OBJ_DIR The directory in which object files are created.
# #
@ -30,7 +30,9 @@
# DOC_DIR The directory in which the API reference 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. #
# DEVEL_DIR Development directory which is added to the INCLUDES
# variable before the standard include directories.
# #
# CFLAGS Compilation flags. This overrides the default settings # CFLAGS Compilation flags. This overrides the default settings
# in the platform-specific configuration files. # in the platform-specific configuration files.
@ -42,9 +44,9 @@
# file for `src/base/ftdebug.c'. [For a normal build, this # file for `src/base/ftdebug.c'. [For a normal build, this
# file does nothing.] # file does nothing.]
# #
# FT_MODULE_LIST The file which contains the list of modules for the # FTMODULE_H The file which contains the list of module classes for
# current build. Usually, this is automatically created by # the current build. Usually, this is automatically
# `modules.mk'. # created by `modules.mk'.
# #
# BASE_OBJ_S # BASE_OBJ_S
# BASE_OBJ_M A list of base objects (for single object and multiple # BASE_OBJ_M A list of base objects (for single object and multiple
@ -115,15 +117,17 @@ PROJECT_LIBRARY := $(LIB_DIR)/$(LIBRARY).$A
# include paths # include paths
# #
# IMPORTANT NOTE: The architecture-dependent directory must ALWAYS be placed # IMPORTANT NOTE: The architecture-dependent directory must ALWAYS be placed
# in front of the include list. Porters are then able to # before the standard include list. Porters are then able to
# put their own version of some of the FreeType components # put their own version of some of the FreeType components
# 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 := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) $(BUILD_DIR) \ INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) \
$(DEVEL_DIR) \
$(BUILD_DIR) \
$(TOP_DIR)/include) $(TOP_DIR)/include)
INCLUDE_FLAGS = $(INCLUDES:%=$I%) INCLUDE_FLAGS := $(INCLUDES:%=$I%)
# C flags used for the compilation of an object file. This must include at # C flags used for the compilation of an object file. This must include at
@ -137,19 +141,30 @@ INCLUDE_FLAGS = $(INCLUDES:%=$I%)
# FreeType. This is required to let our sources include the internal # FreeType. This is required to let our sources include the internal
# headers (something forbidden by clients). # headers (something forbidden by clients).
# #
FT_CFLAGS = $(CPPFLAGS) $(INCLUDE_FLAGS) $(CFLAGS) $DFT2_BUILD_LIBRARY # Finally, we define FT_CONFIG_MODULES_H so that the compiler uses the
# generated version of `ftmodule.h' in $(OBJ_DIR). If there is an
# `ftoption.h' files in $(OBJ_DIR), define FT_CONFIG_OPTIONS_H too.
#
ifneq ($(wildcard $(OBJ_DIR)/ftoption.h),)
FTOPTION_H := $(OBJ_DIR)/ftoption.h
FTOPTION_FLAG := $DFT_CONFIG_OPTIONS_H="<ftoption.h>"
endif
FT_CFLAGS = $(CPPFLAGS) \
$(INCLUDE_FLAGS) \
$(CFLAGS) \
$DFT2_BUILD_LIBRARY \
$DFT_CONFIG_MODULES_H="<ftmodule.h>" \
$(FTOPTION_FLAG)
FT_CC = $(CC) $(FT_CFLAGS) FT_CC = $(CC) $(FT_CFLAGS)
FT_COMPILE = $(CC) $(ANSIFLAGS) $(FT_CFLAGS) FT_COMPILE = $(CC) $(ANSIFLAGS) $(FT_CFLAGS)
# Include the `modules' rules file. # Include the `exports' rules file.
#
include $(TOP_DIR)/builds/modules.mk
# Includes the 'exports' rules file.
# #
include $(TOP_DIR)/builds/exports.mk include $(TOP_DIR)/builds/exports.mk
# Initialize the list of objects. # Initialize the list of objects.
# #
OBJECTS_LIST := OBJECTS_LIST :=
@ -166,7 +181,9 @@ PUBLIC_H := $(wildcard $(PUBLIC_DIR)/*.h)
BASE_H := $(wildcard $(INTERNAL_DIR)/*.h) \ BASE_H := $(wildcard $(INTERNAL_DIR)/*.h) \
$(wildcard $(SERVICES_DIR)/*.h) $(wildcard $(SERVICES_DIR)/*.h)
CONFIG_H := $(wildcard $(CONFIG_DIR)/*.h) \ CONFIG_H := $(wildcard $(CONFIG_DIR)/*.h) \
$(wildcard $(BUILD_DIR)/freetype/config/*.h) $(wildcard $(BUILD_DIR)/freetype/config/*.h) \
$(FTMODULE_H) \
$(FTOPTION_H)
CACHE_H := $(wildcard $(CACHE_DIR)/*.h) CACHE_H := $(wildcard $(CACHE_DIR)/*.h)
DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h) DEVEL_H := $(wildcard $(TOP_DIR)/devel/*.h)
@ -176,10 +193,10 @@ 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_DIR)/ftsystem.c FTSYS_SRC := $(BASE_DIR)/ftsystem.c
endif endif
FTSYS_OBJ = $(OBJ_DIR)/ftsystem.$O FTSYS_OBJ := $(OBJ_DIR)/ftsystem.$O
OBJECTS_LIST += $(FTSYS_OBJ) OBJECTS_LIST += $(FTSYS_OBJ)
@ -190,10 +207,10 @@ $(FTSYS_OBJ): $(FTSYS_SRC) $(FREETYPE_H)
# ftdebug component # ftdebug component
# #
ifndef FTDEBUG_SRC ifndef FTDEBUG_SRC
FTDEBUG_SRC = $(BASE_DIR)/ftdebug.c FTDEBUG_SRC := $(BASE_DIR)/ftdebug.c
endif endif
FTDEBUG_OBJ = $(OBJ_DIR)/ftdebug.$O FTDEBUG_OBJ := $(OBJ_DIR)/ftdebug.$O
OBJECTS_LIST += $(FTDEBUG_OBJ) OBJECTS_LIST += $(FTDEBUG_OBJ)
@ -203,7 +220,8 @@ $(FTDEBUG_OBJ): $(FTDEBUG_SRC) $(FREETYPE_H)
# Include all rule files from FreeType components. # Include all rule files from FreeType components.
# #
include $(wildcard $(SRC_DIR)/*/rules.mk) include $(SRC_DIR)/base/rules.mk
include $(patsubst %,$(SRC_DIR)/%/rules.mk,$(MODULES))
# ftinit component # ftinit component
@ -222,17 +240,14 @@ 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_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<) $(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# All FreeType library objects # All FreeType library objects.
# #
# By default, we include the base layer extensions. These could be OBJ_M := $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M)
# omitted on builds which do not want them. OBJ_S := $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S)
#
OBJ_M = $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M)
OBJ_S = $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S)
# The target `multi' on the Make command line indicates that we want to # The target `multi' on the Make command line indicates that we want to
@ -298,13 +313,18 @@ distclean_project_dos: clean_project_dos
-$(DELETE) $(subst /,\,$(PROJECT_LIBRARY) $(DISTCLEAN) $(NO_OUTPUT)) -$(DELETE) $(subst /,\,$(PROJECT_LIBRARY) $(DISTCLEAN) $(NO_OUTPUT))
.PHONY: remove_config_mk .PHONY: remove_config_mk remove_ftmodule_h
# Remove configuration file (used for distclean). # Remove configuration file (used for distclean).
# #
remove_config_mk: remove_config_mk:
-$(DELETE) $(subst /,$(SEP),$(CONFIG_MK) $(NO_OUTPUT)) -$(DELETE) $(subst /,$(SEP),$(CONFIG_MK) $(NO_OUTPUT))
# Remove module list (used for distclean).
#
remove_ftmodule_h:
-$(DELETE) $(subst /,$(SEP),$(FTMODULE_H) $(NO_OUTPUT))
.PHONY: clean distclean .PHONY: clean distclean
@ -314,7 +334,7 @@ remove_config_mk:
# implementation. # implementation.
# #
clean: clean_project clean: clean_project
distclean: distclean_project remove_config_mk distclean: distclean_project remove_config_mk remove_ftmodule_h
-$(DELETE) $(subst /,$(SEP),$(DOC_DIR)/*.html $(NO_OUTPUT)) -$(DELETE) $(subst /,$(SEP),$(DOC_DIR)/*.html $(NO_OUTPUT))

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2003 by # Copyright 1996-2000, 2003, 2006 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,43 +20,45 @@
# This file is in charge of handling the generation of the modules list # This file is in charge of handling the generation of the modules list
# file. # file.
.PHONY: make_module_list clean_module_list
# MODULE_LIST, as its name suggests, indicates where the modules list # Build the modules list.
# resides. For now, it is in `include/freetype/config/ftmodule.h'.
# #
ifndef MODULE_LIST $(FTMODULE_H): $(MODULES_CFG)
MODULE_LIST := $(TOP_DIR)/include/$(PROJECT)/config/ftmodule.h $(FTMODULE_H_INIT)
endif $(FTMODULE_H_CREATE)
$(FTMODULE_H_DONE)
# To build the modules list, we invoke the `make_module_list' target.
#
# This rule is commented out by default since FreeType comes already with
# an ftmodule.h file.
#
#$(MODULE_LIST): make_module_list
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 /,\,$(MODULE_LIST)) CLOSE_MODULE := >> $(subst /,\,$(FTMODULE_H))
REMOVE_MODULE := @-$(DELETE) $(subst /,\,$(MODULE_LIST)) REMOVE_MODULE := @-$(DELETE) $(subst /,\,$(FTMODULE_H))
else else
OPEN_MODULE := @echo " OPEN_MODULE := @echo "
CLOSE_MODULE := " >> $(MODULE_LIST) CLOSE_MODULE := " >> $(FTMODULE_H)
REMOVE_MODULE := @-$(DELETE) $(MODULE_LIST) REMOVE_MODULE := @-$(DELETE) $(FTMODULE_H)
endif endif
# Before the modules list file can be generated, we must remove the file in define FTMODULE_H_INIT
# order to `clean' the list. $(REMOVE_MODULE)
# @-echo Generating modules list in $(FTMODULE_H)...
clean_module_list: $(OPEN_MODULE)/* This is a generated file. */$(CLOSE_MODULE)
$(REMOVE_MODULE) endef
@-echo Regenerating modules list in $(MODULE_LIST)...
# It is no mistake that the final closing parenthesis is on the
# next line -- it produces proper newlines during the expansion
# of `foreach'.
#
define FTMODULE_H_CREATE
$(foreach COMMAND,$(FTMODULE_H_COMMANDS),$($(COMMAND))
)
endef
define FTMODULE_H_DONE
$(OPEN_MODULE)/* EOF */$(CLOSE_MODULE)
@echo done.
endef
make_module_list: clean_module_list
@echo done.
# $(OPEN_DRIVER) & $(CLOSE_DRIVER) are used to specify a given font driver # $(OPEN_DRIVER) & $(CLOSE_DRIVER) are used to specify a given font driver
# in the `module.mk' rules file. # in the `module.mk' rules file.
@ -68,10 +70,10 @@ ECHO_DRIVER := @echo "* module:$(space)
ECHO_DRIVER_DESC := ( ECHO_DRIVER_DESC := (
ECHO_DRIVER_DONE := )" ECHO_DRIVER_DONE := )"
# Each `module.mk' in the `src' sub-dirs is used to add one rule to the # Each `module.mk' in the `src/*' subdirectories adds a variable with
# target `make_module_list'. # commands to $(FTMODULE_H_COMMANDS). Note that we can't use SRC_DIR here.
# #
include $(wildcard $(TOP_DIR)/src/*/module.mk) -include $(patsubst %,$(TOP_DIR)/src/%/module.mk,$(MODULES))
# EOF # EOF

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2003, 2005 by # Copyright 1996-2000, 2003, 2005, 2006 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,
@ -22,20 +22,6 @@ PLATFORM := os2
# #
E := .exe E := .exe
# The directory where all object files are placed.
#
# This lets you build the library in your own directory with something like
#
# set TOP_DIR=.../path/to/freetype2/top/dir...
# set OBJ_DIR=.../path/to/obj/dir
# make -f %TOP_DIR%/Makefile setup [options]
# make -f %TOP_DIR%/Makefile
#
ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)/objs
endif
# The directory where all library files are placed. # The directory where all library files are placed.
# #
# By default, this is the same as $(OBJ_DIR); however, this can be changed # By default, this is the same as $(OBJ_DIR); however, this can be changed

View File

@ -5,7 +5,7 @@
# #
# Copyright 1996-2000, 2003 by # Copyright 1996-2000, 2003, 2006 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,9 +19,12 @@ ifndef TOP_DIR
TOP_DIR := . TOP_DIR := .
endif endif
include $(TOP_DIR)/builds/os2/os2-def.mk DEVEL_DIR := $(TOP_DIR)/devel
BUILD_DIR := $(TOP_DIR)/devel
# include OS/2-specific definitions
include $(TOP_DIR)/builds/os2/os2-def.mk
# include gcc-specific definitions
include $(TOP_DIR)/builds/compiler/gcc-dev.mk include $(TOP_DIR)/builds/compiler/gcc-dev.mk
# include linking instructions # include linking instructions

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2001, 2003 by # Copyright 1996-2000, 2001, 2003, 2006 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,
@ -36,6 +36,7 @@
.PHONY: all setup distclean modules .PHONY: all setup distclean modules
# The `space' variable is used to avoid trailing spaces in defining the # The `space' variable is used to avoid trailing spaces in defining the
# `T' variable later. # `T' variable later.
# #
@ -43,6 +44,36 @@ empty :=
space := $(empty) $(empty) space := $(empty) $(empty)
# The main configuration file, defining the `XXX_MODULES' variables. We
# prefer a `modules.cfg' file in OBJ_DIR over TOP_DIR.
#
ifndef MODULES_CFG
MODULES_CFG := $(TOP_DIR)/modules.cfg
ifneq ($(wildcard $(OBJ_DIR)/modules.cfg),)
MODULES_CFG := $(OBJ_DIR)/modules.cfg
endif
endif
# FTMODULE_H, as its name suggests, indicates where the FreeType module
# classes resides.
#
ifndef FTMODULE_H
FTMODULE_H := $(OBJ_DIR)/ftmodule.h
endif
include $(MODULES_CFG)
# The list of modules we are using.
#
MODULES := $(FONT_MODULES) \
$(HINTING_MODULES) \
$(RASTER_MODULES) \
$(AUX_MODULES)
ifndef CONFIG_MK ifndef CONFIG_MK
CONFIG_MK := config.mk CONFIG_MK := config.mk
endif endif
@ -71,33 +102,17 @@ endif
# #
ifdef check_platform ifdef check_platform
# This is the first rule `make' sees. all modules: setup
#
all: setup
ifdef USE_MODULES
# If the module list $(MODULE_LIST) file is not present, generate it.
#
#modules: make_module_list setup
endif
include $(TOP_DIR)/builds/detect.mk include $(TOP_DIR)/builds/detect.mk
ifdef USE_MODULES
include $(TOP_DIR)/builds/modules.mk
ifeq ($(wildcard $(MODULE_LIST)),)
setup: make_module_list
endif
endif
# This rule makes sense for Unix only to remove files created by a run # This rule makes sense for Unix only to remove files created by a run
# of the configure script which hasn't been successful (so that no # of the configure script which hasn't been successful (so that no
# `config.mk' has been created). It uses the built-in $(RM) command of # `config.mk' has been created). It uses the built-in $(RM) command of
# GNU make. Similarly, `nul' is created if e.g. `make setup win32' has # GNU make. Similarly, `nul' is created if e.g. `make setup win32' has
# been erroneously used. # been erroneously used.
# #
# note: This test is duplicated in "builds/toplevel.mk". # Note: This test is duplicated in `builds/unix/detect.mk'.
# #
is_unix := $(strip $(wildcard /sbin/init) \ is_unix := $(strip $(wildcard /sbin/init) \
$(wildcard /usr/sbin/init) \ $(wildcard /usr/sbin/init) \
@ -126,14 +141,25 @@ else
# #
all: single all: single
ifdef USE_MODULES
modules: make_module_list
endif
BUILD_PROJECT := yes BUILD_PROJECT := yes
include $(CONFIG_MK) include $(CONFIG_MK)
endif # test check_platform endif # test check_platform
# We always need the list of modules in ftmodule.h.
#
all setup: $(FTMODULE_H)
# The `modules' target unconditionally rebuilds the module list.
#
modules:
$(FTMODULE_H_INIT)
$(FTMODULE_H_CREATE)
$(FTMODULE_H_DONE)
include $(TOP_DIR)/builds/modules.mk
# EOF # EOF

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002, 2003, 2004 by # Copyright 1996-2000, 2002, 2003, 2004, 2006 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,
@ -66,22 +66,22 @@ ifeq ($(PLATFORM),unix)
# platform). # platform).
# #
CONFIG_FILE := unix.mk CONFIG_FILE := unix.mk
setup: $(BUILD_DIR)/unix-def.mk
unix: setup unix: setup
must_configure := 1
.PHONY: unix .PHONY: unix
endif endif
endif endif
setup: std_setup have_Makefile := $(wildcard $(OBJ_DIR)/Makefile)
have_mk := $(strip $(wildcard $(OBJ_DIR)/Makefile)) setup: std_setup
ifneq ($(have_mk),) ifdef must_configure
# we are building FT2 not in the src tree ifneq ($(have_Makefile),)
$(BUILD_DIR)/unix-def.mk: $(TOP_DIR)/builds/unix/unix-def.in # we are building FT2 not in the src tree
$(TOP_DIR)/builds/unix/configure $(CFG) $(TOP_DIR)/builds/unix/configure $(CFG)
else else
$(BUILD_DIR)/unix-def.mk: $(TOP_DIR)/builds/unix/unix-def.in cd builds/unix; ./configure $(CFG)
cd builds/unix; ./configure $(CFG) endif
endif endif
endif # test PLATFORM unix endif # test PLATFORM unix

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002, 2003 by # Copyright 1996-2000, 2002, 2003, 2006 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,
@ -24,17 +24,17 @@
# Unix installation and deinstallation targets. # Unix installation and deinstallation targets.
# #
# note that we don't install internal headers since 2.2.0, and # Note that we no longer install internal headers, and we remove any
# we remove any 'internal' directory found in $(includedir)/freetype2/freetype # `internal' subdirectory found in `$(includedir)/freetype2/freetype'.
# #
install: $(PROJECT_LIBRARY) install: $(PROJECT_LIBRARY)
$(MKINSTALLDIRS) $(DESTDIR)$(libdir) \ $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
$(DESTDIR)$(libdir)/pkgconfig \ $(DESTDIR)$(libdir)/pkgconfig \
$(DESTDIR)$(includedir)/freetype2/freetype/config \ $(DESTDIR)$(includedir)/freetype2/freetype/config \
$(DESTDIR)$(includedir)/freetype2/freetype/cache \ $(DESTDIR)$(includedir)/freetype2/freetype/cache \
$(DESTDIR)$(bindir) \ $(DESTDIR)$(bindir) \
$(DESTDIR)$(datadir)/aclocal $(DESTDIR)$(datadir)/aclocal
$(LIBTOOL) --mode=install $(INSTALL) \ $(LIBTOOL) --mode=install $(INSTALL) \
$(PROJECT_LIBRARY) $(DESTDIR)$(libdir) $(PROJECT_LIBRARY) $(DESTDIR)$(libdir)
-for P in $(PUBLIC_H) ; do \ -for P in $(PUBLIC_H) ; do \
$(INSTALL_DATA) \ $(INSTALL_DATA) \
@ -52,8 +52,10 @@ install: $(PROJECT_LIBRARY)
-$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/internal -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/internal
$(INSTALL_DATA) $(BUILD_DIR)/ft2unix.h \ $(INSTALL_DATA) $(BUILD_DIR)/ft2unix.h \
$(DESTDIR)$(includedir)/ft2build.h $(DESTDIR)$(includedir)/ft2build.h
$(INSTALL_DATA) $(OBJ_BUILD)/ftconfig.h \ $(INSTALL_DATA) $(OBJ_BUILD)/ftconfig.h \
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftconfig.h $(DESTDIR)$(includedir)/freetype2/freetype/config/ftconfig.h
$(INSTALL_DATA) $(OBJ_BUILD)/ftmodule.h \
$(DESTDIR)$(includedir)/freetype2/freetype/config/ftmodule.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_DIR)/freetype2.m4 \ $(INSTALL_SCRIPT) -m 644 $(BUILD_DIR)/freetype2.m4 \

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002, 2004 by # Copyright 1996-2000, 2002, 2004, 2006 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,9 +13,6 @@
# fully. # fully.
ifndef TOP_DIR
TOP_DIR := .
endif
TOP_DIR := $(shell cd $(TOP_DIR); pwd) TOP_DIR := $(shell cd $(TOP_DIR); pwd)
DELETE := @RMF@ DELETE := @RMF@
@ -61,20 +58,6 @@ datadir := @datadir@
version_info := @version_info@ version_info := @version_info@
# The directory where all object files are placed.
#
# This lets you build the library in your own directory with something like
#
# set TOP_DIR=.../path/to/freetype2/top/dir...
# set OBJ_DIR=.../path/to/obj/dir
# make -f $TOP_DIR/Makefile setup [options]
# make -f $TOP_DIR/Makefile
#
ifndef OBJ_DIR
OBJ_DIR := $(shell cd $(TOP_DIR)/objs; pwd)
endif
# The directory where all library files are placed. # The directory where all library files are placed.
# #
# By default, this is the same as $(OBJ_DIR); however, this can be changed # By default, this is the same as $(OBJ_DIR); however, this can be changed

View File

@ -6,7 +6,7 @@
# #
# Copyright 1996-2000, 2003 by # Copyright 1996-2000, 2003, 2006 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,9 +16,9 @@
# fully. # fully.
include $(TOP_DIR)/builds/unix/unixddef.mk DEVEL_DIR := $(TOP_DIR)/devel
BUILD_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/unix/unixddef.mk
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

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002, 2004 by # Copyright 1996-2000, 2002, 2004, 2006 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,14 +16,14 @@
BUILD_DIR := $(TOP_DIR)/builds/unix BUILD_DIR := $(TOP_DIR)/builds/unix
PLATFORM := unix PLATFORM := unix
have_mk := $(strip $(wildcard $(BUILD_DIR)/unix-def.mk)) have_mk := $(wildcard $(OBJ_DIR)/unix-def.mk)
ifneq ($(have_mk),) ifneq ($(have_mk),)
include $(BUILD_DIR)/unix-def.mk # We are building FreeType 2 not in the src tree.
include $(BUILD_DIR)/unix-cc.mk
else
# we are building FT2 not in the src tree
include $(OBJ_DIR)/unix-def.mk include $(OBJ_DIR)/unix-def.mk
include $(OBJ_DIR)/unix-cc.mk include $(OBJ_DIR)/unix-cc.mk
else
include $(BUILD_DIR)/unix-def.mk
include $(BUILD_DIR)/unix-cc.mk
endif endif
ifdef BUILD_PROJECT ifdef BUILD_PROJECT
@ -48,14 +48,15 @@ ifdef BUILD_PROJECT
# #
# librarian library_file {list of object files} # librarian library_file {list of object files}
# #
$(PROJECT_LIBRARY): $(OBJECTS_LIST) $(PROJECT_LIBRARY): $(OBJECTS_LIST)
ifdef CLEAN_LIBRARY ifdef CLEAN_LIBRARY
-$(CLEAN_LIBRARY) $(NO_OUTPUT) -$(CLEAN_LIBRARY) $(NO_OUTPUT)
endif endif
$(LINK_LIBRARY) $(LINK_LIBRARY)
include $(TOP_DIR)/builds/unix/install.mk
endif endif
include $(TOP_DIR)/builds/unix/install.mk
# EOF # EOF

View File

@ -4,7 +4,7 @@
# #
# Copyright 1996-2000, 2003 by # Copyright 1996-2000, 2003, 2006 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,11 +23,7 @@ DELETE := rm -f
SEP := / SEP := /
# we use a special devel ftoption.h # we use a special devel ftoption.h
BUILD_DIR := $(TOP_DIR)/devel DEVEL_DIR := $(TOP_DIR)/devel
# do not set the platform to `unix', or libtool will trick you
PLATFORM := unixdev
# The directory where all object files are placed. # The directory where all object files are placed.
# #

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2003 by # Copyright 1996-2000, 2003, 2006 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,8 +13,9 @@
# fully. # fully.
DEVEL_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
BUILD_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/compiler/bcc-dev.mk include $(TOP_DIR)/builds/compiler/bcc-dev.mk

View File

@ -5,7 +5,7 @@
# #
# Copyright 1996-2000, 2003 by # Copyright 1996-2000, 2003, 2006 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,8 +23,9 @@ ifndef TOP_DIR
TOP_DIR := . TOP_DIR := .
endif endif
DEVEL_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/win32/win32-def.mk include $(TOP_DIR)/builds/win32/win32-def.mk
BUILD_DIR := $(TOP_DIR)/devel
include $(TOP_DIR)/builds/compiler/gcc-dev.mk include $(TOP_DIR)/builds/compiler/gcc-dev.mk

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2003, 2005 by # Copyright 1996-2000, 2003, 2005, 2006 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,
@ -22,19 +22,6 @@ PLATFORM := win32
# #
E := .exe E := .exe
# The directory where all object files are placed.
#
# This lets you build the library in your own directory with something like
#
# set TOP_DIR=.../path/to/freetype2/top/dir...
# set OBJ_DIR=.../path/to/obj/dir
# make -f %TOP_DIR%/Makefile setup [options]
# make -f %TOP_DIR%/Makefile
#
ifndef OBJ_DIR
OBJ_DIR := $(TOP_DIR)/objs
endif
# The directory where all library files are placed. # The directory where all library files are placed.
# #

44
configure vendored
View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
# Copyright 2002, 2003, 2004, 2005 by # Copyright 2002, 2003, 2004, 2005, 2006 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,
@ -30,7 +30,8 @@ if test -z "`$GNUMAKE -v 2>/dev/null | grep GNU`"; then
fi fi
fi fi
# Uh, oh. This is taken from autoconf. They know what they are doing... # Get `dirname' functionality. This is taken and adapted from autoconf's
# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
if expr a : '\(a\)' >/dev/null 2>&1; then if expr a : '\(a\)' >/dev/null 2>&1; then
ft_expr=expr ft_expr=expr
@ -38,18 +39,30 @@ else
ft_expr=false ft_expr=false
fi fi
ft2_dir=`(dirname "$0") 2>/dev/null || ft2_dir=`(dirname "$0") 2>/dev/null ||
$ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ $ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)[^/]' \| \
X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| \ X"$0" : 'X\(/\)' \| \
. : '\(.\)' 2>/dev/null || . : '\(.\)' 2>/dev/null ||
echo X"$0" | echo X"$0" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
/^X\(\/\/\)[^/].*/{ s//\1/; q; } s//\1/
/^X\(\/\/\)$/{ s//\1/; q; } q
/^X\(\/\).*/{ s//\1/; q; } }
s/.*/./; q'` /^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
abs_curr_dir=`pwd` abs_curr_dir=`pwd`
abs_ft2_dir=`cd "$ft2_dir" && pwd` abs_ft2_dir=`cd "$ft2_dir" && pwd`
@ -58,6 +71,9 @@ abs_ft2_dir=`cd "$ft2_dir" && pwd`
if test "$abs_curr_dir" != "$abs_ft2_dir"; then if test "$abs_curr_dir" != "$abs_ft2_dir"; then
mkdir reference mkdir reference
echo "Copying \`modules.cfg'"
cp $abs_ft2_dir/modules.cfg $abs_curr_dir
echo "Generating \`Makefile'"
echo "TOP_DIR := $abs_ft2_dir" > Makefile echo "TOP_DIR := $abs_ft2_dir" > Makefile
echo "OBJ_DIR := $abs_curr_dir" >> Makefile echo "OBJ_DIR := $abs_curr_dir" >> Makefile
echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile

View File

@ -15,6 +15,14 @@ LATEST CHANGES BETWEEN 2.2.0 and 2.1.10
II. IMPORTANT CHANGES II. IMPORTANT CHANGES
- FreeType's build mechanism has been redesigned. With GNU make
it is now sufficient in most cases to edit two files:
`modules.cfg', to select the library components, and the
configuration file `include/freetype/config/ftoption.h' (which
can be copied to the objects directory). Removing unused module
directories to prevent its compilation and editing
`include/freetype/config/ftmodule.h' is no longer necessary.
- The LIGHT hinting algorithm produces more pleasant results. - The LIGHT hinting algorithm produces more pleasant results.
Also, using the FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph Also, using the FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph
always forces auto-hinting, as a special exception. always forces auto-hinting, as a special exception.

View File

@ -1,56 +1,55 @@
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 FreeType is highly customizable to fit various needs, and this
document describes how it is possible to select options and components document describes how it is possible to select options and
at compilation time. components at compilation time.
I. Configuration macros I. Configuration macros
The file found in `include/freetype/config/ftoption.h' contains a list The file found in `include/freetype/config/ftoption.h' contains a
of commented configuration macros that can be toggled by developers to list of commented configuration macros that can be toggled by
indicate which features should be active while building the library. developers to 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
the file's content to suit your needs, or override it with one of the change the file's content to suit your needs, or override it with
techniques described below. one of the techniques described below.
II. Modules list II. Modules list
The file found in `include/freetype/config/ftmodule.h' contains a list If you use GNU make please edit the top-level file `modules.cfg'.
of names corresponding to the modules and font drivers to be It contains a list of available FreeType modules and extensions to
statically compiled in the FreeType library during the build. be compiled. Change it to suit your own preferences. Be aware that
certain modules depend on others, as described in the file. GNU
make uses `modules.cfg' to generate `ftmodule.h' (in the object
directory).
You can change it to suit your own preferences. Be aware that certain If you don't use GNU make you have to manually edit the file
modules depend on others, as described by the file `modules.txt' in `include/freetype/config/ftmodule.h' (which is *not* used with if
this directory. compiled with GNU make) to add or remove the drivers and components
you want to compile into the library. See `INSTALL.ANY' for more
You can modify the file's content to suit your needs, or override it information.
at compile time with one of the methods described below.
Note that you also have to rename the various `*.mk' files in the
module directories which you want to exclude so that the extension
isn't `.mk' -- GNU make uses a simple globbing mechanism to include
all those files.
III. System interface III. System interface
FreeType's default interface to the system (i.e., the parts that deal FreeType's default interface to the system (i.e., the parts that
with memory management and i/o streams) is located in deal with memory management and i/o streams) is located in
`src/base/ftsystem.c'. `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 to read font files. It is however possible to write custom memory and to read font files. It is however possible to write
implementations to suit specific systems. custom implementations to suit specific systems.
To tell the GNU Make-based build system to use a custom system To tell the GNU Make-based build system to use a custom system
interface, you have to define the environment variable FTSYS_SRC to interface, you have to define the environment variable FTSYS_SRC to
point to the relevant implementation: point to the relevant implementation:
on Unix: on Unix:
@ -69,21 +68,31 @@ III. System interface
IV. Overriding default configuration and module headers IV. Overriding default configuration and module headers
It is possible to override the default configuration and module It is possible to override the default configuration and module
headers without changing the original files. There are two ways to do headers without changing the original files. There are three ways
that: to do that:
1. Using the C include path 1. With GNU make
[This is actually a combination of method 2 and 3.]
Just put your custom `ftoption.h' file into the objects directory
(normally `<topdir>/objs'), which GNU make prefers over the
standard location. No action is needed for `ftmodule.h' because
it is generated automatically in the objects directory.
2. Using the C include path
Use the C include path to ensure that your own versions of the files Use the C include path to ensure that your own versions of the
are used at compile time when the lines files 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 are compiled. Their default values being
<freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
can do something like: can do something like:
custom/ custom/
@ -96,14 +105,14 @@ IV. Overriding default configuration and module headers
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. Redefining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H 3. Redefining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
Another way to do the same thing is to redefine the macros used to Another way to do the same thing is to redefine the macros used to
name the configuration headers. To do so, you need a custom 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_MY_PLATFORM_H__ #ifndef __FT2_BUILD_MY_PLATFORM_H__
@ -123,19 +132,19 @@ IV. Overriding default configuration and module headers
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 and change the C include path to ensure that `custom' is always
placed before the FT2 `include' during compilation. placed before the FT2 `include' during compilation.
------------------------------------------------------------------------ ----------------------------------------------------------------------
Copyright 2003, 2005 by Copyright 2003, 2005, 2006 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,
modified, and distributed under the terms of the FreeType project modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute this license, LICENSE.TXT. By continuing to use, modify, or distribute
file you indicate that you have read the license and understand and this file you indicate that you have read the license and understand
accept it fully. and accept it fully.
--- end of CUSTOMIZE --- --- end of CUSTOMIZE ---

View File

@ -1,6 +1,6 @@
There are several ways to build the FreeType library, depending on your There are several ways to build the FreeType library, depending on
system and the level of customization you need. Here is a short your system and the level of customization you need. Here is a short
overview of the documentation available: overview of the documentation available:
@ -9,15 +9,16 @@ I. Normal installation and upgrades
1. Native TrueType Hinting 1. Native TrueType Hinting
Native TrueType hinting is disabled by default[1]. If you really Native TrueType hinting is disabled by default[1]. If you really
need it, read the file `TRUETYPE' for information. need it, read the file `TRUETYPE' for information.
2. Unix Systems (as well as Cygwin or MSys on Windows) 2. Unix Systems (as well as Cygwin or MSys on Windows)
Please read *both* `UPGRADE.UNX' and `INSTALL.UNX' to install or Please read *both* `UPGRADE.UNX' and `INSTALL.UNX' to install or
upgrade FreeType 2 on a Unix system. Note that you *need* GNU Make, upgrade FreeType 2 on a Unix system. Note that you *need* GNU
since other make tools won't work (this includes BSD Make). Make for automatic compilation, 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
@ -27,61 +28,62 @@ I. Normal installation and upgrades
4. Other systems using GNU Make 4. Other systems using GNU Make
On non-Unix platforms, it is possible to build the library using GNU On non-Unix platforms, it is possible to build the library using
Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]! This GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]!
methods supports several compilers on Windows, OS/2, and BeOS, This methods supports several compilers on Windows, OS/2, and
including MinGW, Visual C++, Borland C++, and more. BeOS, including MinGW, Visual C++, Borland C++, and more.
Instructions are provided in the file `INSTALL.GNU'. Instructions are provided in the file `INSTALL.GNU'.
5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior) 5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
We provide a small number of `project files' for various IDEs to 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
not supported and only sporadically maintained by FreeType are not supported and only sporadically maintained by FreeType
developers, so don't expect them to work in each release. developers, so don't expect them to work in each release.
To find them, have a look at the content of the `builds/<system>' To find them, have a look at the content of the `builds/<system>'
directory, where <system> stands for your OS or environment. 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
given in the `INSTALL.ANY' document of this directory. instructions given in the `INSTALL.ANY' document of this
directory.
II. Custom builds of the library II. Custom builds of the library
================================ ================================
Customizing the compilation of FreeType is easy, and allows you to Customizing the compilation of FreeType is easy, and allows you to
select only the components of the font engine that you really need. select only the components of the font engine that you really need.
For more details 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
[2] make++, a make tool written in Perl, has sufficient support of GNU [2] make++, a make tool written in Perl, has sufficient support of GNU
make extensions to build FreeType. See make extensions to build FreeType. See
http://makepp.sourceforge.net http://makepp.sourceforge.net
for more information; you need version 1.19 or newer, and you must for more information; you need version 1.19 or newer, and you must
pass option `--norc-substitution'. pass option `--norc-substitution'.
------------------------------------------------------------------------ ----------------------------------------------------------------------
Copyright 2000, 2001, 2002, 2003, 2004, 2005 by Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006 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,
modified, and distributed under the terms of the FreeType project modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute this license, LICENSE.TXT. By continuing to use, modify, or distribute
file you indicate that you have read the license and understand and this file you indicate that you have read the license and understand
accept it fully. and accept it fully.
--- end of INSTALL --- --- end of INSTALL ---

View File

@ -1,29 +1,29 @@
Instructions on how to build FreeType with your own build tool Instructions on how to build FreeType with your own build tool
============================================================== ==============================================================
See the file `CUSTOMIZE' to learn how to customize FreeType to specific See the file `CUSTOMIZE' to learn how to customize FreeType to
environments. specific environments.
I. Standard procedure 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 ISO C which are not correctly supported by this compiler while being ISO
compliant! C compliant!
* You need to add the directories `freetype2/include' to your include * You need to add the directories `freetype2/include' to your
path when compiling the library. include path when compiling the library.
* FreeType 2 is made of several components; each of them is located in * FreeType 2 is made of several components; each of them is located
a subdirectory of `freetype2/src'. For example, in 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)
@ -63,7 +63,8 @@ I. Standard procedure
src/type42/type42.c -- Type 42 font driver src/type42/type42.c -- Type 42 font driver
src/winfonts/winfnt.c -- Windows FONT / FNT font driver src/winfonts/winfnt.c -- Windows FONT / FNT font driver
-- rasterizers (optional; at least one is needed for vector formats) -- rasterizers (optional; at least one is needed for
vector formats)
src/raster/raster.c -- monochrome rasterizer src/raster/raster.c -- monochrome rasterizer
src/smooth/smooth.c -- anti-aliasing rasterizer src/smooth/smooth.c -- anti-aliasing rasterizer
@ -90,17 +91,19 @@ I. Standard procedure
`type42.c' needs `truetype.c' `type42.c' needs `truetype.c'
Read the file `CUSTOMIZE' in case you want to compile only a subset of Read the file `CUSTOMIZE' in case you want to compile only a subset
the drivers, renderers, and optional modules. of the drivers, renderers, and optional modules; a detailed
description of the various base extension is given in the top-level
file `modules.cfg'.
You are done. In case of problems, see the archives of the FreeType You are done. In case of problems, see the archives of the FreeType
development mailing list. 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
@ -118,19 +121,19 @@ II. Support for flat-directory compilation
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
required in previous releases of FreeType 2). was required in previous releases of FreeType 2).
------------------------------------------------------------------------ ----------------------------------------------------------------------
Copyright 2003, 2005, 2006 by Copyright 2003, 2005, 2006 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,
modified, and distributed under the terms of the FreeType project modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute this license, LICENSE.TXT. By continuing to use, modify, or distribute
file you indicate that you have read the license and understand and this file you indicate that you have read the license and understand
accept it fully. and accept it fully.
--- end of INSTALL.ANY --- --- end of INSTALL.ANY ---

View File

@ -1,34 +1,34 @@
This document contains instructions how to build the FreeType library on This document contains instructions how to build the FreeType library
non-Unix systems with the help of GNU Make. Note that if you are on non-Unix systems with the help of GNU Make. Note that if you are
running Cygwin or MSys in Windows, you should follow the instructions in running Cygwin or MSys in Windows, you should follow the instructions
the file INSTALL.UNX instead. in 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.
1. Install GNU Make 1. Install GNU Make
------------------- -------------------
Because GNU Make is the only Make tool supported to compile FreeType Because GNU Make is the only Make tool supported to compile
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. Make.
NEARLY ALL OTHER MAKE TOOLS FAIL, INCLUDING `BSD MAKE', SO REALLY NEARLY ALL OTHER MAKE TOOLS FAIL, INCLUDING `BSD MAKE', SO REALLY
INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM! INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
Note that make++, a make tool written in Perl, supports enough Note that make++, a make tool written in Perl, supports enough
features of GNU make to compile FreeType. See features of GNU make to compile FreeType. See
http://makepp.sourceforge.net http://makepp.sourceforge.net
for more information; you need version 1.19 or newer, and you must for more information; you need version 1.19 or newer, and you must
pass option `--norc-substitution'. pass option `--norc-substitution'.
Make sure that you are invoking GNU Make from the command line, by Make sure that you are invoking GNU Make from the command line, by
typing something like: typing something like:
make -v make -v
@ -41,10 +41,10 @@ the file INSTALL.UNX instead.
2. Invoke `make' 2. Invoke `make'
---------------- ----------------
Go to the root directory of FreeType 2, then simply invoke GNU Make Go to the root directory of FreeType 2, then simply invoke GNU
from the command line. This will launch the FreeType 2 host Make from the command line. This will launch the FreeType 2 host
platform detection routines. A summary will be displayed, for platform detection routines. A summary will be displayed, for
example, on Win32: example, on Win32.
============================================================== ==============================================================
@ -54,8 +54,8 @@ the file INSTALL.UNX instead.
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
@ -67,33 +67,33 @@ the file INSTALL.UNX instead.
============================================================= =============================================================
If the detected settings correspond to your platform and compiler, If the detected settings correspond to your platform and compiler,
skip to step 5. 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'.
3. 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>
Examples: 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
@ -103,53 +103,57 @@ the file INSTALL.UNX instead.
4. Configure the build system for an unknown platform/compiler 4. Configure the build system for an unknown platform/compiler
-------------------------------------------------------------- --------------------------------------------------------------
The auto-detection/setup phase of the build system copies a file to The auto-detection/setup phase of the build system copies a file
the current directory under the name `config.mk'. to the current directory under the name `config.mk'.
For example, on OS/2+gcc, it would simply copy 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 5. step 5.
Note that this file is a sub-Makefile used to specify Make variables Note that this file is a sub-Makefile used to specify Make
for compiler and linker invocation during the build. You can easily variables for compiler and linker invocation during the build.
create your own version from one of the existing configuration You can easily create your own version from one of the existing
files, then copy it to the current directory under the name configuration files, then copy it to the current directory under
`./config.mk'. the name `./config.mk'.
5. Build the library 5. Build the library
-------------------- --------------------
The auto-detection/setup phase should have copied a file in the The auto-detection/setup phase should have copied a file in the
current directory, called `./config.mk'. This file contains current directory, called `./config.mk'. This file contains
definitions of various Make variables used to invoke the compiler definitions of various Make variables used to invoke the compiler
and linker during the build. and linker during the build. [It has also generated a file called
`ftmodule.h' in the objects directory (which is normally
`<toplevel>/objs/'); please read the file `docs/CUSTOMIZE' for
customization of FreeType.]
To launch the build, simply invoke GNU Make again: The top Makefile To launch the build, simply invoke GNU Make again: The top
will detect the configuration file and run the build with it. Makefile will detect the configuration file and run the build with
it.
Final note Final note
The build system builds a statically linked library of the font The build system builds a statically linked library of the font
engine in the `objs' directory. It does _not_ support the build of engine in the `objs' directory. It does _not_ support the build
DLLs on Windows and OS/2. If you need these, you have to either use of DLLs on Windows and OS/2. If you need these, you have to
an IDE-specific project file, or follow the instructions in either use an IDE-specific project file, or follow the
`INSTALL.ANY' to create your own Makefiles. instructions in `INSTALL.ANY' to create your own Makefiles.
------------------------------------------------------------------------ ----------------------------------------------------------------------
Copyright 2003, 2004, 2005 by Copyright 2003, 2004, 2005, 2006 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,
modified, and distributed under the terms of the FreeType project modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute this license, LICENSE.TXT. By continuing to use, modify, or distribute
file you indicate that you have read the license and understand and this file you indicate that you have read the license and understand
accept it fully. and accept it fully.
--- end of INSTALL.GNU --- --- end of INSTALL.GNU ---

View File

@ -1,62 +1,62 @@
This document contains instructions on how to build the FreeType library This document contains instructions on how to build the FreeType
on Unix systems. This also works for emulations like Cygwin or MSys on library on Unix systems. This also works for emulations like Cygwin
Win32: or MSys on Win32:
1. 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 below will not be able to compile the library with the instructions
using any other alternative (including BSD Make). below using any other alternative (including BSD Make).
[Well, this is not really correct. Recently, a perl implementation [Well, this is not really correct. A few years ago a perl
of make called `makepp' has appeared which can also build FreeType 2 implementation of make called `makepp' has appeared which can also
successfully on Unix platforms. See build FreeType 2 successfully on Unix platforms. See
http://makepp.sourceforge.net http://makepp.sourceforge.net
for more details; you need version 1.19 or newer, and you must pass for more details; you need version 1.19 or newer, and you must
option `--norc-substitution'.] pass option `--norc-substitution'.]
Trying to compile the library with a different Make tool will print Trying to compile the library with a different Make tool will
a message like: 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 GNU and the build process will be aborted. If this happens, install
Make on your system, and use the GNUMAKE environment variable to GNU Make on your system, and use the GNUMAKE environment variable
name it. to name it, if necessary.
2. Build and install the library 2. Build and install the library
-------------------------------- --------------------------------
The following should work on all Unix systems where the `make' The following should work on all Unix systems where the `make'
command invokes GNU Make: command invokes GNU Make:
./configure [options] ./configure [options]
make make
make install (as root) make install (as root)
The default installation path is `/usr/local'. It can be changed The default installation path is `/usr/local'. It can be changed
with the `--prefix=<path>' option. Example: with the `--prefix=<path>' option. Example:
./configure --prefix=/usr ./configure --prefix=/usr
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 [options] GNUMAKE=gmake ./configure [options]
gmake gmake
gmake install (as root) gmake install (as root)
If this still doesn't work, there must be a problem with your system If this still doesn't work, there must be a problem with your
(e.g., you are using a very old version of GNU Make). system (e.g., you are using a very old version of GNU Make).
It is possible to compile FreeType in a different directory. It is possible to compile FreeType in a different directory.
Assuming the FreeType source files in directory `/src/freetype' a Assuming the FreeType source files in directory `/src/freetype' a
compilation in directory `foo' works as follows: compilation in directory `foo' works as follows:
cd foo cd foo
@ -64,16 +64,16 @@ Win32:
make make
make install make install
------------------------------------------------------------------------ ----------------------------------------------------------------------
Copyright 2003, 2004, 2005 by Copyright 2003, 2004, 2005, 2006 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,
modified, and distributed under the terms of the FreeType project modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute this license, LICENSE.TXT. By continuing to use, modify, or distribute
file you indicate that you have read the license and understand and this file you indicate that you have read the license and understand
accept it fully. and accept it fully.
--- end of INSTALL.UNX --- --- end of INSTALL.UNX ---

View File

@ -1,28 +0,0 @@
This file shows the interdependencies of various FreeType modules.
Note that the use of `psnames' can be controlled in ftconfig.h
(FT_CONFIG_OPTION_POSTSCRIPT_NAMES).
module dependency
---------------------------------------
cff sfnt, pshinter, psnames
cid psaux, pshinter, psnames
truetype sfnt
type1 psaux, pshinter, psnames
type42 truetype
psaux psnames
sfnt psnames
------------------------------------------------------------------------
Copyright 2001, 2002 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.
--- end of modules.txt ---

View File

@ -1,3 +1,15 @@
/*
* This file registers the FreeType modules compiled into the library.
*
* If you use GNU make, this file IS NOT USED! Instead, it is created in
* the objects directory (normally `<topdir>/objs/') based on information
* from `<topdir>/modules.cfg'.
*
* Please read `docs/INSTALL.ANY' and `docs/CUSTOMIZE' how to compile
* FreeType without GNU make.
*
*/
FT_USE_MODULE(autofit_module_class) FT_USE_MODULE(autofit_module_class)
FT_USE_MODULE(tt_driver_class) FT_USE_MODULE(tt_driver_class)
FT_USE_MODULE(t1_driver_class) FT_USE_MODULE(t1_driver_class)
@ -16,3 +28,5 @@ FT_USE_MODULE(ft_smooth_renderer_class)
FT_USE_MODULE(ft_smooth_lcd_renderer_class) FT_USE_MODULE(ft_smooth_lcd_renderer_class)
FT_USE_MODULE(ft_smooth_lcdv_renderer_class) FT_USE_MODULE(ft_smooth_lcdv_renderer_class)
FT_USE_MODULE(bdf_driver_class) FT_USE_MODULE(bdf_driver_class)
/* EOF */

View File

@ -108,7 +108,6 @@ FT_BEGIN_HEADER
FT_BASE( FT_Pointer ) FT_BASE( FT_Pointer )
FT_QAlloc_Debug( FT_Memory memory, FT_QAlloc_Debug( FT_Memory memory,
FT_Long size, FT_Long size,
void* P,
FT_Error *p_error, FT_Error *p_error,
const char* file_name, const char* file_name,
FT_Long line_no ); FT_Long line_no );
@ -133,7 +132,7 @@ FT_BEGIN_HEADER
FT_BASE( void ) FT_BASE( void )
FT_Free_Debug( FT_Memory memory, FT_Free_Debug( FT_Memory memory,
FT_Pointer block, const void *P,
const char* file_name, const char* file_name,
FT_Long line_no ); FT_Long line_no );

227
modules.cfg Normal file
View File

@ -0,0 +1,227 @@
# modules.cfg
#
# Copyright 2005 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.
#
#
# In case you compile the FreeType library with GNU make or makepp, this
# file controls which components are built into the library. Otherwise,
# please read this file for information on the various modules and its
# dependencies, then follow the instructions in the file `docs/INSTALL.ANY'.
#
# To deactivate a module, simply comment out the corresponding line. To
# activate a module, remove the comment character.
#
# Note that many modules and components are further controlled with macros
# in the file `include/freetype/config/ftoption.h'.
####
#### font modules -- at least one is required
####
#### The order given here (from top to down) is the order used for testing
#### font formats in the compiled library.
####
# TrueType font driver.
#
# This driver needs the `sfnt' module.
FONT_MODULES += truetype
# PostScript Type 1 font driver.
#
# This driver needs the `psaux', `pshinter', and `psnames' modules.
FONT_MODULES += type1
# CFF/OpenType font driver.
#
# This driver needs the `sfnt', `pshinter', and `psnames' modules.
FONT_MODULES += cff
# Type 1 CID-keyed font driver.
#
# This driver needs the `psaux', `pshinter', and `psnames' modules.
FONT_MODULES += cid
# PFR/TrueDoc font driver. See optional extension ftpfr.c below also.
FONT_MODULES += pfr
# PostScript Type 42 font driver.
#
# This driver needs the `truetype' module.
FONT_MODULES += type42
# Windows FONT/FNT font driver. See optional extension ftwinfnt.c below
# also.
FONT_MODULES += winfonts
# PCF font driver.
FONT_MODULES += pcf
# BDF font driver. See optional extension ftbdf.c below also.
FONT_MODULES += bdf
# SFNT files support. If used without `truetype' or `cff', it supports
# bitmap-only fonts within an SFNT wrapper.
#
# This driver needs the `psnames' module.
FONT_MODULES += sfnt
####
#### hinting modules
####
# FreeType's auto hinter.
HINTING_MODULES += autofit
# PostScript hinter.
HINTING_MODULES += pshinter
# The TrueType hinting engine doesn't have a module of its own but is
# controlled in file include/freetype/config/ftoption.h
# (TT_CONFIG_OPTION_BYTECODE_INTERPRETER and friends).
####
#### raster modules -- at least one is required for vector font formats
####
# Monochrome rasterizer.
RASTER_MODULES += raster
# Anti-aliasing rasterizer.
RASTER_MODULES += smooth
####
#### auxiliary modules
####
# FreeType's cache sub-system (quite stable but still in beta -- this means
# that its public API is subject to change if necessary). See
# include/freetype/ftcache.h.
AUX_MODULES += cache
# TrueType GX/AAT table validation. Needs ftgxval.c below.
# AUX_MODULES += gxvalid
# Support for streams compressed with gzip (files with suffix .gz).
#
# See include/freetype/ftgzip.h for the API.
AUX_MODULES += gzip
# Support for streams compressed with LZW (files with suffix .Z).
#
# See include/freetype/ftlzw.h for the API.
AUX_MODULES += lzw
# OpenType table validation. Needs ftotval.c below.
#
# AUX_MODULES += otvalid
# Auxiliary PostScript driver component to share common code.
#
# This module depends on `psnames'.
AUX_MODULES += psaux
# Support for PostScript glyph names.
#
# This module can be controlled in ftconfig.h
# (FT_CONFIG_OPTION_POSTSCRIPT_NAMES).
AUX_MODULES += psnames
####
#### base module extensions
####
# Exact bounding box calculation.
#
# See include/freetype/ftbbox.h for the API.
BASE_EXTENSIONS += ftbbox.c
# Access BDF-specific strings. Needs BDF font driver.
#
# See include/freetype/ftbdf.h for the API.
BASE_EXTENSIONS += ftbdf.c
# Utility functions for converting 1bpp, 2bpp, 4bpp, and 8bpp bitmaps into
# 8bpp format, and for emboldening of bitmap glyphs..
#
# See include/freetype/ftbitmap.h for the API.
BASE_EXTENSIONS += ftbitmap.c
# Convenience functions to handle glyphs.
#
# See include/freetype/ftglyph.h for the API.
BASE_EXTENSIONS += ftglyph.c
# Interface for gxvalid module (which is required).
#
# See include/freetype/ftgxval.h for the API.
# BASE_EXTENSIONS += ftgxval.c
# Multiple Master font interface.
#
# See include/freetype/ftmm.h for the API.
BASE_EXTENSIONS += ftmm.c
# Interface for otvalid module (which is required).
#
# See include/freetype/ftotval.h for the API.
# BASE_EXTENSIONS += ftotval.c
# Interface for accessing PFR-specific data. Needs PFR font driver.
#
# See include/freetype/ftpfr.h for the API.
BASE_EXTENSIONS += ftpfr.c
# Path stroker.
#
# See include/freetype/ftstroke.h for the API.
BASE_EXTENSIONS += ftstroke.c
# Support for synthetic embolding and slanting of fonts.
#
# See include/freetype/ftsynth.h for the API.
BASE_EXTENSIONS += ftsynth.c
# Interface to access data specific to PostScript Type 1 and Type 2 (CFF)
# fonts.
#
# See include/freetype/t1tables.h for the API.
BASE_EXTENSIONS += fttype1.c
# Interface for accessing data specific to Windows FNT files. Needs winfnt
# driver.
#
# See include/freetype/ftwinfnt.h for the API.
BASE_EXTENSIONS += ftwinfnt.c
# Support functions for X11. Useful only for building the XFree86 font
# server.
#
# See include/freetype/ftxf86.h for the API.
# BASE_EXTENSIONS += ftxf86.c
####
#### The components `ftsystem.c' (for memory allocation and stream I/O
#### management) and `ftdebug.c' (for emitting debug messages to the user)
#### are controlled with the following variables.
####
#### ftsystem.c: $(FTSYS_SRC)
#### ftdebug.c: $(FTDEBUG_SRC)
####
#### Please refer to docs/CUSTOMIZE for details.
####
# EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_autofit_module FTMODULE_H_COMMANDS += AUTOFIT_MODULE
make_module_list: add_autofit_module define AUTOFIT_MODULE
$(OPEN_DRIVER)autofit_module_class$(CLOSE_DRIVER)
add_autofit_module: $(ECHO_DRIVER)autofit $(ECHO_DRIVER_DESC)automatic hinting module$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)autofit_module_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)autofit $(ECHO_DRIVER_DESC)automatic hinting module$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Memory debugger (body). */ /* Memory debugger (body). */
/* */ /* */
/* Copyright 2001, 2002, 2003, 2004, 2005 by */ /* Copyright 2001, 2002, 2003, 2004, 2005, 2006 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, */
@ -887,6 +887,115 @@
} }
#ifdef FT_STRICT_ALIASING
FT_BASE_DEF( FT_Pointer )
FT_Alloc_Debug( FT_Memory memory,
FT_Long size,
FT_Error *p_error,
const char* file_name,
FT_Long line_no )
{
FT_MemTable table = (FT_MemTable)memory->user;
if ( table )
{
table->file_name = file_name;
table->line_no = line_no;
}
return FT_Alloc( memory, size, p_error );
}
FT_BASE_DEF( FT_Pointer )
FT_Realloc_Debug( FT_Memory memory,
FT_Long current,
FT_Long size,
void* block,
FT_Error *p_error,
const char* file_name,
FT_Long line_no )
{
FT_MemTable table = (FT_MemTable)memory->user;
if ( table )
{
table->file_name = file_name;
table->line_no = line_no;
}
return FT_Realloc( memory, current, size, block, p_error );
}
FT_BASE_DEF( FT_Pointer )
FT_QAlloc_Debug( FT_Memory memory,
FT_Long size,
FT_Error *p_error,
const char* file_name,
FT_Long line_no )
{
FT_MemTable table = (FT_MemTable)memory->user;
if ( table )
{
table->file_name = file_name;
table->line_no = line_no;
}
return FT_QAlloc( memory, size, p_error );
}
FT_BASE_DEF( FT_Pointer )
FT_QRealloc_Debug( FT_Memory memory,
FT_Long current,
FT_Long size,
void* block,
FT_Error *p_error,
const char* file_name,
FT_Long line_no )
{
FT_MemTable table = (FT_MemTable)memory->user;
if ( table )
{
table->file_name = file_name;
table->line_no = line_no;
}
return FT_QRealloc( memory, current, size, block, p_error );
}
FT_BASE_DEF( void )
FT_Free_Debug( FT_Memory memory,
const void *P,
const char* file_name,
FT_Long line_no )
{
FT_MemTable table = (FT_MemTable)memory->user;
if ( table )
{
table->file_name = file_name;
table->line_no = line_no;
}
FT_Free( memory, (void *)P );
}
#else /* !FT_STRICT_ALIASING */
FT_BASE_DEF( FT_Error ) FT_BASE_DEF( FT_Error )
FT_Alloc_Debug( FT_Memory memory, FT_Alloc_Debug( FT_Memory memory,
FT_Long size, FT_Long size,
@ -988,6 +1097,8 @@
} }
#endif /* !FT_STRICT_ALIASING */
static int static int
ft_mem_source_compare( const void* p1, ft_mem_source_compare( const void* p1,
const void* p2 ) const void* p2 )

View File

@ -3,7 +3,7 @@
# #
# Copyright 1996-2000, 2002, 2003, 2004, 2005 by # Copyright 1996-2000, 2002, 2003, 2004, 2005, 2006 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,23 +46,11 @@ BASE_SRC := $(BASE_DIR)/ftapi.c \
# Base layer `extensions' sources # Base layer `extensions' sources
# #
# An extension is added to the library file (.a or .lib) as a separate # An extension is added to the library file as a separate object. It is
# object. It will then be linked to the final executable only if one of its # then linked to the final executable only if one of its symbols is used by
# symbols is used by the application. # the application.
# #
BASE_EXT_SRC := $(BASE_DIR)/ftbitmap.c \ BASE_EXT_SRC := $(patsubst %,$(BASE_DIR)/%,$(BASE_EXTENSIONS))
$(BASE_DIR)/ftbbox.c \
$(BASE_DIR)/ftbdf.c \
$(BASE_DIR)/ftglyph.c \
$(BASE_DIR)/ftgxval.c \
$(BASE_DIR)/ftmm.c \
$(BASE_DIR)/ftotval.c \
$(BASE_DIR)/ftpfr.c \
$(BASE_DIR)/ftstroke.c \
$(BASE_DIR)/ftsynth.c \
$(BASE_DIR)/fttype1.c \
$(BASE_DIR)/ftwinfnt.c \
$(BASE_DIR)/ftxf86.c
# Default extensions objects # Default extensions objects
# #

View File

@ -24,12 +24,11 @@
# THE SOFTWARE. # THE SOFTWARE.
.PHONY: add_bdf_driver FTMODULE_H_COMMANDS += BDF_DRIVER
make_module_list: add_bdf_driver define BDF_DRIVER
$(OPEN_DRIVER)bdf_driver_class$(CLOSE_DRIVER)
add_bdf_driver: $(ECHO_DRIVER)bdf $(ECHO_DRIVER_DESC)bdf bitmap fonts$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)bdf_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)bdf $(ECHO_DRIVER_DESC)bdf bitmap fonts$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_cff_driver FTMODULE_H_COMMANDS += CFF_DRIVER
make_module_list: add_cff_driver define CFF_DRIVER
$(OPEN_DRIVER)cff_driver_class$(CLOSE_DRIVER)
add_cff_driver: $(ECHO_DRIVER)cff $(ECHO_DRIVER_DESC)OpenType fonts with extension *.otf$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)cff_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)cff $(ECHO_DRIVER_DESC)OpenType fonts with extension *.otf$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_type1cid_driver FTMODULE_H_COMMANDS += TYPE1CID_DRIVER
make_module_list: add_type1cid_driver define TYPE1CID_DRIVER
$(OPEN_DRIVER)t1cid_driver_class$(CLOSE_DRIVER)
add_type1cid_driver: $(ECHO_DRIVER)cid $(ECHO_DRIVER_DESC)Postscript CID-keyed fonts, no known extension$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)t1cid_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)cid $(ECHO_DRIVER_DESC)Postscript CID-keyed fonts, no known extension$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_gxvalid_module FTMODULE_H_COMMANDS += GXVALID_MODULE
make_module_list: add_gxvalid_module define GXVALID_MODULE
$(OPEN_DRIVER)gxvalid_module_class$(CLOSE_DRIVER)
add_gxvalid_module: $(ECHO_DRIVER)gxvalid $(ECHO_DRIVER_DESC)TrueTypeGX/AAT validation module$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)gxvalid_module_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)gxvalid $(ECHO_DRIVER_DESC)TrueTypeGX/AAT validation module$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_otvalid_module FTMODULE_H_COMMANDS += OTVALID_MODULE
make_module_list: add_otvalid_module define OTVALID_MODULE
$(OPEN_DRIVER)otvalid_module_class$(CLOSE_DRIVER)
add_otvalid_module: $(ECHO_DRIVER)otvalid $(ECHO_DRIVER_DESC)OpenType validation module$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)otvalid_module_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)otvalid $(ECHO_DRIVER_DESC)OpenType validation module$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -24,12 +24,11 @@
# THE SOFTWARE. # THE SOFTWARE.
.PHONY: add_pcf_driver FTMODULE_H_COMMANDS += PCF_DRIVER
make_module_list: add_pcf_driver define PCF_DRIVER
$(OPEN_DRIVER)pcf_driver_class$(CLOSE_DRIVER)
add_pcf_driver: $(ECHO_DRIVER)pcf $(ECHO_DRIVER_DESC)pcf bitmap fonts$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)pcf_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)pcf $(ECHO_DRIVER_DESC)pcf bitmap fonts$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_pfr_driver FTMODULE_H_COMMANDS += PFR_DRIVER
make_module_list: add_pfr_driver define PFR_DRIVER
$(OPEN_DRIVER)pfr_driver_class$(CLOSE_DRIVER)
add_pfr_driver: $(ECHO_DRIVER)pfr $(ECHO_DRIVER_DESC)PFR/TrueDoc font files with extension *.pfr$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)pfr_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)pfr $(ECHO_DRIVER_DESC)PFR/TrueDoc font files with extension *.pfr$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_psaux_module FTMODULE_H_COMMANDS += PSAUX_MODULE
make_module_list: add_psaux_module define PSAUX_MODULE
$(OPEN_DRIVER)psaux_module_class$(CLOSE_DRIVER)
add_psaux_module: $(ECHO_DRIVER)psaux $(ECHO_DRIVER_DESC)Postscript Type 1 & Type 2 helper module$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)psaux_module_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)psaux $(ECHO_DRIVER_DESC)Postscript Type 1 & Type 2 helper module$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_pshinter_module FTMODULE_H_COMMANDS += PSHINTER_MODULE
make_module_list: add_pshinter_module define PSHINTER_MODULE
$(OPEN_DRIVER)pshinter_module_class$(CLOSE_DRIVER)
add_pshinter_module: $(ECHO_DRIVER)pshinter $(ECHO_DRIVER_DESC)Postscript hinter module$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)pshinter_module_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)pshinter $(ECHO_DRIVER_DESC)Postscript hinter module$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_psnames_module FTMODULE_H_COMMANDS += PSNAMES_MODULE
make_module_list: add_psnames_module define PSNAMES_MODULE
$(OPEN_DRIVER)psnames_module_class$(CLOSE_DRIVER)
add_psnames_module: $(ECHO_DRIVER)psnames $(ECHO_DRIVER_DESC)Postscript & Unicode Glyph name handling$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)psnames_module_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)psnames $(ECHO_DRIVER_DESC)Postscript & Unicode Glyph name handling$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_raster_module FTMODULE_H_COMMANDS += RASTER_MODULE
make_module_list: add_raster_module define RASTER_MODULE
$(OPEN_DRIVER)ft_raster1_renderer_class$(CLOSE_DRIVER)
add_raster_module: $(ECHO_DRIVER)raster $(ECHO_DRIVER_DESC)monochrome bitmap renderer$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)ft_raster1_renderer_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)raster $(ECHO_DRIVER_DESC)monochrome bitmap renderer$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_sfnt_module FTMODULE_H_COMMANDS += SFNT_MODULE
make_module_list: add_sfnt_module define SFNT_MODULE
$(OPEN_DRIVER)sfnt_module_class$(CLOSE_DRIVER)
add_sfnt_module: $(ECHO_DRIVER)sfnt $(ECHO_DRIVER_DESC)helper module for TrueType & OpenType formats$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)sfnt_module_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)sfnt $(ECHO_DRIVER_DESC)helper module for TrueType & OpenType formats$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,16 +13,15 @@
# fully. # fully.
.PHONY: add_smooth_renderer FTMODULE_H_COMMANDS += SMOOTH_RENDERER
make_module_list: add_smooth_renderer define SMOOTH_RENDERER
$(OPEN_DRIVER)ft_smooth_renderer_class$(CLOSE_DRIVER)
add_smooth_renderer: $(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)ft_smooth_renderer_class$(CLOSE_DRIVER) $(OPEN_DRIVER)ft_smooth_lcd_renderer_class$(CLOSE_DRIVER)
$(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer$(ECHO_DRIVER_DONE) $(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer for LCDs$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)ft_smooth_lcd_renderer_class$(CLOSE_DRIVER) $(OPEN_DRIVER)ft_smooth_lcdv_renderer_class$(CLOSE_DRIVER)
$(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer for LCDs$(ECHO_DRIVER_DONE) $(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer for vertical LCDs$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)ft_smooth_lcdv_renderer_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer for vertical LCDs$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_truetype_driver FTMODULE_H_COMMANDS += TRUETYPE_DRIVER
make_module_list: add_truetype_driver define TRUETYPE_DRIVER
$(OPEN_DRIVER)tt_driver_class$(CLOSE_DRIVER)
add_truetype_driver: $(ECHO_DRIVER)truetype $(ECHO_DRIVER_DESC)Windows/Mac font files with extension *.ttf or *.ttc$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)tt_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)truetype $(ECHO_DRIVER_DESC)Windows/Mac font files with extension *.ttf or *.ttc$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_type1_driver FTMODULE_H_COMMANDS += TYPE1_DRIVER
make_module_list: add_type1_driver define TYPE1_DRIVER
$(OPEN_DRIVER)t1_driver_class$(CLOSE_DRIVER)
add_type1_driver: $(ECHO_DRIVER)type1 $(ECHO_DRIVER_DESC)Postscript font files with extension *.pfa or *.pfb$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)t1_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)type1 $(ECHO_DRIVER_DESC)Postscript font files with extension *.pfa or *.pfb$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,12 +13,11 @@
# fully. # fully.
.PHONY: add_type42_driver FTMODULE_H_COMMANDS += TYPE42_DRIVER
make_module_list: add_type42_driver define TYPE42_DRIVER
$(OPEN_DRIVER)t42_driver_class$(CLOSE_DRIVER)
add_type42_driver: $(ECHO_DRIVER)type42 $(ECHO_DRIVER_DESC)Type 42 font files with no known extension$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)t42_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)type42 $(ECHO_DRIVER_DESC)Type 42 font files with no known extension$(ECHO_DRIVER_DONE)
# EOF # EOF

View File

@ -13,11 +13,11 @@
# fully. # fully.
.PHONY: add_windows_driver FTMODULE_H_COMMANDS += WINDOWS_DRIVER
make_module_list: add_windows_driver define WINDOWS_DRIVER
$(OPEN_DRIVER)winfnt_driver_class$(CLOSE_DRIVER)
add_windows_driver: $(ECHO_DRIVER)winfnt $(ECHO_DRIVER_DESC)Windows bitmap fonts with extension *.fnt or *.fon$(ECHO_DRIVER_DONE)
$(OPEN_DRIVER)winfnt_driver_class$(CLOSE_DRIVER) endef
$(ECHO_DRIVER)winfnt $(ECHO_DRIVER_DESC)Windows bitmap fonts with extension *.fnt or *.fon$(ECHO_DRIVER_DONE)
# EOF