# FreeType 2 src/cff 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) cff ;

{
  local  _sources ;

  if $(FT2_MULTI)
  {
    _sources = cffcmap
               cffdrivr
               cffgload
               cffload
               cffobjs
               cffparse
               cffpic
               cf2arrst
               cf2blues
               cf2error
               cf2font
               cf2ft
               cf2hints
               cf2intrp
               cf2read
               cf2stack
               ;
  }
  else
  {
    _sources = cff ;
  }

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

# end of src/cff Jamfile
