# FreeType 2 src/pfr Jamfile
#
# Copyright 2002-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) pfr ;

{
  local  _sources ;

  if $(FT2_MULTI)
  {
    _sources = pfrcmap
               pfrdrivr
               pfrgload
               pfrload
               pfrobjs
               pfrsbit
               ;
  }
  else
  {
    _sources = pfr ;
  }

  Library  $(FT2_LIB) : $(_sources).c ;
}

# end of src/pfr Jamfile
