# FreeType 2 src/gxvalid Jamfile
#
# Copyright (C) 2005-2020 by
# suzuki toshiya, Masatake YAMATO and Red Hat K.K.
#
# 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) gxvalid ;


{
  local  _sources ;

  if $(FT2_MULTI)
  {
    _sources = gxvbsln
               gxvcommn
               gxvfeat
               gxvjust
               gxvkern
               gxvlcar
               gxvmod
               gxvmort
               gxvmort0
               gxvmort1
               gxvmort2
               gxvmort4
               gxvmort5
               gxvmorx
               gxvmorx0
               gxvmorx1
               gxvmorx2
               gxvmorx4
               gxvmorx5
               gxvopbd
               gxvprop
               gxvtrak
               ;
  }
  else
  {
    _sources = gxvalid ;
  }

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

# end of src/gxvalid Jamfile
