# FreeType 2 src/cache Jamfile
#
# Copyright 2001-2017 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.

SubDir  FT2_TOP $(FT2_SRC_DIR) cache ;

{
  local  _sources ;

  if $(FT2_MULTI)
  {
    _sources = ftcbasic
               ftccache
               ftcglyph
               ftcimage
               ftcmanag
               ftccmap
               ftcmru
               ftcsbits
               ;
  }
  else
  {
    _sources = ftcache ;
  }

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

# end of src/cache Jamfile
