summaryrefslogtreecommitdiff
path: root/extras/freetype2/Jamfile
blob: c4e98a9098adab9062ec39fcb724911420dbdb6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# FreeType 2 top Jamfile (c) 2001, 2002, 2003, 2004 David Turner
#

# The HDRMACRO is already defined in FTJam and is used to add
# the content of certain macros to the list of included header
# files.
#
# We can compile FreeType 2 with classic Jam however thanks to
# the following code
#
if ! $(JAM_TOOLSET)
{
  rule HDRMACRO
  {
    # nothing
  }
}


# 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.
#
if $(FT2_TOP) != $(DOT)
{
  SubDir  FT2_TOP ;
}


# The following macros define the include directory, the source directory,
# and the final library name (without library extensions).  They can be
# replaced by other definitions when the library is compiled as part of
# a larger project.
#

# Name of FreeType include directory during compilation.
# This is relative to FT2_TOP.
#
FT2_INCLUDE_DIR ?= include ;

# Name of FreeType source directory during compilation.
# This is relative to FT2_TOP.
#
FT2_SRC_DIR ?= src ;

# Name of final library, without extension.
#
FT2_LIB ?= $(LIBPREFIX)freetype ;


# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
# This is prepended to FT2_INCLUDE_DIR.  It can be used to specify
# the location of a custom <ft2build.h> which will point to custom
# versions of "ftmodule.h" and "ftoption.h", for example.
#
FT2_BUILD_INCLUDE ?= ;

# 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.
#
# IMPORTANT: You'll need to change the content of "ftmodule.h" as well
#            if you modify this list or provide your own.
#
FT2_COMPONENTS ?= autofit    # auto-fitter
                  autohint   # auto-hinter
                  base       # base component (public APIs)
                  bdf        # BDF font driver
                  cache      # cache sub-system
                  cff        # CFF/CEF font driver
                  cid        # PostScript CID-keyed font driver
                  gzip       # support for gzip-compressed files
                  lzw        # support for LZW-compressed files
                  pcf        # PCF font driver
                  pfr        # PFR/TrueDoc font driver
                  psaux      # common PostScript routines module
                  pshinter   # PostScript hinter module
                  psnames    # PostScript names handling
                  raster     # monochrome rasterizer
                  smooth     # anti-aliased rasterizer
                  sfnt       # SFNT-based format support routines
                  truetype   # TrueType font driver
                  type1      # PostScript Type 1 font driver
                  type42     # PostScript Type 42 (embedded TrueType) driver
                  winfonts   # Windows FON/FNT font driver
                  ;


# Don't touch.
#
FT2_INCLUDE  = $(FT2_BUILD_INCLUDE)
               [ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;

FT2_SRC      = [ FT2_SubDir $(FT2_SRC_DIR) ] ;

# Location of API Reference Documentation
#
if $(DOC_DIR)
{
  DOC_DIR = $(DOCDIR:T) ;
}
else
{
  DOC_DIR = docs/reference ;
}


# Only used by FreeType developers.
#
if $(DEBUG_HINTER)
{
  CCFLAGS += -DDEBUG_HINTER ;
}


# We need "freetype2/include" in the current include path in order to
# compile any part of FreeType 2.
#
HDRS += $(FT2_INCLUDE) ;


# Uncomment the following line if you want to build individual source files
# for each FreeType 2 module.  This is only useful during development, and
# is better defined as an environment variable anyway!
#
# FT2_MULTI = true ;


# The file <freetype/config/ftheader.h> is used to define macros that are
# later used in #include statements.  It needs to be parsed in order to
# record these definitions.
#
HDRMACRO  [ FT2_SubDir  include freetype config ftheader.h ] ;
HDRMACRO  [ FT2_SubDir  include freetype internal internal.h ] ;


# Now include the Jamfile in "freetype2/src", used to drive the compilation
# of each FreeType 2 component and/or module.
#
SubInclude  FT2_TOP $(FT2_SRC_DIR) ;


# Test files (hinter debugging).  Only used by FreeType developers.
#
if $(DEBUG_HINTER)
{
  SubInclude FT2_TOP tests ;
}

actions RefDoc
{
  python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.1.8 --output=$(DOC_DIR)  $(FT2_INCLUDE)/freetype/*.h  $(FT2_INCLUDE)/freetype/config/*.h  $(FT2_INCLUDE)/freetype/cache/*.h
}

RefDoc  refdoc ;


# end of top Jamfile