2005-06-05 03:04:30 +04:00
|
|
|
# FreeType 2 top Jamfile.
|
2001-03-24 20:10:09 +03:00
|
|
|
#
|
2015-01-17 22:41:43 +03:00
|
|
|
# Copyright 2001-2015 by
|
2005-06-05 03:04:30 +04:00
|
|
|
# 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.
|
|
|
|
|
2001-03-24 20:10:09 +03:00
|
|
|
|
2002-11-07 01:32:54 +03:00
|
|
|
# The HDRMACRO is already defined in FTJam and is used to add
|
|
|
|
# the content of certain macros to the list of included header
|
|
|
|
# files.
|
|
|
|
#
|
2003-04-21 17:30:27 +04:00
|
|
|
# We can compile FreeType 2 with classic Jam however thanks to
|
2002-11-07 01:32:54 +03:00
|
|
|
# the following code
|
|
|
|
#
|
|
|
|
if ! $(JAM_TOOLSET)
|
|
|
|
{
|
|
|
|
rule HDRMACRO
|
|
|
|
{
|
2003-04-21 17:30:27 +04:00
|
|
|
# nothing
|
2002-11-07 01:32:54 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
|
2001-04-04 01:07:36 +04:00
|
|
|
# We need to invoke a SubDir rule if the FT2 source directory top is not the
|
|
|
|
# current directory. This allows us to build FreeType 2 as part of a larger
|
|
|
|
# project easily.
|
2001-03-24 20:10:09 +03:00
|
|
|
#
|
|
|
|
if $(FT2_TOP) != $(DOT)
|
|
|
|
{
|
2001-04-04 01:07:36 +04:00
|
|
|
SubDir FT2_TOP ;
|
2001-03-24 20:10:09 +03:00
|
|
|
}
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
|
|
|
|
# The following macros define the include directory, the source directory,
|
|
|
|
# and the final library name (without library extensions). They can be
|
2002-11-07 01:32:54 +03:00
|
|
|
# replaced by other definitions when the library is compiled as part of
|
|
|
|
# a larger project.
|
|
|
|
#
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
# Name of FreeType include directory during compilation.
|
|
|
|
# This is relative to FT2_TOP.
|
2002-11-07 01:32:54 +03:00
|
|
|
#
|
|
|
|
FT2_INCLUDE_DIR ?= include ;
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
# Name of FreeType source directory during compilation.
|
|
|
|
# This is relative to FT2_TOP.
|
2002-11-07 01:32:54 +03:00
|
|
|
#
|
|
|
|
FT2_SRC_DIR ?= src ;
|
2001-03-24 20:10:09 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
# Name of final library, without extension.
|
2002-11-07 01:32:54 +03:00
|
|
|
#
|
|
|
|
FT2_LIB ?= $(LIBPREFIX)freetype ;
|
2001-03-24 20:10:09 +03:00
|
|
|
|
2002-11-07 01:32:54 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
|
|
|
|
# This is prepended to FT2_INCLUDE_DIR. It can be used to specify
|
2002-11-07 01:32:54 +03:00
|
|
|
# the location of a custom <ft2build.h> which will point to custom
|
2005-10-18 10:09:13 +04:00
|
|
|
# versions of `ftmodule.h' and `ftoption.h', for example.
|
2002-11-07 01:32:54 +03:00
|
|
|
#
|
|
|
|
FT2_BUILD_INCLUDE ?= ;
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
# The list of modules to compile on any given build of the library.
|
|
|
|
# By default, this will contain _all_ modules defined in FT2_SRC_DIR.
|
2002-11-07 01:32:54 +03:00
|
|
|
#
|
2005-10-18 10:09:13 +04:00
|
|
|
# IMPORTANT: You'll need to change the content of `ftmodule.h' as well
|
2002-11-07 01:32:54 +03:00
|
|
|
# if you modify this list or provide your own.
|
|
|
|
#
|
2003-12-24 21:42:04 +03:00
|
|
|
FT2_COMPONENTS ?= autofit # auto-fitter
|
2002-11-07 01:32:54 +03:00
|
|
|
base # base component (public APIs)
|
|
|
|
bdf # BDF font driver
|
2015-06-21 20:12:12 +03:00
|
|
|
bzip2 # support for bzip2-compressed PCF font
|
2002-11-07 01:32:54 +03:00
|
|
|
cache # cache sub-system
|
|
|
|
cff # CFF/CEF font driver
|
2003-04-21 17:30:27 +04:00
|
|
|
cid # PostScript CID-keyed font driver
|
2011-01-06 05:19:50 +03:00
|
|
|
gzip # support for gzip-compressed PCF font
|
|
|
|
lzw # support for LZW-compressed PCF font
|
2015-06-21 20:12:12 +03:00
|
|
|
pcf # PCF font driver
|
2002-11-07 01:32:54 +03:00
|
|
|
pfr # PFR/TrueDoc font driver
|
2003-04-21 17:30:27 +04:00
|
|
|
psaux # common PostScript routines module
|
|
|
|
pshinter # PostScript hinter module
|
|
|
|
psnames # PostScript names handling
|
|
|
|
raster # monochrome rasterizer
|
2002-11-07 01:32:54 +03:00
|
|
|
sfnt # SFNT-based format support routines
|
2015-06-21 20:12:12 +03:00
|
|
|
smooth # anti-aliased rasterizer
|
2002-11-07 01:32:54 +03:00
|
|
|
truetype # TrueType font driver
|
2003-04-21 17:30:27 +04:00
|
|
|
type1 # PostScript Type 1 font driver
|
|
|
|
type42 # PostScript Type 42 (embedded TrueType) driver
|
2002-11-07 01:32:54 +03:00
|
|
|
winfonts # Windows FON/FNT font driver
|
|
|
|
;
|
|
|
|
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
# Don't touch.
|
2002-11-07 01:32:54 +03:00
|
|
|
#
|
|
|
|
FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
|
|
|
|
[ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
|
|
|
|
|
|
|
|
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
|
|
|
|
|
2003-08-18 02:31:23 +04:00
|
|
|
# Location of API Reference Documentation
|
|
|
|
#
|
|
|
|
if $(DOC_DIR)
|
|
|
|
{
|
|
|
|
DOC_DIR = $(DOCDIR:T) ;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
DOC_DIR = docs/reference ;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
# Only used by FreeType developers.
|
2002-11-07 01:32:54 +03:00
|
|
|
#
|
2001-10-18 15:59:08 +04:00
|
|
|
if $(DEBUG_HINTER)
|
|
|
|
{
|
|
|
|
CCFLAGS += -DDEBUG_HINTER ;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2015-06-21 20:12:12 +03:00
|
|
|
# We need `include' in the current include path in order to
|
2001-04-04 01:07:36 +04:00
|
|
|
# compile any part of FreeType 2.
|
2015-06-21 20:12:12 +03:00
|
|
|
#
|
2003-01-08 12:10:53 +03:00
|
|
|
HDRS += $(FT2_INCLUDE) ;
|
|
|
|
|
2006-03-23 23:58:20 +03:00
|
|
|
|
2006-01-27 12:15:53 +03:00
|
|
|
# We need to #define FT2_BUILD_LIBRARY so that our sources find the
|
|
|
|
# internal headers
|
|
|
|
#
|
2015-06-21 20:12:12 +03:00
|
|
|
CCFLAGS += -DFT2_BUILD_LIBRARY ;
|
2003-01-08 12:10:53 +03:00
|
|
|
|
2001-04-04 01:07:36 +04:00
|
|
|
# Uncomment the following line if you want to build individual source files
|
2003-04-21 17:30:27 +04:00
|
|
|
# for each FreeType 2 module. This is only useful during development, and
|
|
|
|
# is better defined as an environment variable anyway!
|
2001-03-24 20:10:09 +03:00
|
|
|
#
|
* README: Formatting.
* Jamfile: Fix typo.
* src/cff/cffparse.c: Move error code #defines to...
* include/freetype/internal/cfferrs.h: This file.
* src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced
`FT_Err_*' with `CFF_Err_*'.
* src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'.
* src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto.
* src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
`TT_Err_*'.
* src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto.
* src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c,
src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'.
* include/freetype/internal/cfferrs.h: Add
`CFF_Err_Unknown_File_Format'.
* include/freetype/internal/t1errors.h: Add
`T1_Err_Unknown_File_Format'.
* include/freetype/internal/tterrors.h: Add
`TT_Err_Unknown_File_Format'.
* src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
references.
* src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.
* src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
FT_LOCAL_DEF.
* src/cid/cidobjs.c (CID_Done_Driver): Ditto.
* src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
Ditto.
* src/type1/t1objs.c (T1_Done_Driver): Ditto.
* src/pcf/pcfdriver.c (PCF_Done_Face): Ditto.
* src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'.
2001-04-03 03:54:01 +04:00
|
|
|
# FT2_MULTI = true ;
|
2001-03-24 20:10:09 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
|
2015-06-21 20:12:12 +03:00
|
|
|
# The files `ftheader.h', `internal.h', and `ftserv.h' are used to define
|
|
|
|
# macros that are later used in #include statements. They need to be parsed
|
|
|
|
# in order to record these definitions.
|
2001-03-24 20:10:09 +03:00
|
|
|
#
|
Fix Savannah bug #45097.
We no longer `pollute' the namespace of possible header file names;
instead we move `ft2build.h' up by one level so that it gets
installed in the default include directory (e.g.,
/usr/local/include). After this commit, only `ft2build.h' stays in
the compiler's include path.
No visible changes for the user who follows the standard FreeType
header inclusion rules.
* include/*: Move to ...
* include/freetype2/*: This directory, except `ft2build.h'.
* CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.
* builds/amiga/include/config/ftconfig.h, builds/freetype.mk
(PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
builds/unix/install.mk (install, uninstall),
builds/unix/freetype2.in: Updated.
* builds/unix/freetype-config.in: Updated.
Emit -I directory only if it is not `/usr/include'.
* builds/wince/*, builds/windows/*: Updated.
* devel/ft2build.h, include/ft2build.h: Updated.
* include/freetype2/config/ftheader.h,
include/freetype2/internal/ftserv.h,
include/freetype2/internal/internal.h: Update all header file
macros.
* src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.
* docs/*: Updated.
2015-06-22 07:35:23 +03:00
|
|
|
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype2 config ftheader.h ] ;
|
|
|
|
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype2 internal internal.h ] ;
|
|
|
|
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype2 internal ftserv.h ] ;
|
2001-03-24 20:10:09 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
|
2005-10-18 10:09:13 +04:00
|
|
|
# Now include the Jamfile in `freetype2/src', used to drive the compilation
|
2001-04-04 01:07:36 +04:00
|
|
|
# of each FreeType 2 component and/or module.
|
2001-03-24 20:10:09 +03:00
|
|
|
#
|
2002-11-07 01:32:54 +03:00
|
|
|
SubInclude FT2_TOP $(FT2_SRC_DIR) ;
|
2001-03-24 20:10:09 +03:00
|
|
|
|
2015-06-21 20:12:12 +03:00
|
|
|
# Handle the generation of the `ftexport.sym' file, which contains the list
|
2005-10-18 10:09:13 +04:00
|
|
|
# of exported symbols. This can be used on Unix by libtool.
|
2005-10-16 12:29:12 +04:00
|
|
|
#
|
|
|
|
SubInclude FT2_TOP $(FT2_SRC_DIR) tools ;
|
|
|
|
|
|
|
|
rule GenExportSymbols
|
|
|
|
{
|
2005-10-28 20:14:14 +04:00
|
|
|
local apinames = apinames$(SUFEXE) ;
|
|
|
|
local headers = [ Glob $(2) : *.h ] ;
|
2005-10-16 12:29:12 +04:00
|
|
|
|
2005-12-14 19:38:31 +03:00
|
|
|
LOCATE on $(1) = $(ALL_LOCATE_TARGET) ;
|
|
|
|
|
2005-10-16 12:29:12 +04:00
|
|
|
APINAMES on $(1) = apinames$(SUFEXE) ;
|
|
|
|
|
2005-10-28 20:14:14 +04:00
|
|
|
Depends $(1) : $(apinames) $(headers) ;
|
2005-10-16 12:29:12 +04:00
|
|
|
GenExportSymbols1 $(1) : $(headers) ;
|
2005-10-28 20:14:14 +04:00
|
|
|
Clean clean : $(1) ;
|
2005-10-16 12:29:12 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
actions GenExportSymbols1 bind APINAMES
|
|
|
|
{
|
|
|
|
$(APINAMES) $(2) > $(1)
|
|
|
|
}
|
|
|
|
|
2013-11-13 11:55:46 +04:00
|
|
|
GenExportSymbols ftexport.sym : include include/cache ;
|
2001-03-24 20:10:09 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
# Test files (hinter debugging). Only used by FreeType developers.
|
2001-10-18 15:59:08 +04:00
|
|
|
#
|
|
|
|
if $(DEBUG_HINTER)
|
|
|
|
{
|
|
|
|
SubInclude FT2_TOP tests ;
|
|
|
|
}
|
|
|
|
|
2005-12-23 16:32:06 +03:00
|
|
|
rule RefDoc
|
|
|
|
{
|
|
|
|
Depends $1 : all ;
|
|
|
|
NotFile $1 ;
|
|
|
|
Always $1 ;
|
|
|
|
}
|
|
|
|
|
2003-08-18 02:31:23 +04:00
|
|
|
actions RefDoc
|
|
|
|
{
|
2015-06-21 20:12:12 +03:00
|
|
|
python $(FT2_SRC)/tools/docmaker/docmaker.py
|
|
|
|
--prefix=ft2
|
|
|
|
--title=FreeType-2.6
|
|
|
|
--output=$(DOC_DIR)
|
Fix Savannah bug #45097.
We no longer `pollute' the namespace of possible header file names;
instead we move `ft2build.h' up by one level so that it gets
installed in the default include directory (e.g.,
/usr/local/include). After this commit, only `ft2build.h' stays in
the compiler's include path.
No visible changes for the user who follows the standard FreeType
header inclusion rules.
* include/*: Move to ...
* include/freetype2/*: This directory, except `ft2build.h'.
* CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.
* builds/amiga/include/config/ftconfig.h, builds/freetype.mk
(PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
builds/unix/install.mk (install, uninstall),
builds/unix/freetype2.in: Updated.
* builds/unix/freetype-config.in: Updated.
Emit -I directory only if it is not `/usr/include'.
* builds/wince/*, builds/windows/*: Updated.
* devel/ft2build.h, include/ft2build.h: Updated.
* include/freetype2/config/ftheader.h,
include/freetype2/internal/ftserv.h,
include/freetype2/internal/internal.h: Update all header file
macros.
* src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.
* docs/*: Updated.
2015-06-22 07:35:23 +03:00
|
|
|
$(FT2_INCLUDE)/freetype2/*.h
|
|
|
|
$(FT2_INCLUDE)/freetype2/config/*.h
|
2003-08-18 02:31:23 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
RefDoc refdoc ;
|
|
|
|
|
|
|
|
|
2001-04-04 01:07:36 +04:00
|
|
|
# end of top Jamfile
|