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
|