| OLD | NEW |
| (Empty) | |
| 1 # FreeType 2 top Jamfile. |
| 2 # |
| 3 # Copyright 2001-2015 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 bzip2 # support for bzip2-compressed PCF font |
| 77 cache # cache sub-system |
| 78 cff # CFF/CEF font driver |
| 79 cid # PostScript CID-keyed font driver |
| 80 gzip # support for gzip-compressed PCF font |
| 81 lzw # support for LZW-compressed PCF font |
| 82 pcf # PCF font driver |
| 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 sfnt # SFNT-based format support routines |
| 89 smooth # anti-aliased rasterizer |
| 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 `include' in the current include path in order to |
| 125 # compile any part of FreeType 2. |
| 126 # |
| 127 HDRS += $(FT2_INCLUDE) ; |
| 128 |
| 129 |
| 130 # We need to #define FT2_BUILD_LIBRARY so that our sources find the |
| 131 # internal headers |
| 132 # |
| 133 CCFLAGS += -DFT2_BUILD_LIBRARY ; |
| 134 |
| 135 # Uncomment the following line if you want to build individual source files |
| 136 # for each FreeType 2 module. This is only useful during development, and |
| 137 # is better defined as an environment variable anyway! |
| 138 # |
| 139 # FT2_MULTI = true ; |
| 140 |
| 141 |
| 142 # The files `ftheader.h', `internal.h', and `ftserv.h' are used to define |
| 143 # macros that are later used in #include statements. They need to be parsed |
| 144 # in order to record these definitions. |
| 145 # |
| 146 HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype config ftheader.h ] ; |
| 147 HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype internal internal.h ] ; |
| 148 HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype internal ftserv.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 contains 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 include/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 |
| 199 --prefix=ft2 |
| 200 --title=FreeType-2.6.2 |
| 201 --output=$(DOC_DIR) |
| 202 $(FT2_INCLUDE)/freetype/*.h |
| 203 $(FT2_INCLUDE)/freetype/config/*.h |
| 204 } |
| 205 |
| 206 RefDoc refdoc ; |
| 207 |
| 208 |
| 209 # end of top Jamfile |
| OLD | NEW |