# FreeType 2 src/truetype Jamfile
#
# Copyright 2001-2015 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) truetype ;

{
  local  _sources ;

  if $(FT2_MULTI)
  {
    _sources = ttdriver
               ttgload
               ttgxvar
               ttinterp
               ttobjs
               ttpic
               ttpload
               ttsubpix
               ;
  }
  else
  {
    _sources = truetype ;
  }

  Library  $(FT2_LIB) : $(_sources).c ;
}

# end of src/truetype Jamfile
