5172
+ − 1
# FreeType 2 top Jamfile.
+ − 2
#
+ − 3
# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 by
+ − 4
# David Turner, Robert Wilhelm, and Werner Lemberg.
+ − 5
#
+ − 6
# This file is part of the FreeType project, and may only be used, modified,
+ − 7
# and distributed under the terms of the FreeType project license,
+ − 8
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
+ − 9
# indicate that you have read the license and understand and accept it
+ − 10
# fully.
+ − 11
+ − 12
+ − 13
# The HDRMACRO is already defined in FTJam and is used to add
+ − 14
# the content of certain macros to the list of included header
+ − 15
# files.
+ − 16
#
+ − 17
# We can compile FreeType 2 with classic Jam however thanks to
+ − 18
# the following code
+ − 19
#
+ − 20
if ! $(JAM_TOOLSET)
+ − 21
{
+ − 22
rule HDRMACRO
+ − 23
{
+ − 24
# nothing
+ − 25
}
+ − 26
}
+ − 27
+ − 28
+ − 29
# We need to invoke a SubDir rule if the FT2 source directory top is not the
+ − 30
# current directory. This allows us to build FreeType 2 as part of a larger
+ − 31
# project easily.
+ − 32
#
+ − 33
if $(FT2_TOP) != $(DOT)
+ − 34
{
+ − 35
SubDir FT2_TOP ;
+ − 36
}
+ − 37
+ − 38
+ − 39
# The following macros define the include directory, the source directory,
+ − 40
# and the final library name (without library extensions). They can be
+ − 41
# replaced by other definitions when the library is compiled as part of
+ − 42
# a larger project.
+ − 43
#
+ − 44
+ − 45
# Name of FreeType include directory during compilation.
+ − 46
# This is relative to FT2_TOP.
+ − 47
#
+ − 48
FT2_INCLUDE_DIR ?= include ;
+ − 49
+ − 50
# Name of FreeType source directory during compilation.
+ − 51
# This is relative to FT2_TOP.
+ − 52
#
+ − 53
FT2_SRC_DIR ?= src ;
+ − 54
+ − 55
# Name of final library, without extension.
+ − 56
#
+ − 57
FT2_LIB ?= $(LIBPREFIX)freetype ;
+ − 58
+ − 59
+ − 60
# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
+ − 61
# This is prepended to FT2_INCLUDE_DIR. It can be used to specify
+ − 62
# the location of a custom <ft2build.h> which will point to custom
+ − 63
# versions of `ftmodule.h' and `ftoption.h', for example.
+ − 64
#
+ − 65
FT2_BUILD_INCLUDE ?= ;
+ − 66
+ − 67
# The list of modules to compile on any given build of the library.
+ − 68
# By default, this will contain _all_ modules defined in FT2_SRC_DIR.
+ − 69
#
+ − 70
# IMPORTANT: You'll need to change the content of `ftmodule.h' as well
+ − 71
# if you modify this list or provide your own.
+ − 72
#
+ − 73
FT2_COMPONENTS ?= autofit # auto-fitter
+ − 74
base # base component (public APIs)
+ − 75
bdf # BDF font driver
+ − 76
cache # cache sub-system
+ − 77
cff # CFF/CEF font driver
+ − 78
cid # PostScript CID-keyed font driver
+ − 79
pcf # PCF font driver
+ − 80
bzip2 # support for bzip2-compressed PCF font
+ − 81
gzip # support for gzip-compressed PCF font
+ − 82
lzw # support for LZW-compressed PCF font
+ − 83
pfr # PFR/TrueDoc font driver
+ − 84
psaux # common PostScript routines module
+ − 85
pshinter # PostScript hinter module
+ − 86
psnames # PostScript names handling
+ − 87
raster # monochrome rasterizer
+ − 88
smooth # anti-aliased rasterizer
+ − 89
sfnt # SFNT-based format support routines
+ − 90
truetype # TrueType font driver
+ − 91
type1 # PostScript Type 1 font driver
+ − 92
type42 # PostScript Type 42 (embedded TrueType) driver
+ − 93
winfonts # Windows FON/FNT font driver
+ − 94
;
+ − 95
+ − 96
+ − 97
# Don't touch.
+ − 98
#
+ − 99
FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
+ − 100
[ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
+ − 101
+ − 102
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
+ − 103
+ − 104
# Location of API Reference Documentation
+ − 105
#
+ − 106
if $(DOC_DIR)
+ − 107
{
+ − 108
DOC_DIR = $(DOCDIR:T) ;
+ − 109
}
+ − 110
else
+ − 111
{
+ − 112
DOC_DIR = docs/reference ;
+ − 113
}
+ − 114
+ − 115
+ − 116
# Only used by FreeType developers.
+ − 117
#
+ − 118
if $(DEBUG_HINTER)
+ − 119
{
+ − 120
CCFLAGS += -DDEBUG_HINTER ;
+ − 121
}
+ − 122
+ − 123
+ − 124
# We need `freetype2/include' in the current include path in order to
+ − 125
# compile any part of FreeType 2.
+ − 126
#: updating documentation for upcoming release
+ − 127
+ − 128
HDRS += $(FT2_INCLUDE) ;
+ − 129
+ − 130
+ − 131
# We need to #define FT2_BUILD_LIBRARY so that our sources find the
+ − 132
# internal headers
+ − 133
#
+ − 134
DEFINES += FT2_BUILD_LIBRARY ;
+ − 135
+ − 136
# Uncomment the following line if you want to build individual source files
+ − 137
# for each FreeType 2 module. This is only useful during development, and
+ − 138
# is better defined as an environment variable anyway!
+ − 139
#
+ − 140
# FT2_MULTI = true ;
+ − 141
+ − 142
+ − 143
# The file <freetype/config/ftheader.h> is used to define macros that are
+ − 144
# later used in #include statements. It needs to be parsed in order to
+ − 145
# record these definitions.
+ − 146
#
+ − 147
HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ;
+ − 148
HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ;
+ − 149
+ − 150
+ − 151
# Now include the Jamfile in `freetype2/src', used to drive the compilation
+ − 152
# of each FreeType 2 component and/or module.
+ − 153
#
+ − 154
SubInclude FT2_TOP $(FT2_SRC_DIR) ;
+ − 155
+ − 156
# Handle the generation of the `ftexport.sym' file which contain the list
+ − 157
# of exported symbols. This can be used on Unix by libtool.
+ − 158
#
+ − 159
SubInclude FT2_TOP $(FT2_SRC_DIR) tools ;
+ − 160
+ − 161
rule GenExportSymbols
+ − 162
{
+ − 163
local apinames = apinames$(SUFEXE) ;
+ − 164
local headers = [ Glob $(2) : *.h ] ;
+ − 165
+ − 166
LOCATE on $(1) = $(ALL_LOCATE_TARGET) ;
+ − 167
+ − 168
APINAMES on $(1) = apinames$(SUFEXE) ;
+ − 169
+ − 170
Depends $(1) : $(apinames) $(headers) ;
+ − 171
GenExportSymbols1 $(1) : $(headers) ;
+ − 172
Clean clean : $(1) ;
+ − 173
}
+ − 174
+ − 175
actions GenExportSymbols1 bind APINAMES
+ − 176
{
+ − 177
$(APINAMES) $(2) > $(1)
+ − 178
}
+ − 179
+ − 180
GenExportSymbols ftexport.sym : include/freetype include/freetype/cache ;
+ − 181
+ − 182
# Test files (hinter debugging). Only used by FreeType developers.
+ − 183
#
+ − 184
if $(DEBUG_HINTER)
+ − 185
{
+ − 186
SubInclude FT2_TOP tests ;
+ − 187
}
+ − 188
+ − 189
rule RefDoc
+ − 190
{
+ − 191
Depends $1 : all ;
+ − 192
NotFile $1 ;
+ − 193
Always $1 ;
+ − 194
}
+ − 195
+ − 196
actions RefDoc
+ − 197
{
+ − 198
python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.4.4 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h
+ − 199
}
+ − 200
+ − 201
RefDoc refdoc ;
+ − 202
+ − 203
+ − 204
# end of top Jamfile