diff options
Diffstat (limited to 'modules/freetype2/Jamfile')
-rw-r--r-- | modules/freetype2/Jamfile | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/modules/freetype2/Jamfile b/modules/freetype2/Jamfile new file mode 100644 index 000000000..581241758 --- /dev/null +++ b/modules/freetype2/Jamfile @@ -0,0 +1,222 @@ +# FreeType 2 top Jamfile. +# +# Copyright 2001-2016 by +# David Turner, Robert Wilhelm, and Werner Lemberg. +# +# This file is part of the FreeType project, and may only be used, modified, +# and distributed under the terms of the FreeType project license, +# LICENSE.TXT. By continuing to use, modify, or distribute this file you +# indicate that you have read the license and understand and accept it +# fully. + + +# 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 + base # base component (public APIs) + bdf # BDF font driver + bzip2 # support for bzip2-compressed PCF font + cache # cache sub-system + cff # CFF/CEF font driver + cid # PostScript CID-keyed font driver + gzip # support for gzip-compressed PCF font + lzw # support for LZW-compressed PCF font + 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 + sfnt # SFNT-based format support routines + smooth # anti-aliased rasterizer + 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 `include' in the current include path in order to +# compile any part of FreeType 2. +# +HDRS += $(FT2_INCLUDE) ; + + +# We need to #define FT2_BUILD_LIBRARY so that our sources find the +# internal headers +# +CCFLAGS += -DFT2_BUILD_LIBRARY ; + +# 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 files `ftheader.h', `internal.h', and `ftserv.h' are used to define +# macros that are later used in #include statements. They need to be parsed +# in order to record these definitions. +# +HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype config ftheader.h ] ; +HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype internal internal.h ] ; +HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype internal ftserv.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) ; + +# Handle the generation of the `ftexport.sym' file, which contains the list +# of exported symbols. This can be used on Unix by libtool. +# +SubInclude FT2_TOP $(FT2_SRC_DIR) tools ; + +rule GenExportSymbols +{ + local apinames = apinames$(SUFEXE) ; + local aheader ; + local headers ; + + for aheader in [ Glob $(2) : *.h ] + { + switch $(aheader) + { + case */ftmac.h : + if ( $(MAC) || $(OS) = MACOSX ) { + headers += $(aheader) ; + } + case *.h : headers += $(aheader) ; + } + } + + LOCATE on $(1) = $(ALL_LOCATE_TARGET) ; + + APINAMES on $(1) = apinames$(SUFEXE) ; + + Depends $(1) : $(apinames) $(headers) ; + GenExportSymbols1 $(1) : $(headers) ; + Clean clean : $(1) ; +} + +actions GenExportSymbols1 bind APINAMES +{ + $(APINAMES) $(2) > $(1) +} + +GenExportSymbols ftexport.sym : include/freetype ; + +# Test files (hinter debugging). Only used by FreeType developers. +# +if $(DEBUG_HINTER) +{ + SubInclude FT2_TOP tests ; +} + +rule RefDoc +{ + Depends $1 : all ; + NotFile $1 ; + Always $1 ; +} + +actions RefDoc +{ + python $(FT2_SRC)/tools/docmaker/docmaker.py + --prefix=ft2 + --title=FreeType-2.7.1 + --output=$(DOC_DIR) + $(FT2_INCLUDE)/freetype/*.h + $(FT2_INCLUDE)/freetype/config/*.h +} + +RefDoc refdoc ; + + +# end of top Jamfile |