1 # FreeType 2 top Jamfile.
3 # Copyright 2001, 2002, 2003, 2004 by
4 # David Turner, Robert Wilhelm, and Werner Lemberg.
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
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
17 # We can compile FreeType 2 with classic Jam however thanks to
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
33 if $(FT2_TOP) != $(DOT)
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
45 # Name of FreeType include directory during compilation.
46 # This is relative to FT2_TOP.
48 FT2_INCLUDE_DIR ?= include ;
50 # Name of FreeType source directory during compilation.
51 # This is relative to FT2_TOP.
55 # Name of final library, without extension.
57 FT2_LIB ?= $(LIBPREFIX)freetype ;
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.
65 FT2_BUILD_INCLUDE ?= ;
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.
70 # IMPORTANT: You'll need to change the content of "ftmodule.h" as well
71 # if you modify this list or provide your own.
73 FT2_COMPONENTS ?= autofit # auto-fitter
74 base # base component (public APIs)
76 cache # cache sub-system
77 cff # CFF/CEF font driver
78 cid # PostScript CID-keyed font driver
79 gzip # support for gzip-compressed files
80 lzw # support for LZW-compressed files
81 #otvalid # validation of OpenType tables
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
99 FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
100 [ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
102 FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
104 # Location of API Reference Documentation
108 DOC_DIR = $(DOCDIR:T) ;
112 DOC_DIR = docs/reference ;
116 # Only used by FreeType developers.
120 CCFLAGS += -DDEBUG_HINTER ;
124 # We need "freetype2/include" in the current include path in order to
125 # compile any part of FreeType 2.
127 HDRS += $(FT2_INCLUDE) ;
130 # Uncomment the following line if you want to build individual source files
131 # for each FreeType 2 module. This is only useful during development, and
132 # is better defined as an environment variable anyway!
137 # The file <freetype/config/ftheader.h> is used to define macros that are
138 # later used in #include statements. It needs to be parsed in order to
139 # record these definitions.
141 HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ;
142 HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ;
145 # Now include the Jamfile in "freetype2/src", used to drive the compilation
146 # of each FreeType 2 component and/or module.
148 SubInclude FT2_TOP $(FT2_SRC_DIR) ;
151 # Test files (hinter debugging). Only used by FreeType developers.
155 SubInclude FT2_TOP tests ;
160 python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.1.10 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h $(FT2_INCLUDE)/freetype/cache/*.h