Blame Jamfile

Packit Service d360f7
# FreeType 2 top Jamfile.
Packit Service d360f7
#
Packit Service d360f7
# Copyright 2001-2017 by
Packit Service d360f7
# David Turner, Robert Wilhelm, and Werner Lemberg.
Packit Service d360f7
#
Packit Service d360f7
# This file is part of the FreeType project, and may only be used, modified,
Packit Service d360f7
# and distributed under the terms of the FreeType project license,
Packit Service d360f7
# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
Packit Service d360f7
# indicate that you have read the license and understand and accept it
Packit Service d360f7
# fully.
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# The HDRMACRO is already defined in FTJam and is used to add
Packit Service d360f7
# the content of certain macros to the list of included header
Packit Service d360f7
# files.
Packit Service d360f7
#
Packit Service d360f7
# We can compile FreeType 2 with classic Jam however thanks to
Packit Service d360f7
# the following code
Packit Service d360f7
#
Packit Service d360f7
if ! $(JAM_TOOLSET)
Packit Service d360f7
{
Packit Service d360f7
  rule HDRMACRO
Packit Service d360f7
  {
Packit Service d360f7
    # nothing
Packit Service d360f7
  }
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# We need to invoke a SubDir rule if the FT2 source directory top is not the
Packit Service d360f7
# current directory.  This allows us to build FreeType 2 as part of a larger
Packit Service d360f7
# project easily.
Packit Service d360f7
#
Packit Service d360f7
if $(FT2_TOP) != $(DOT)
Packit Service d360f7
{
Packit Service d360f7
  SubDir  FT2_TOP ;
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# The following macros define the include directory, the source directory,
Packit Service d360f7
# and the final library name (without library extensions).  They can be
Packit Service d360f7
# replaced by other definitions when the library is compiled as part of
Packit Service d360f7
# a larger project.
Packit Service d360f7
#
Packit Service d360f7
Packit Service d360f7
# Name of FreeType include directory during compilation.
Packit Service d360f7
# This is relative to FT2_TOP.
Packit Service d360f7
#
Packit Service d360f7
FT2_INCLUDE_DIR ?= include ;
Packit Service d360f7
Packit Service d360f7
# Name of FreeType source directory during compilation.
Packit Service d360f7
# This is relative to FT2_TOP.
Packit Service d360f7
#
Packit Service d360f7
FT2_SRC_DIR ?= src ;
Packit Service d360f7
Packit Service d360f7
# Name of final library, without extension.
Packit Service d360f7
#
Packit Service d360f7
FT2_LIB ?= $(LIBPREFIX)freetype ;
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
Packit Service d360f7
# This is prepended to FT2_INCLUDE_DIR.  It can be used to specify
Packit Service d360f7
# the location of a custom <ft2build.h> which will point to custom
Packit Service d360f7
# versions of `ftmodule.h' and `ftoption.h', for example.
Packit Service d360f7
#
Packit Service d360f7
FT2_BUILD_INCLUDE ?= ;
Packit Service d360f7
Packit Service d360f7
# The list of modules to compile on any given build of the library.
Packit Service d360f7
# By default, this will contain _all_ modules defined in FT2_SRC_DIR.
Packit Service d360f7
#
Packit Service d360f7
# IMPORTANT: You'll need to change the content of `ftmodule.h' as well
Packit Service d360f7
#            if you modify this list or provide your own.
Packit Service d360f7
#
Packit Service d360f7
FT2_COMPONENTS ?= autofit    # auto-fitter
Packit Service d360f7
                  base       # base component (public APIs)
Packit Service d360f7
                  bdf        # BDF font driver
Packit Service d360f7
                  bzip2      # support for bzip2-compressed PCF font
Packit Service d360f7
                  cache      # cache sub-system
Packit Service d360f7
                  cff        # CFF/CEF font driver
Packit Service d360f7
                  cid        # PostScript CID-keyed font driver
Packit Service d360f7
                  gzip       # support for gzip-compressed PCF font
Packit Service d360f7
                  lzw        # support for LZW-compressed PCF font
Packit Service d360f7
                  pcf        # PCF font driver
Packit Service d360f7
                  pfr        # PFR/TrueDoc font driver
Packit Service d360f7
                  psaux      # common PostScript routines module
Packit Service d360f7
                  pshinter   # PostScript hinter module
Packit Service d360f7
                  psnames    # PostScript names handling
Packit Service d360f7
                  raster     # monochrome rasterizer
Packit Service d360f7
                  sfnt       # SFNT-based format support routines
Packit Service d360f7
                  smooth     # anti-aliased rasterizer
Packit Service d360f7
                  truetype   # TrueType font driver
Packit Service d360f7
                  type1      # PostScript Type 1 font driver
Packit Service d360f7
                  type42     # PostScript Type 42 (embedded TrueType) driver
Packit Service d360f7
                  winfonts   # Windows FON/FNT font driver
Packit Service d360f7
                  ;
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# Don't touch.
Packit Service d360f7
#
Packit Service d360f7
FT2_INCLUDE  = $(FT2_BUILD_INCLUDE)
Packit Service d360f7
               [ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
Packit Service d360f7
Packit Service d360f7
FT2_SRC      = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
Packit Service d360f7
Packit Service d360f7
# Location of API Reference Documentation
Packit Service d360f7
#
Packit Service d360f7
if $(DOC_DIR)
Packit Service d360f7
{
Packit Service d360f7
  DOC_DIR = $(DOCDIR:T) ;
Packit Service d360f7
}
Packit Service d360f7
else
Packit Service d360f7
{
Packit Service d360f7
  DOC_DIR = docs/reference ;
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# Only used by FreeType developers.
Packit Service d360f7
#
Packit Service d360f7
if $(DEBUG_HINTER)
Packit Service d360f7
{
Packit Service d360f7
  CCFLAGS += -DDEBUG_HINTER ;
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# We need `include' in the current include path in order to
Packit Service d360f7
# compile any part of FreeType 2.
Packit Service d360f7
#
Packit Service d360f7
HDRS += $(FT2_INCLUDE) ;
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# We need to #define FT2_BUILD_LIBRARY so that our sources find the
Packit Service d360f7
# internal headers
Packit Service d360f7
#
Packit Service d360f7
CCFLAGS += -DFT2_BUILD_LIBRARY ;
Packit Service d360f7
Packit Service d360f7
# Uncomment the following line if you want to build individual source files
Packit Service d360f7
# for each FreeType 2 module.  This is only useful during development, and
Packit Service d360f7
# is better defined as an environment variable anyway!
Packit Service d360f7
#
Packit Service d360f7
# FT2_MULTI = true ;
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# The files `ftheader.h', `internal.h', and `ftserv.h' are used to define
Packit Service d360f7
# macros that are later used in #include statements.  They need to be parsed
Packit Service d360f7
# in order to record these definitions.
Packit Service d360f7
#
Packit Service d360f7
HDRMACRO  [ FT2_SubDir  $(FT2_INCLUDE_DIR) freetype config ftheader.h ] ;
Packit Service d360f7
HDRMACRO  [ FT2_SubDir  $(FT2_INCLUDE_DIR) freetype internal internal.h ] ;
Packit Service d360f7
HDRMACRO  [ FT2_SubDir  $(FT2_INCLUDE_DIR) freetype internal ftserv.h ] ;
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# Now include the Jamfile in `freetype2/src', used to drive the compilation
Packit Service d360f7
# of each FreeType 2 component and/or module.
Packit Service d360f7
#
Packit Service d360f7
SubInclude  FT2_TOP $(FT2_SRC_DIR) ;
Packit Service d360f7
Packit Service d360f7
# Handle the generation of the `ftexport.sym' file, which contains the list
Packit Service d360f7
# of exported symbols.  This can be used on Unix by libtool.
Packit Service d360f7
#
Packit Service d360f7
SubInclude FT2_TOP $(FT2_SRC_DIR) tools ;
Packit Service d360f7
Packit Service d360f7
rule GenExportSymbols
Packit Service d360f7
{
Packit Service d360f7
  local  apinames = apinames$(SUFEXE) ;
Packit Service d360f7
  local  aheader ;
Packit Service d360f7
  local  headers ;
Packit Service d360f7
Packit Service d360f7
  for aheader in [ Glob $(2) : *.h ]
Packit Service d360f7
  {
Packit Service d360f7
    switch $(aheader)
Packit Service d360f7
    {
Packit Service d360f7
      case */ftmac.h :
Packit Service d360f7
        if ( $(MAC) || $(OS) = MACOSX ) {
Packit Service d360f7
          headers += $(aheader) ;
Packit Service d360f7
        }
Packit Service d360f7
      case *.h : headers += $(aheader) ;
Packit Service d360f7
    }
Packit Service d360f7
  }
Packit Service d360f7
Packit Service d360f7
  LOCATE on $(1) = $(ALL_LOCATE_TARGET) ;
Packit Service d360f7
Packit Service d360f7
  APINAMES on $(1) = apinames$(SUFEXE) ;
Packit Service d360f7
Packit Service d360f7
  Depends            $(1) : $(apinames) $(headers) ;
Packit Service d360f7
  GenExportSymbols1  $(1) : $(headers) ;
Packit Service d360f7
  Clean              clean : $(1) ;
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
actions GenExportSymbols1 bind APINAMES
Packit Service d360f7
{
Packit Service d360f7
  $(APINAMES) $(2) > $(1)
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
GenExportSymbols  ftexport.sym : include/freetype ;
Packit Service d360f7
Packit Service d360f7
# Test files (hinter debugging).  Only used by FreeType developers.
Packit Service d360f7
#
Packit Service d360f7
if $(DEBUG_HINTER)
Packit Service d360f7
{
Packit Service d360f7
  SubInclude FT2_TOP tests ;
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
rule RefDoc
Packit Service d360f7
{
Packit Service d360f7
  Depends  $1 : all ;
Packit Service d360f7
  NotFile  $1 ;
Packit Service d360f7
  Always   $1 ;
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
actions RefDoc
Packit Service d360f7
{
Packit Service d360f7
  python $(FT2_SRC)/tools/docmaker/docmaker.py
Packit Service d360f7
         --prefix=ft2
Packit Service d360f7
         --title=FreeType-2.8
Packit Service d360f7
         --output=$(DOC_DIR)
Packit Service d360f7
         $(FT2_INCLUDE)/freetype/*.h
Packit Service d360f7
         $(FT2_INCLUDE)/freetype/config/*.h
Packit Service d360f7
}
Packit Service d360f7
Packit Service d360f7
RefDoc  refdoc ;
Packit Service d360f7
Packit Service d360f7
Packit Service d360f7
# end of top Jamfile