Official mirror of https://gitlab.freedesktop.org/freetype/freetype
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
223 lines
5.9 KiB
223 lines
5.9 KiB
# FreeType 2 top Jamfile. |
|
# |
|
# Copyright 2001-2018 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 -m docwriter |
|
--prefix=ft2 |
|
--title=FreeType-2.9.1 |
|
--output=$(DOC_DIR) |
|
$(FT2_INCLUDE)/freetype/*.h |
|
$(FT2_INCLUDE)/freetype/config/*.h |
|
$(FT2_INCLUDE)/freetype/cache/*.h |
|
} |
|
|
|
RefDoc refdoc ; |
|
|
|
|
|
# end of top Jamfile
|
|
|