Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. # FreeType 2 top Jamfile.
  2. #
  3. # Copyright 2001-2011 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.                   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.                   ;
  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 `freetype2/include' in the current include path in order to
  125. # compile any part of FreeType 2.
  126. #: updating documentation for upcoming release
  127.  
  128. HDRS += $(FT2_INCLUDE) ;
  129.  
  130.  
  131. # We need to #define FT2_BUILD_LIBRARY so that our sources find the
  132. # internal headers
  133. #
  134. DEFINES += FT2_BUILD_LIBRARY ;
  135.  
  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 ;
  141.  
  142.  
  143. # The file <freetype/config/ftheader.h> is used to define macros that are
  144. # later used in #include statements.  It needs to be parsed in order to
  145. # record these definitions.
  146. #
  147. HDRMACRO  [ FT2_SubDir  include freetype config ftheader.h ] ;
  148. HDRMACRO  [ FT2_SubDir  include freetype internal internal.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 contain 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/freetype include/freetype/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 --prefix=ft2 --title=FreeType-2.5.0 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h
  199. }
  200.  
  201. RefDoc  refdoc ;
  202.  
  203.  
  204. # end of top Jamfile
  205.