# FreeType 2 src/cache Jamfile (c) 2001 David Turner
#

SubDir  FT2_TOP src cache ;

SubDirHdrs  [ FT2_SubDir  src cache ] ;

# The file <freetype/ftcache.h> contains some macro definitions that are
# later used in #include statements related to the cache sub-system.  It
# needs to be parsed through a HDRMACRO rule for macro definitions.
#
HDRMACRO  [ FT2_SubDir  include ftcache.h ] ;

{
  local  _sources ;

  if $(FT2_MULTI)
  {
    _sources = ftlru ftcmanag ftcglyph ftcchunk ftcsbits ftcimage ;
  }
  else
  {
    _sources = ftcache ;
  }

  Library  $(FT2_LIB) : $(_sources).c ;
}

# end of src/cache Jamfile
