modules/freetype2/Jamfile

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 # FreeType 2 top Jamfile.
     2 #
     3 # Copyright 2001-2014 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.
    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 }
    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 }
    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 #
    45 # Name of FreeType include directory during compilation.
    46 # This is relative to FT2_TOP.
    47 #
    48 FT2_INCLUDE_DIR ?= include ;
    50 # Name of FreeType source directory during compilation.
    51 # This is relative to FT2_TOP.
    52 #
    53 FT2_SRC_DIR ?= src ;
    55 # Name of final library, without extension.
    56 #
    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.
    64 #
    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.
    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                   cache      # cache sub-system
    77                   cff        # CFF/CEF font driver
    78                   cid        # PostScript CID-keyed font driver
    79                   pcf        # PCF font driver
    80                   bzip2      # support for bzip2-compressed PCF font
    81                   gzip       # support for gzip-compressed PCF font
    82                   lzw        # support for LZW-compressed PCF font
    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
    94                   ;
    97 # Don't touch.
    98 #
    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
   105 #
   106 if $(DOC_DIR)
   107 {
   108   DOC_DIR = $(DOCDIR:T) ;
   109 }
   110 else
   111 {
   112   DOC_DIR = docs/reference ;
   113 }
   116 # Only used by FreeType developers.
   117 #
   118 if $(DEBUG_HINTER)
   119 {
   120   CCFLAGS += -DDEBUG_HINTER ;
   121 }
   124 # We need `freetype2/include' in the current include path in order to
   125 # compile any part of FreeType 2.
   126 #: updating documentation for upcoming release
   128 HDRS += $(FT2_INCLUDE) ;
   131 # We need to #define FT2_BUILD_LIBRARY so that our sources find the
   132 # internal headers
   133 #
   134 DEFINES += FT2_BUILD_LIBRARY ;
   136 # Uncomment the following line if you want to build individual source files
   137 # for each FreeType 2 module.  This is only useful during development, and
   138 # is better defined as an environment variable anyway!
   139 #
   140 # FT2_MULTI = true ;
   143 # The file <config/ftheader.h> is used to define macros that are later used
   144 # in #include statements.  It needs to be parsed in order to record these
   145 # definitions.
   146 #
   147 HDRMACRO  [ FT2_SubDir  include freetype config ftheader.h ] ;
   148 HDRMACRO  [ FT2_SubDir  include freetype internal internal.h ] ;
   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) ;
   156 # Handle the generation of the `ftexport.sym' file which contain the list
   157 # of exported symbols.  This can be used on Unix by libtool.
   158 #
   159 SubInclude FT2_TOP $(FT2_SRC_DIR) tools ;
   161 rule GenExportSymbols
   162 {
   163   local  apinames = apinames$(SUFEXE) ;
   164   local  headers  = [ Glob $(2) : *.h ] ;
   166   LOCATE on $(1) = $(ALL_LOCATE_TARGET) ;
   168   APINAMES on $(1) = apinames$(SUFEXE) ;
   170   Depends            $(1) : $(apinames) $(headers) ;
   171   GenExportSymbols1  $(1) : $(headers) ;
   172   Clean              clean : $(1) ;
   173 }
   175 actions GenExportSymbols1 bind APINAMES
   176 {
   177   $(APINAMES) $(2) > $(1)
   178 }
   180 GenExportSymbols  ftexport.sym : include include/cache ;
   182 # Test files (hinter debugging).  Only used by FreeType developers.
   183 #
   184 if $(DEBUG_HINTER)
   185 {
   186   SubInclude FT2_TOP tests ;
   187 }
   189 rule RefDoc
   190 {
   191   Depends  $1 : all ;
   192   NotFile  $1 ;
   193   Always   $1 ;
   194 }
   196 actions RefDoc
   197 {
   198   python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.5.3 --output=$(DOC_DIR) $(FT2_INCLUDE)/*.h $(FT2_INCLUDE)/config/*.h
   199 }
   201 RefDoc  refdoc ;
   204 # end of top Jamfile

mercurial